Как мне узнать, какой интерпретатор Ruby я использую?

Я видел эту ветку, но мой вопрос может быть более простым:

Учитывая, что ответ от принятого ответа в этой теме [1] для меня, "/Users/username/.rvm/rubies/ruby-2.3.0/bin/ruby", как я узнаю, что это МРТ, JRuby и т. д.? Как бы это выглядело, если бы это был каждый из других основных переводчиков?


[1] Чтобы сэкономить несколько секунд, RbConfig.ruby

2 ответа

Решение

В настоящее время все основные реализации Ruby устанавливают RUBY_ENGINE псевдо-константа. Значения для различных реализаций, которые я могу вспомнить из головы:

  • Rubinius: rbx
  • JRuby: jruby
  • TruffleRuby: truffleruby
  • Opal: opal
  • MRuby: mruby
  • ЯРВ: смущенно, ruby
  • МРТ: еще более запутанно, также ruby
  • MagLev: maglev
  • IronRuby: ironruby
  • MacRuby: macruby
  • Топаз: topaz

Основываясь на теме в форуме ruby, это работает от меня с Ruby:

irb(main):010:0> RbConfig.ruby
=> "/Users/<user>/.rbenv/versions/2.1.2/bin/ruby"
irb(main):011:0> RbConfig::CONFIG["RUBY_INSTALL_NAME"]
=> "ruby"

и с JRuby:

RbConfig.ruby
=> "/Users/<user>/.rbenv/versions/jruby-9.1.8.0/bin/jruby"
irb(main):008:0> RbConfig::CONFIG["RUBY_INSTALL_NAME"]
=> "jruby"

В зависимости от того, как вы установили разные версии ruby, вы можете использовать различия в пути установки (JRuby имеет префикс) или использовать RbConfig::CONFIG["RUBY_INSTALL_NAME"],

Чтобы увидеть все ключи конфигурации, наберите:

RbConfig::CONFIG.keys
Другие вопросы по тегам