Metaprogramming Ruby: Program Like the Ruby Pros by Paolo Perrotta is a book whose style tends to be divisive. In other words, you will probably love it or hate it. Once you’ve realised that, it’s important to note that even if you fall into the category of people who hate it, it’s worth giving it a chance and pushing through. The content inside makes it worth your time.
The concepts are wrapped in a thin narrative and presented while walking through solving a series of problems in which you get the thought process and concepts along with code samples that evolve iteratively incorporating the concept being discussed. Some of the concepts covered in the book include: object model, methods, blocks, class definitions, code that writes code and Rails. The explanation of the Ruby object model is one of the best I’ve ever read.
While the narrative isn’t everyone’s preferred style ( just read through the reviews on Amazon to see what I mean ), I don’t believe it’s intended to be condescending. Rather, what it does is demonstrate problem-solving thought processes that are Ruby-oriented. This makes Metaprogramming Ruby an ideal book to read when diving into both the decision making process and the coding process rather than just finished samples of code.
The result, whether you like the style or not, is a book that teaches problem solving “the Ruby way” while explaining the Ruby notion of metaprogramming in a clear manner.
Check out Metaprogramming Ruby on Amazon ( I don’t recommend the Kindle edition because of some formatting issues that make it difficult to read ).