Metaprogramming in Ruby gets a bad rap, yet Rails itself is chock-full of metaprogramming. So what is it that separates good metaprogramming from bad? Here we will take a look at some of the problems people encounter when they attempt to wield it themselves, and approaches that can make your own metaprogramming code feel as magical as it feels in Rails.