私はRubyで書かれたフレームワークをGroovyに変換する必要があります。
コアルビの外では何も使用しませんが、メタプログラミングはたくさんあります。Ruby to Groovy
Groovyでサポートされている基本的な機能はすべて同じで、切り替えは複雑ですか?
私はRubyで書かれたフレームワークをGroovyに変換する必要があります。
コアルビの外では何も使用しませんが、メタプログラミングはたくさんあります。Ruby to Groovy
Groovyでサポートされている基本的な機能はすべて同じで、切り替えは複雑ですか?
サイズや機能などによっては簡単ではないかもしれないと思いますが、書き換えとしてあまり翻訳されません。書き直しを考えている時はいつでも、私は自分自身をJoel's musings on thisと呼んでいます。
なぜGroovyでこれを修正する必要がありますか? JVMが必要な場合(追加のライブラリ/フレームワークを統合するなど)、JRubyを見ましたか?それはあなたに多くの仕事と苦痛を救うかもしれません。
GroovyとRubyの間に大きな違いはありませんが、メタプログラミングの側面は少し変わります。
私はGroovyの専門家ではないですが、私はあなたにドキュメント(http://groovy.codehaus.org/Dynamic+Groovy)でいくつかのポインタを参照することができます。
動的なメソッド呼び出し:欠落している
# Ruby
an_instance.send("method_name")
// Groovy
anInstance."$methodName"()
は方法:
# Ruby
def method_missing(meth, *args, &blk)
# Some code
end
// Groovy
def methodMissing(String name, args) {
// Some code
}
実行時にクラスにメソッドを追加する:
# Ruby
class SomeObject
define_method :new_method do
# Do something
end
end
// Groovy
SomeObject.metaClass.newMethod = {->
// Do something
}
+1 JRubyのアイデアのために! –
私はすでにJRuby + Swingで試してみましたが、素晴らしい仕事をしましたが、残念ながら最終的な言語決定を行う立場にはありません。 –
また、フレームワークを他の言語に変換することはリファクタリングと見なすべきであり、リファクタリングは単体テストのスーツがあることを意味します。テストを実施しないで移行を開始しないでください。これは動作しない可能性が高いためです。 ここには素晴らしいランタバウトがあります:http://hamletdarcy.blogspot.com/2009/06/forgotten-refactorings.html –