Determine ruby version from within Rails
Is there a way to determine what version of Ruby is running from within Rails (either on the web or through script/console
)? I have Ruby 1.8.6 installed but I've also installed Ruby Enterprise Edition 1.8.7-20090928 and want to ensure that it's using the right installation.
Solution 1:
Use this global constant:
RUBY_VERSION
Other relevant global constants include:
RUBY_PATCHLEVEL
RUBY_PLATFORM
RUBY_RELEASE_DATE
Usage example via irb
session:
irb(main):001:0> RUBY_VERSION
=> "1.8.7"
Solution 2:
Try the constant RUBY_VERSION. I use this extensively to determine whether I'm running under 1.8 or JRuby.
Also, if you're not in production mode, you can do a quick check by hitting the URL "/rails/info/properties"
Solution 3:
In addition to the RUBY_VERSION constant and friends you may also want to check out Config::CONFIG. This hash contains not only the version numbers but also a ton of other useful runtime information, like the path to the binary, the hostname, ...
Solution 4:
Use RUBY_VERSION
as mentioned by others.
You can then use Gem::Version
to do version string comparison:
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