Как определить, какой rubygem используется в ответ на запрос «require»? драгоценный камень, который, кажется, не помогает.
Предыстория: для проекта hornsby-herbarium-parser я использую gem roo.
Я использовал github gem hmcgowan-roo, так как на тот момент он был более свежим, чем версия roo для rubyforge. Я попытался протестировать код на runcoderun, и это не удалось, потому что у него нет версии roo. К этому времени новые версии roo были доступны как на github, так и на rubyforge.
Я решил, что могу также посмотреть, работает ли последняя версия rubyforge для моего кода, поскольку я предполагаю, что rubyforge более официальный, авторитетный и стабильный, чем форки github. Как только я буду уверен, что версия rubyforge работает с моим кодом, я вежливо спрошу у runcoderun, могут ли они установить ее в своей системе.
Я установил sudo gem roo, и мои драгоценные камни теперь включают «hmcgowan-roo (1.3.5)» и «roo (1.3.6)», и запуск тестов для hornsby-herbarium-parser все еще проходит. Я знаю, что, поскольку версия rubyforge была установлена совсем недавно, она должна использоваться в тестах, но я хочу убедиться в этом.
gem which roo
Не помогло, потому что это дало мне
(checking gem hmcgowan-roo-1.3.5 for roo)
/usr/lib/ruby/gems/1.8/gems/hmcgowan-roo-1.3.5/lib/roo.rb
что я предполагаю, что это неправильный ответ.
Обновление: я использовал оба
$:.detect {|dir| dir =~ /roo/}
и
puts Roo::VERSION::STRING
оба согласны с gem which, говоря, что я все еще использую hmcgowan-roo-1.3.5.