2012-03-27 13 views
12

Die Methode, die ich kenne, die Ruby-Implementierung (zB MRT, JRuby, Rubinius, etc.) während der Laufzeit zu erfassen, ist die globale Konstante RUBY_ENGINE zu überprüfen:Welche Werte für RUBY_ENGINE entsprechen welchen Ruby-Implementierungen?

$ ruby -e 'puts RUBY_ENGINE' 
ruby 

Was ist eine ziemlich umfassende Liste bekannte Ruby-Implementierungen und ihre entsprechenden Werte für RUBY_ENGINE?

Antwort

20

Hier ist, was ich bisher gefunden habe:

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

Links für die oben genannten Ruby-Implementierungen:

Props zu Ujihisa für this blog entry die meisten Werte hatten. Andere wurden durch das Lesen von this und this gefunden. Noch mehr Werte wurden aus anderen Antworten hier auf StackOverflow gesammelt. Mehr Requisiten für alle, die dazu beigetragen haben!

2

auch:

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