How do I tell which Ruby interpreter I'm using?

2.6k Views Asked by At

I've seen this thread, but my question is maybe more basic:

Given that the response from the accepted answer in that thread[1] is for me, "/Users/username/.rvm/rubies/ruby-2.3.0/bin/ruby", how do I know if that's MRI, JRuby, etc? What would it look like if it were each of the other major interpreters?


[1] To save a few seconds, RbConfig.ruby

2

There are 2 best solutions below

2
Jörg W Mittag On BEST ANSWER

Nowadays, all mainstream Ruby implementations set the RUBY_ENGINE pseudo-constant. The values for the various implementations which I can remember off the top of my head are:

  • Rubinius: rbx
  • JRuby: jruby
  • TruffleRuby: truffleruby
  • Opal: opal
  • MRuby: mruby
  • YARV: confusingly, ruby
  • MRI: even more confusingly, also ruby
  • MagLev: maglev
  • IronRuby: ironruby
  • MacRuby: macruby
  • Topaz: topaz
0
Thomas Koppensteiner On

Based on the thread in the ruby-forum this works form me with 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"

and with JRuby:

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

Depending on how you installed the different ruby versions you can either user the differences in the installation path (JRuby has a prefix) or use RbConfig::CONFIG["RUBY_INSTALL_NAME"].

To see all configuration keys type:

RbConfig::CONFIG.keys