Какие значения для RUBY_ENGINE соответствуют каким реализациям Ruby? - PullRequest
12 голосов
/ 27 марта 2012

Известный мне способ обнаружения реализации в Ruby (например, MRI, JRuby, Rubinius и т. Д.) Во время выполнения заключается в проверке глобальной константы RUBY_ENGINE:

$ ruby -e 'puts RUBY_ENGINE'
ruby

Что такое достаточно полный список известных реализаций Ruby и их соответствующих значений для RUBY_ENGINE?

Ответы [ 2 ]

20 голосов
/ 27 марта 2012

Вот что я нашел до сих пор:

| 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          |

Ссылки для вышеупомянутых реализаций Ruby:

Подсказки к Удзихисе для этой записи в блоге , которая имела большинство значений.Другие были найдены путем чтения this и this .Еще больше значений было получено из других ответов здесь, на StackOverflow.Больше реквизита для всех, кто внес свой вклад!

2 голосов
/ 28 марта 2012

Также:

| RUBY_ENGINE | Implementation    |
|:-----------:|:------------------|
| "ruby"      | REE               |
| "maglev"    | MagLev            |
...