Ruby宝石安装在最后一个兼容版本之后调用的目录中,而不是特定版本。我如何获得该版本?如何从Ruby获取宝石兼容版本
例如对于Ruby 2.3.3
,宝石将被安装到2.3.0
目录中。如何从红宝石解释器中找出该版本是什么?
Ruby宝石安装在最后一个兼容版本之后调用的目录中,而不是特定版本。我如何获得该版本?如何从Ruby获取宝石兼容版本
例如对于Ruby 2.3.3
,宝石将被安装到2.3.0
目录中。如何从红宝石解释器中找出该版本是什么?
其他答案是正确的,但使用路径。我追查到:
Gem.ruby_api_version
哪个会自行返回版本。
Gem.loaded_specs
会给你一个加载宝石的散列。从列表中选择一个宝石:
Gem.loaded_specs["did_you_mean"]
# => {"did_you_mean"=>#<Gem::Specification:0x2abac1f4ecb8 did_you_mean-1.0.0>}
gem_dir
会给你的目录:
Gem.loaded_specs["did_you_mean"].gem_dir
# => ".../.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0"
在这种情况下,我使用Ruby 2.3.3,和宝石是根据2.3.0目录。
我在2.3.1中得到了同样的行为。这里有一个方法来提出“2.3.0”:
% ruby -v
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin16]
% ruby -e 'print Gem.user_dir'
/Users/kburnett/.gem/ruby/2.3.0
% ruby -e "print RbConfig::CONFIG['ruby_version']"
2.3.0
是不是安装到您在安装时使用的ruby版本中? –
@maxple是的,但这不是问题:) – viraptor