Ruby   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了确定你正在使用哪个rubygem大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
如何确定使用哪个rubygem来响应“require”语句?似乎没有帮助的宝石.

背景:对于项目hornsby-herbarium-parser,我正在使用gem roo.

我使用了github gem hmcgowan-roo,因为那时它比rubyforge版本的roo更新.我尝试在runco​​derun上测试代码,但它失败了,因为它没有任何版本的roo.到目前为止,github和rubyforge都提供了新版本的roo.

我决定我可以看看rubyforge的最新版本是否适用于我的代码,因为我认为rubyforge比github forks更官方,权威,稳定.一旦我确定rubyforge版本适用于我的代码,我会很好地问runco​​derun是否可以在他们的系统上安装它.

我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:@R_450_7101@G

两人都同意宝石,说我还在使用hmcgowan-roo-1.3.5.

解决方法

首先,rubygems将加载最高版本号gem,而不是最近安装的版本.所以你应该在这里获得roo 1.3.6.

除此之外,我第二个gerrit建议寻找一个版本常量.例如,我刚刚加载了rmagick,并且有一个不变的Magick :: Version.另一个例子是Open4 :: VERSION.

然而,并非所有的宝石都有一个版本常量,所以作为后备,你可以做一些像hacky这样的事情:

>> require 'open4'
=> true

>> $:.detect {|dir| dir =~ /\/open4-([^\/]*)\//}
=> "/Library/Ruby/Gems/1.8/gems/open4-0.9.6/bin"

>> $1
=> "0.9.6"

大佬总结

以上是大佬教程为你收集整理的确定你正在使用哪个rubygem全部内容,希望文章能够帮你解决确定你正在使用哪个rubygem所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。