Determinar la versión ruby ​​desde Rails

81

¿Hay alguna forma de determinar qué versión de Ruby se está ejecutando desde Rails (ya sea en la web o mediante script/console)? Tengo Ruby 1.8.6 instalado pero también instalé Ruby Enterprise Edition 1.8.7-20090928 y quiero asegurarme de que está usando la instalación correcta.

Daniel Vandersluis
fuente

Respuestas:

164

Utilice la constante de nivel superior

RUBY_VERSION

Otras constantes de nivel superior útiles son

RUBY_PATCHLEVEL
RUBY_PLATFORM
RUBY_RELEASE_DATE

aquí hay una sesión de irb:

irb(main):001:0> RUBY_VERSION
=> "1.8.7"
avguchenko
fuente
12

Prueba la constante RUBY_VERSION. Utilizo esto ampliamente para determinar si estoy ejecutando bajo 1.8 o JRuby.

Además, si no está en modo de producción, puede hacer una verificación rápida presionando la URL "/ rails / info / properties"

Mark Westling
fuente
10

Además de la constante RUBY_VERSION y sus amigos, es posible que también desee consultar Config :: CONFIG. Este hash contiene no solo los números de versión, sino también un montón de otra información útil en tiempo de ejecución, como la ruta al binario, el nombre de host, ...

averell
fuente
gracias, uso 'put RbConfig.ruby' para ruby ​​2.0 y rails 4.0 y devuelve '/usr/local/rvm/rubies/ruby-2.0.0-p247/bin/ruby'
quatermain
9

Úselo RUBY_VERSIONsegún lo mencionado por otros.

Luego puede usar Gem::Versionpara hacer una comparación de cadenas de versiones:

require 'rubygems' # Only needed for ruby pre-1.9.0 but it's safe for later versions (evaluates to false).
if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('1.9.0')
    extend DL::Importable                                    
else                                                         
    extend DL::Importer                                      
end                                                          
KomodoDave
fuente
Desearía que esta respuesta estuviera allí, stackoverflow.com/q/11819525/322020 , pero no puedo moverla, así que le pido que elimine esta y la publique allí.
Nakilon