2011-02-11 7 views

答えて

10

Rubyの宝石ライブラリは、バージョン番号の比較を行うことができます。

require 'rubygems' # not needed with Ruby 1.9+ 

ver1 = Gem::Version.new('1.8.7') # => #<Gem::Version "1.8.7"> 
ver2 = Gem::Version.new('1.9.2') # => #<Gem::Version "1.9.2"> 
ver1 <=> ver2 # => -1 

は、詳細はhttp://rubydoc.info/stdlib/rubygems/1.9.2/Gem/Versionを参照してください。普通の文字列の比較も、少なくとも現在のすべてのMRIのバージョンのため、作品の使用

+0

しかし、gemバージョン!= ruby​​バージョンのような数値配列の比較を使用する方がよいでしょう。 1.9.2は、数ヶ月間、1.9.1の宝石を使用した。 – Nakilon

+0

あなたの意見は分かりません。 'Gem :: Version.new'はバージョン文字列をとります。文字列がどこから来るかは気にしません。ドキュメントを読む。 –

0

ユーザーdiedthreetimes'答えははるかに簡単です、と私はそれ以外...使用方法は、文字列比較を使用していますこれはバージョン番号のベストプラクティスではありません。

version = RUBY_VERSION.split('.').map { |x| x.to_i } 
if (version <=> [1, 8, 7]) >= 1 
    ... 
end 
関連する問題