第9章 安全なメタプログラミング - hamamatsu-rb/hamamatsu-rb.github.com GitHub Wiki
メタプログラミングruby読書会::第9章 安全なメタプログラミング
構成
- 9.1メタプログラミングのテスト
- 9.1.1 コントローラのフィルタ
- 9.1.2 コントローラフィルタのテスト
- 9.2 モンキーパッチを防ぐ
- 9.2.1 モンキーパッチを明示的にする
- 9.2.2 モンキーパッチの防止
- 9.3 学んだこと
- 9.3.1 あなたのメタプログラミングのコードをテストする
- 9.3.2 メタプログラミングもプログラミング
疑問・質問・ポイント
- 9.1.1
extend ClassMethods
で親のモジュール名からの名前解決がいらないのはなぜ?直後のincludeでは名前解決しているのに(murase) - 9.1.1 callbackの仕組みが理解できなかった。case文で分岐しているが、:symbol,:stringのそれぞれの場合の違いがよくわからない。
- 9.1.2 p.253 test_processのブロックのところが理解できなかった(suchi)
- 9.1 全般 -- ちょっとこれだけの例でメタプログラミングのテストができるようになるかというと辛い(suchi)
- テストも同じようなメタなテストコードになってしまいます。難しい
- 9.2.2 -- Rakeの方法について、Stringなどにメソッドを追加したつもりで、上書きしてしまうとStringのユニットテストが通らないと思うけど、そういうユニットテストを実行する方法ってあるの?(toshi) →すいません、自己解決しました。rubyソースコードに/test/ruby/test_string.rbというユニットテストがありました・・・