Groovy로 변환해야하는 Ruby로 작성된 프레임 워크가 있습니다.
코어 루비 이외의 것은 사용하지 않지만 메타 프로그래밍은 많이 사용합니다.Ruby to Groovy
Groovy에서 지원하는 기본 기능은 모두 동일하며 전환이 복잡합니까?
Groovy로 변환해야하는 Ruby로 작성된 프레임 워크가 있습니다.
코어 루비 이외의 것은 사용하지 않지만 메타 프로그래밍은 많이 사용합니다.Ruby to Groovy
Groovy에서 지원하는 기본 기능은 모두 동일하며 전환이 복잡합니까?
크기 나 기능 등에 따라 쉽지 않을 수도 있고, 재 작성으로 번역하는 것이 아닙니다. 재 작성을 생각하고있을 때마다 나는 더 나아 가기 전에 Joel's musings on this을 참조합니다.
왜 이것을 Groovy에서 다시 작성해야합니까? JVM이 필요하다면 (예를 들어, 추가 라이브러리/프레임 워크를 통합하기 위해) JRuby을 보았습니까? 그것은 많은 일과 고통을 줄여 줄 것입니다.
Groovy와 Ruby는 크게 다르지 않지만 메타 프로그래밍 측면이 약간 바뀝니다. 나는 그루비 전문가가 아니라고하지만
, 나는 설명서에 당신에게 (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에서 이미 시도해 보았지만 훌륭하게 작동했지만 불행히도 최종 언어 결정을 내릴 위치에 없었습니다. –
또한 프레임 워크를 다른 언어로 변환하는 것은 리팩토링으로 간주되어야하며 리팩토링은 단위 테스트를 제안합니다. 테스트를하지 않고 마이그레이션을 시작하지 마십시오. 작동하지 않을 가능성이 높으므로 마이그레이션을 시작하십시오. 좋은 rantabout 여기있다 : http://hamletdarcy.blogspot.com/2009/06/forgotten-refactorings.html –