The Dark Side of Ruby

Metaprogramming