Обычно всякие фишки метапрограммирования решаются через eval и его варианты:
class_eval, instance_eval, module_eval.
Кому приходилось пытаться догадаться в каком именно месте генерируемого из строки кода
случилась ошибка? Этого можно избежать, если указать оставшиеся два параметра у eval-а:
class_eval(<<-EOF, __FILE__, __LINE__)
…
my super generated code
…
EOF
После этого все стектрейсы будут выглядеть как ошибка в этом файле на реальной строке.