2017-04-10 49 views
1

Ruby宝石安装在最后一个兼容版本之后调用的目录中,而不是特定版本。我如何获得该版本?如何从Ruby获取宝石兼容版本

例如对于Ruby 2.3.3,宝石将被安装到2.3.0目录中。如何从红宝石解释器中找出该版本是什么?

+1

是不是安装到您在安装时使用的ruby版本中? –

+0

@maxple是的,但这不是问题:) – viraptor

回答

2

其他答案是正确的,但使用路径。我追查到:

Gem.ruby_api_version 

哪个会自行返回版本。

0
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目录。

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 
相关问题