範囲を限定しないと予期せぬ場所で問題が発生しそう。通常はNoMethodErrorが発行される。◎モジュールによるメタプログラミングdefやattr_accessorなどその一例。ActsAs...ってそういう意味合いだったのか。親クラスバージョン、親クラス+マクロ、モジュールそれぞれの実装の仕方の紹介。ActiveRecordではメタプログラミングを利用してDBのカラム名からアクセサを追加。シンタックスの美しさ=読みやすさ感想&疑問点:メタプログラミングはフレームワークを作成するのが便利そう。エラーや問題が起きた時の対処をきちんと準備しておかないとひどい目に合いそう。複数のモジュール(gemとか)を組み合わせて使っている場合にincludeの順序がどのようになるかが気になる。予期せぬ順序でincludeされて利用しようと思ったメソッドがオーバーライドされてるとかありそう。追っかけるのがまた大変そうだ。異なるパフォーマンス(開発者の開発速度)の観点が一番おもしろかった。なれるまでは大変そう。injectとかコードブロックをうまく利用するイメージがわかない。思考については反復練習かな。これは他の言語でも一緒かなようやく、Rubyの世界が終わりました。次は未知の言語である「Io」です。(試してみよう:)○eachメソッドがCsvRowオブジェクトを返すようにCSVアプリケーションを変更せよ。そのCsvRowのmethod_mmissingを使って、与えられた見出しの列の値を返すようにせよ。モジュールにて実装してみた。endここまでが実装したモジュール+クラス。id,name,sizeというheaderをもつCSVを使ってみた。style="color:#FF0000">※idというcsvフィールド名にしたら、object_idとかぶっているようでwarningが出てしまった。</span>CsvRowクラスの定義がモジュールの中に入っているが、この実装でも動くみたい。パッケージみたいな感じ7日までは調査してない。