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