メタプログラミングは、実行時にコードを書いたり変更したりするコードを書くことです——メソッドを動的に定義し、未定義のメソッド呼び出しに応答し、クラスをその場で検査/変更します。Rubyの動的な性質(クラスを含めすべてがオブジェクト)により、Rubyはメタプログラミングが極めて得意であり、これがRailsの「魔法」の多くを支えています。
メソッドを動的に定義する
[, , ].each ||
(attribute)
instance_variable_get()
() ||
instance_variable_set(, value)
