Metaprogramming Ruby 2: Program Like the Ruby Pros (Facets of Ruby)