2011-02-11 29 views

Respuesta

10

biblioteca de la gema de Ruby puede hacer comparaciones número de versión:

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 

Ver http://rubydoc.info/stdlib/rubygems/1.9.2/Gem/Version para obtener más información.

+0

Pero la versión gema! = Versión ruby. 1.9.2 usó 1.9.1 gemas durante varios meses. – Nakilon

+0

No entiendo tu punto. 'Gem :: Version.new' toma una cadena de versión. No importa de dónde viene la cuerda. Lee los documentos. –

3

Utilizando sólo la comparación regular de cadena también funciona, al menos para todas las versiones actuales de resonancia magnética: Respuesta

RUBY_VERSION >= "1.8.7"

0

diedthreetimes de usuario es mucho más simple, y el método que utilizo ... excepto que utiliza la comparación de cadenas , que no es la mejor práctica para los números de versión. Es mejor utilizar una comparación de matriz numérica como esta:

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