Definition of Metaprogramming
== subheading == 1.1 Definition of Metaprogramming Metaprogramming refers to the writing of programs that generates code at run time. It allows us to dynamically add behavior to existing classes and objects.
Ruby is useful for metaprogramming as it is dynamic and reflective. It allows flexibility in writing new control structures.