在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,我是否可以通过另一种方式告诉我的程序?
答案 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