2017-04-10 6 views
1

Ruby gemは、特定のリリースではなく、最後の互換バージョンの後に呼び出されるディレクトリにインストールされます。どうすればそのバージョンを入手できますか?RubyからGems互換バージョンを取得する方法

たとえば、Ruby 2.3.3の場合、宝石は2.3.0ディレクトリにインストールされます。どのようにそのバージョンがRubyインタプリタから得られたものかを知るには?

+1

は、インストール時に使用しているRubyのバージョンにインストールされていませんか? –

+0

@maxpleはい、それは質問ではありません:) – viraptor

答えて

2

その他の正しい答えがありますが、パスを使用してください。私はそれを追跡しました:

Gem.ruby_api_version 

これは、それ自身でバージョンを返します。

0
Gem.loaded_specs 

は、ロードされた宝石のハッシュを提供します。そのリストから、1つの宝石を選択します。

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」を提示する方法の1つです:

% 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 
関連する問題