2011-02-11 79 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

+0

但是,gem version!= ruby​​ version。 1.9.2使用了1.9.1幾個月的寶石。 – Nakilon 2011-02-11 05:38:34

3

只需使用普通字符串比較同樣適用,至少在目前所有版本的MRI:

RUBY_VERSION >= "1.8.7"

0

用戶diedthreetimes'答案是簡單得多,我用...除了它的方法使用字符串比較,這不是版本號的最佳實踐。最好使用這樣的數值數組比較:

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