如何确定使用哪个rubygem来响应“require”语句?这似乎没有帮助的宝石。确定您正在使用哪个rubygem
背景:对于项目hornsby-herbarium解析器,我使用的是宝石roo。
我使用了github gem hmcgowan-roo,因为那时它比roy的rubyforge版本更新。我试着在runcoderun上测试代码,但它失败了,因为它没有任何版本的roo。此时,github和rubyforge都可以使用新版本的roo。
我决定不妨看看rubyforge的最新版本是否适用于我的代码,因为我认为rubyforge比github forks更官方,权威,更稳定。一旦我确定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
双方同意其中的宝石,他说,我现在还在使用hmcgowan-Roo的-1.3.5。
你想从CLI或从Ruby内部,都可以吗? – 2014-09-02 07:26:28
类似但Rails(因此假设Bundler):http://stackoverflow.com/questions/1621405/how-to-tell-which-version-of-a-gem-a-rails-app-is-using – 2014-09-02 08:31:49