Обычно всякие фишки метапрограммирования решаются через eval и его варианты:
class_eval, instance_eval, module_eval.

Кому приходилось пытаться догадаться в каком именно месте генерируемого из строки кода
случилась ошибка? Этого можно избежать, если указать оставшиеся два параметра у eval-а:


class_eval(<<-EOF, __FILE__, __LINE__)
  …
  my super generated code
  …
EOF

После этого все стектрейсы будут выглядеть как ошибка в этом файле на реальной строке.

Sidebar