2017-04-10 48 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 
相關問題