Programming Ruby 1.9 & 2.0: The Pragmatic Programmers' Guide