"require"文に応じてどのrubygemが使用されているかをどのように判断できますか?助けてくれない宝石。あなたが使っているrubygemを調べる
背景:ホーンビー・ヘルバリウム・パーサーのプロジェクトでは、私は宝石宝石を使用しています。
その時点でそれはカンガルーののRubyForgeのバージョンより新しいだったので、私は、githubの宝石hmcgowan-ROOを使用。私はruncoderunでコードをテストしようとしましたが、rooのバージョンがないため失敗しました。この時までにgithubとrubyforgeの両方で新しいバージョンのrooが利用可能になりました。
私はのRubyForgeはより公式、権威、そしてgithubのフォークよりも安定していると仮定してのRubyForgeから最新バージョンは、私のコードのために動作するか私も見ることができることを決めました。 Rubyforgeのバージョンが自分のコードで動作することを確認したら、システムにインストールできるかどうかをruncoderunに尋ねます。
私はsudo gemがインストールされていて、私の宝石には "hmcgowan-roo(1.3.5)"と "roo(1.3.6)"が含まれていて、hornsby-herbarium-私はrubyforgeバージョンが最近インストールされたので、がであることがテストで使用されているはずですが、これを確認できるようにしたいと思います。それは私が間違った答えであると仮定し
(checking gem hmcgowan-roo-1.3.5 for roo)
/usr/lib/ruby/gems/1.8/gems/hmcgowan-roo-1.3.5/lib/roo.rb
を与えたので
gem which roo
は、助けにはなりませんでした。
更新:私は両方
$:.detect {|dir| dir =~ /roo/}
と
puts Roo::VERSION::STRING
の両方を使用するには、私はまだhmcgowan-ROO-1.3.5を使っていると言って、宝石に同意します。
CLIからでもRubyからでもどちらでもかまいませんが、どちらもOKですか? –
Railsと似ていますが(Bundlerを想定しています):http://stackoverflow.com/questions/1621405/how-to-tell-which-version-of-a-gem-a-rails-app-is-using –