Review of Metaprogramming Ruby 2 written by Paolo Perrotta https://pragprog.com/book/ppmetr2/metaprogramming-ruby-2