Rails:我的应用程序如何判断它是在MRI还是JRuby中运行?

时间:2011-10-19 14:12:04

标签: ruby-on-rails ruby jruby

previous question中,我问如何告诉我的Gemfile是否采用JRuby相关的宝石或与MRI相关的宝石。我得到的答案是在Gemfile中执行以下操作:

platforms :jruby do
  gem "activerecord-jdbcsqlite3-adapter"
end

platforms :mri do
  gem "sqlite3"
end

显然,Bundler中的platforms()方法知道如何判断我是在运行MRI还是JRuby。如果我正在运行JRuby或MRI,我是否可以通过另一种方式告诉我的程序?

2 个答案:

答案 0 :(得分:4)

您是否能够区分这两者:

case (RUBY_ENGINE)
when 'ruby'
  # ...
when 'jruby'
  # ...
end

如果需要,您可以编写一种方法来为您提供jruby?方法:

def jruby?
  RUBY_ENGINE == 'jruby'
end

答案 1 :(得分:1)

使用Ruby 2.2.3 Config::CONFIG给我NameError: uninitialized constant Config,但以下工作:

y RbConfig::CONFIG