web-dev-qa-db-fra.com

Déterminer Ruby version from within Rails

Existe-t-il un moyen de déterminer quelle version de Ruby s'exécute depuis l'intérieur Rails (soit sur le Web soit via script/console)? J'ai Ruby 1.8.6 installé mais j'ai également installé Ruby Enterprise Edition 1.8.7-20090928 et je veux m'assurer qu'il utilise la bonne installation).

79
Daniel Vandersluis

Utilisez la constante de niveau supérieur

Ruby_VERSION

d'autres constantes de premier niveau utiles sont

Ruby_PATCHLEVEL
Ruby_PLATFORM
Ruby_RELEASE_DATE

voici une session irb:

irb(main):001:0> Ruby_VERSION
=> "1.8.7"
154
avguchenko

Essayez la constante Ruby_VERSION. Je l'utilise largement pour déterminer si je fonctionne sous 1.8 ou JRuby.

De plus, si vous n'êtes pas en mode production, vous pouvez effectuer une vérification rapide en cliquant sur l'URL "/ Rails/info/properties"

12
Mark Westling

En plus de la constante Ruby_VERSION et de vos amis, vous pouvez également consulter Config :: CONFIG. Ce hachage contient non seulement les numéros de version mais également une tonne d'autres informations utiles sur l'exécution, comme le chemin vers le binaire, le nom d'hôte, ...

10
averell

Utilisation Ruby_VERSION comme mentionné par d'autres.

Vous pouvez ensuite utiliser Gem::Version pour comparer les chaînes de version:

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                                                          
8
KomodoDave