Grooscript - GroovyのコードをJavaScriptに変換
JavaScriptが他のプラットフォームを侵略しています。Node.jsによってサーバサイドを侵略し、React NativeやTitaniumがスマートフォンアプリ開発を攻めています。 他の言語はそのままで良いわけではありません。逆にJavaScriptを攻めるのです。今回はGroovyのコードをJavaScriptに変換できるGrooscriptを紹介します。
Grooscriptの使い方
Grooscriptの例です。クラスも使えます。さらにメソッドがない場合の呼び出しもできたりします。これはGroovyとして実行できるコードです。
class Hello {
def methodMissing(String name, args) {
println "Hello ${name}!"
}
}
def hello = new Hello()
hello.Groovy()
hello.Javascript()
hello.grooscript()
そして、これを変換すると次のようなコードになります。これはJavaScriptです。
var gs = require('grooscript');
function Hello() {
var gSobject = gs.init('Hello');
gSobject.clazz = { name: 'Hello', simpleName: 'Hello'};
gSobject.clazz.superclass = { name: 'java.lang.Object', simpleName: 'Object'};
gSobject['methodMissing'] = function(name, args) {
return gs.println("Hello " + (name) + "!");
}
if (arguments.length == 1) {gs.passMapToObject(arguments[0],gSobject);};
return gSobject;
};
var hello = Hello();
gs.mc(hello,"Groovy",[]);
gs.mc(hello,"Javascript",[]);
gs.mc(hello,"grooscript",[]);
では実際に実行してみます。node、Groovyのどちらも同じ結果が得られています。
$ groovy source.groovy
Hello Groovy!
Hello Javascript!
Hello grooscript!
$ groovy source.groovy
Hello Groovy!
Hello Javascript!
Hello grooscript!
Grooscriptを使うことでGroovyで書いたコードをNode.js上で実行できるようになります。Groovyが使えない環境でもGrooscriptを使うことで同じコードで実行できるようになるでしょう(すべてが動くわけではありませんが)。
GrooscriptはGroovy製のオープンソース・ソフトウェア(Apache License 2.0)です。