更新履歴

    - -
  1. - : Qiita から移植 -
  2. - +
  3. + : Qiita から移植 +
-
-

この記事は Qiita から移植してきたものです。 元 URL: -https://qiita.com/nsfisis/items/74d7ffeeebc51b20d791

-
-
-
-

Ruby -という言語には複数の実装があるが、それらをスクリプト上からどのようにして -programmatically に見分ければよいだろうか。

-
-
-

Object クラスに定義されている RUBY_ENGINE -という定数がこの用途に使える。

-
-
-

参考: -Object::RUBY_ENGINE

-
-
-

上記ページの例から引用する:

-
-
-
-
$ ruby-1.9.1 -ve 'p RUBY_ENGINE'
-ruby 1.9.1p0 (2009-03-04 revision 22762) [x86_64-linux]
-"ruby"
-$ jruby -ve 'p RUBY_ENGINE'
-jruby 1.2.0 (ruby 1.8.6 patchlevel 287) (2009-03-16 rev 9419) [i386-java]
-"jruby"
-
-
-
-

それぞれの処理系がどのような値を返すかだが、stack overflow -に良い質問と回答があった。

-
- -
-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
RUBY_ENGINEImplementation

<undefined>

MRI < 1.9

`ruby'

MRI >= 1.9 or REE

`jruby'

JRuby

`macruby'

MacRuby

`rbx'

Rubinius

`maglev'

MagLev

`ironruby'

IronRuby

`cardinal'

Cardinal

-
-
-
-

なお、この質問・回答は -2014年になされたものであり、値は変わっている可能性がある。MRI (aka -CRuby) については執筆時現在 (2020/12/8) も 'ruby' -が返ってくることを確認済み。

-
-
-

この表にない主要な処理系として、https://mruby.org[mruby] は 'mruby' -を返す。

-
- -
-
-
/*
- * Ruby engine.
- */
-#define MRUBY_RUBY_ENGINE  "mruby"
-
-
+

+ この記事は Qiita から移植してきたものです。 元 URL:https://qiita.com/nsfisis/items/74d7ffeeebc51b20d791 +

+ +

+


+ +

+ +

+ Ruby という言語には複数の実装があるが、それらをスクリプト上からどのようにして programmatically に見分ければよいだろうか。 +

+ +

+ Objectクラスに定義されているRUBY_ENGINEという定数がこの用途に使える。 +

+ +

+ 参考:Object::RUBY_ENGINE +

+ +

+ 上記ページの例から引用する: +

+ +
+            $ ruby-1.9.1 -ve 'p RUBY_ENGINE'
+ruby 1.9.1p0 (2009-03-04 revision 22762) [x86_64-linux]
+"ruby"
+$ jruby -ve 'p RUBY_ENGINE'
+jruby 1.2.0 (ruby 1.8.6 patchlevel 287) (2009-03-16 rev 9419) [i386-java]
+"jruby"
+          
+ +

+ それぞれの処理系がどのような値を返すかだが、stack overflow に良い質問と回答があった。 +

+ +

+ What values for RUBY_ENGINE correspond to which Ruby implementations?より引用: +

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ RUBY_ENGINE + + Implementation +
+ <undefined> + + MRI < 1.9 +
+ `ruby' + + MRI >= 1.9 or REE +
+ `jruby' + + JRuby +
+ `macruby' + + MacRuby +
+ `rbx' + + Rubinius +
+ `maglev' + + MagLev +
+ `ironruby' + + IronRuby +
+ `cardinal' + + Cardinal +
+
+ +

+ なお、この質問・回答は 2014年になされたものであり、値は変わっている可能性がある。MRI (aka CRuby) については執筆時現在 (2020/12/8) も'ruby'が返ってくることを確認済み。 +

+ +

+ この表にない主要な処理系として、https://mruby.org[mruby] は'mruby'を返す。 +

+ +

+ mruby 該当部分のソースより引用: +

+ +
+            /*
+* Ruby engine.
+*/
+#define MRUBY_RUBY_ENGINE  "mruby"
+