Rails: Как мое приложение может определить, работает ли оно в MRI или JRuby? - PullRequest
3 голосов
/ 19 октября 2011

В предыдущем вопросе я спросил, как сказать моему Gemfile, брать ли камни, относящиеся к JRuby, или камни, относящиеся к MRI.Ответ, который я получил, состоял в том, чтобы сделать следующее в Gemfile:

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

platforms :mri do
  gem "sqlite3"
end

Очевидно, метод platform () в Bundler знает, как выяснить, использую ли я MRI или JRuby.Есть ли другой способ, которым я могу определить в своей программе, выполняю ли я JRuby или MRI?

Ответы [ 2 ]

4 голосов
/ 19 октября 2011

Можете ли вы различать эти два типа следующим образом:

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

Вы можете написать метод, который даст вам jruby? метод, если требуется:

def jruby?
  RUBY_ENGINE == 'jruby'
end
1 голос
/ 06 мая 2017

С Ruby 2.2.3 Config::CONFIG дает мне NameError: uninitialized constant Config, но работает следующее:

y RbConfig::CONFIG
...