我已经看过这个线程,但是我的问题可能更基本:
鉴于该线程中接受的答案[1]中的答案是给我的,"/Users/username/.rvm/rubies/ruby-2.3.0/bin/ruby"
,我怎么知道这是否是MRI,JRUBY等?如果每个主要的口译员都是其他主要口译员会是什么样?
[1]节省几秒钟,RbConfig.ruby
如今,所有主流红宝石实现都设置了 RUBY_ENGINE
pseudo-contant。我可以记住的各种实现的值是:
- Rubinius:
rbx
- jruby:
jruby
- Truffleruby:
truffleruby
- opal:
opal
- mruby:
mruby
- yarv:令人困惑,
ruby
- MRI:更令人困惑,也
ruby
- Maglev:
maglev
- Ironruby:
ironruby
- macruby:
macruby
- topaz:
topaz
基于红宝石费用中的线程,这项工作与 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