Как мне узнать, какой интерпретатор 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