Gerade wurden, neben den üblichen Bugfixes, 5 Hauptthemen der neuen Version JRuby 1.4 angekündigt.
- JRuby 1.4 wird kompatibel zu Ruby 1.8.7
- Weitere Verbesserungen der Ruby 1.9 Unterstützung.
- Ein neuer YAML-Parser wird enthalten sein. (geschrieben von Ola Bini)
- Die Java-Integration wird verbessert.
Genauer gesagt soll es möglich sein, präziser zu bestimmen, welche Java-Methoden angesprochen werden sollen.
Zur Zeit gibt es nämlich das Problem, dass, wenn man z.B. die Methodeuse()bei dieser Java-Klassepublic class Overloaded { public static void use(int i) { /* ... */ } public static void use(long l) { /* ... */ } }mit JRuby aufruft,Java::Overloaded.use 10
die Methodepublic static void use(long l)genutzt wird. Das jetzige JRuby-Verhalten erzwingt eine Umwandlung von Ruby-Fixnumin einenlong-Wert in Java. Daher kann nie die Java-Methode mit demint-Argument aufgerufen werden. - Die Generierung von echten Java-Klassen aus Ruby wird "experimentell" enthalten sein.
Zum Beispiel wird aus:require 'java' require 'jruby/core_ext' class SimpleTest def equals raise "not equal" unless 1.0 == 1 end end SimpleTest.add_method_signature("equals", [java.lang.Void::TYPE]) SimpleTest.add_method_annotation("equals", org.junit.Test => {}) SimpleTest.become_java!package ruby; import org.junit.Test; public class SimpleTest { @Test public void equals() { // dispatch back to Ruby code here } }
5 Things to Look for in JRuby 1.4
JRuby Ruby-to-Java Compiler