Determinando qual rubygem você está usando
Como você pode determinar qual rubygem está sendo usado em resposta a uma instrução "require"? gem que não parece ajudar.
fundo: para o projeto hornsby-herbário-parser, estou usando o gem roo.
Eu usei o github gem hmcgowan-roo, porque naquela época era mais recente que a versão rubyforge do roo. Eu tentei testar o código no runcoderun, e ele falhou porque não tem nenhuma versão do roo. Por esta altura, novas versões do roo estavam disponíveis tanto no github quanto no rubyforge.
Decidi também ver se a versão mais recente do rubyforge funciona para o meu código, pois suponho que o rubyforge seja mais oficial, autoritativo e estável que os garfos do github. Uma vez que eu tenho certeza que a versão do rubyforge funciona com o meu código, eu perguntarei ao runcoderun se eles podem instalá-lo em seu sistema.
Eu sudo gem installed roo, e minhas gems agora incluem "hmcgowan-roo (1.3.5)" e "roo (1.3.6)", e rodando os testes de hornsby-herbarium-parser ainda passam. Eu sei que como a versão do Rubyforge foi instalada mais recentemente,deveria para ser o que está sendo usado nos testes, mas eu quero ser capaz de verificar isso.
gem which roo
Não ajudou, porque me deu
(checking gem hmcgowan-roo-1.3.5 for roo)
/usr/lib/ruby/gems/1.8/gems/hmcgowan-roo-1.3.5/lib/roo.rb
que eu assumo é a resposta errada.
Atualizar: Eu usei os dois
$:.detect {|dir| dir =~ /roo/}
e
puts Roo::VERSION::STRING
ambos concordam com gem que, dizendo que eu ainda estou usando hmcgowan-roo-1.3.5.