2012/11/27 Yokohama.groovy #9 #yokohamagroovy
#yokohamagroovy 本日のYokohama.groovy は第9回。20:00~22:00 横浜タネマキで開催予定です。 http://t.co/NgDV5C8s 『プログラミングGroovy』4.2 Groovy JDK(GDK)、5.2 メタプログラミング等。
2012-11-27 10:30:13@grimrose @y_sumida タネマキ着20:45位になりそうです。通常通り本編始めてしまってください。自分も電車内でゆるりと始めます。 #yokohamagroovy
2012-11-27 19:52:36Object#useとしてGDKが拡張しているためCategoryが使える http://t.co/LWYTQEXI #yokohamagroovy
2012-11-27 20:04:16#yokohamagroovy Groovy - Japanese Collections http://t.co/zZk2FYXR
2012-11-27 21:07:03#yokohamagroovy メタプログラミング:カテゴリ(category)の使用例。GExcelAPIのソースコード。 / https://t.co/0k8qghhr
2012-11-27 21:08:05#yokohamagroovy 第9回終了。invokeMethodとmethodMissingの違いについて色々悩んだりし通しだった気がw
2012-11-27 22:02:47#yokohamagroovy メソッドとしてのinvokeMethodと、metaClassのinvokeMethodの動きの違い — Gist https://t.co/LcSxxXNl
2012-11-27 22:06:45metaClassの方ですね。RT @shinyaa31: #yokohamagroovy メタプログラミング:カテゴリ(category)の使用例。GExcelAPIのソースコード。 / http://t.co/3LqFKq2d
2012-11-27 22:12:10@nobeans GExcel.groovyだけしか見ていなかったので、助かります。ちょうど青い本のメタプログラミングの箇所をやっていたので、参考にさせていただきました。
2012-11-27 22:17:36#yokohamagroovy 年内最後の第10回は三週間後の12/18(火) 20:00~22:00、場所は毎度の横浜タネマキにて。『プログラミングGroovy』 5.3 AST変換からです。書籍写経も次回が一応最後となります。
2012-11-27 23:04:34@grimrose まず、invokeMethodはGroovyObjectとMetaClassに定義されています。で、Groovyで定義したClassというのは明示的にClassGeneratorを使わない限りはGroovyObjectのサブクラスになります。
2012-11-28 00:04:08@grimrose GroovyObjectのinvokeMethodはデフォルトではMetaClassのinvokeMethodを呼ぶようになっています。そこで、インスタンスのMetaClassやクラスのMetaClassについて対象のメソッドを探索します。
2012-11-28 00:05:28@grimrose どのMetaClassにもメソッドが存在しない場合はMethodMissingとなります。このばあいにmethodMissingがコールされる事になります。
2012-11-28 00:07:11@grimrose MetaClassに存在する場合はMetaClassのinvokeMethodを経由して対象のメソッドがコールされることになります。
2012-11-28 00:08:02@grimrose 他にもClosureの場合や、Javaクラスの場合、Interceptableを継承している場合などがあります。で、これらを経ながらいくつかリダイレクトというか、うまい具合に解決をするわけです。
2012-11-28 00:11:31