Antes de dividir la cadena RUBY_VERSION
en un punto y convertir los bits en enteros y así sucesivamente, ¿hay alguna manera más sencilla de verificar desde un programa Ruby si el actual RUBY_VERSION
es mayor que ?¿Cómo comprobar si RUBY_VERSION es mayor que cierta versión?
8
A
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.
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
- 1. Comparar si BigDecimal es mayor que cero
- 2. Bash - pruebas para comprobar si una cadena es 'mayor' que otro - ¿cómo funciona internamente?
- 3. ¿Cómo comprobar si la fecha y hora es mayor que 20 segundos
- 4. ¿000,000,000.00 es mayor que cero?
- 5. Comprobando si un NSDate es mayor que otro
- 6. ¿Cómo puedo verificar que una versión de Perl no sea mayor que algún valor?
- 7. ¿Por qué debería comprobar si tengo un valor mayor que Int32.MaxValue?
- 8. Comprobar si es falso
- 9. WPF gatillo cuando el valor de la propiedad es mayor que una cierta cantidad
- 10. g ++ cómo comprobar si es compatible con las funciones lambda?
- 11. ¿Cómo comprobar si un doble es nulo?
- 12. Cómo comprobar si el GUID es cero
- 13. cómo comprobar si java.lang.reflect.Type es una enumeración
- 14. Cómo comprobar si JSONArray Element es nulo
- 15. ¿Cómo comprobar si es sábado/domingo?
- 16. ¿Cómo comprobar si el archivo es binario?
- 17. Cómo comprobar si request.GET var es None?
- 18. ¿Cómo comprobar si un puntero es válido?
- 19. En Python: comprobar si la fecha de modificación del archivo es mayor que una fecha y hora específica
- 20. Comprobar si boolean es verdadero
- 21. Cómo comprobar si la versión de OpenSSL instalada es> = 0.9.8k
- 22. ¿Cómo comprobar si un tipo .NET implementa cierta interfaz .NET de forma abstracta?
- 23. Jquery: ¿Cómo comprobar si el elemento tiene cierta clase css/estilo
- 24. ¿Double.MIN_VALUE es mayor que cero en Java?
- 25. cómo comprobar si IsNumeric
- 26. Cómo verificar si un TextView contiene una cierta cadena
- 27. si la cadena es alfabéticamente mayor que otra cadena en el objetivo
- 28. ¿Cómo comprobar si existe una ventana hija?
- 29. timediff es mayor que 2 minutos
- 30. menos el porcentaje mayor que vs porcentaje mayor que (es decir, -%> vs%>)
Pero la versión gema! = Versión ruby. 1.9.2 usó 1.9.1 gemas durante varios meses. – Nakilon
No entiendo tu punto. 'Gem :: Version.new' toma una cadena de versión. No importa de dónde viene la cuerda. Lee los documentos. –