Metaprogramming is het schrijven van code die code tijdens runtime schrijft of wijzigt — methoden dynamisch definiëren, reageren op ongedefinieerde methoden, en klassen on-the-fly inspecteren/wijzigen. Ruby's dynamische aard (alles is een object, inclusief klassen) maakt het uitzonderlijk geschikt voor metaprogramming, wat veel van Rails' "magie" mogelijk maakt.
Methoden dynamisch definiëren
[, , ].each ||
(attribute)
instance_variable_get()
() ||
instance_variable_set(, value)
