现在,所有主流的 Ruby 实现都设置了RUBY_ENGINE
伪常量。我脑海中浮现的各种实现的值是:
rbx
jruby
truffleruby
opal
mruby
ruby
ruby
maglev
ironruby
macruby
topaz
小智 5
基于ruby-forum 中的线程,这对我有用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"
Run Code Online (Sandbox Code Playgroud)
并与JRuby
:
RbConfig.ruby
=> "/Users/<user>/.rbenv/versions/jruby-9.1.8.0/bin/jruby"
irb(main):008:0> RbConfig::CONFIG["RUBY_INSTALL_NAME"]
=> "jruby"
Run Code Online (Sandbox Code Playgroud)
根据您安装不同 ruby 版本的方式,您可以使用安装路径中的差异(JRuby
带有前缀)或使用RbConfig::CONFIG["RUBY_INSTALL_NAME"]
.
要查看所有配置键,请键入:
RbConfig::CONFIG.keys
Run Code Online (Sandbox Code Playgroud)