Everyone in the Ruby world seems to be talking about metaprogramming--how you can use it to remove duplication in your code and write elegant, beautiful programs. Now you can get in on the action as well.
This book describes metaprogramming as an essential component of Ruby. Once you understand the principles of Ruby, including the object model, scopes, and eigenclasses, you're on your way to applying metaprogramming both in your daily work and in your fun, after-hours projects.
Learning metaprogramming doesn't have to be difficult or boring. By taking you on a Monday-through-Friday workweek adventure with a pair of programmers, Paolo Perrotta helps make mastering the art of metaprogramming both straightforward and entertaining.
The book is packed with:
Pragmatic examples of metaprogramming in action, many of which come straight from popular libraries or frameworks, such as Rails.
Programming challenges that let you experiment and play with some of the most fun, "out-there" metaprogramming concepts.
Metaprogramming spells--34 practical recipes and idioms that you can study and apply right now, to write code that is sure to impress.
Whether you're a Ruby apprentice on the path to mastering the language or a Ruby wiz in search of new tips, this book is for you.
Paolo Perrotta has more than ten years of experience as a developer and writer. He worked for domains ranging from embedded to enterprise software, computer games, and web applications. These days, Paolo coaches agile teams for Yoox, a large Internet fashion shop, and teaches Java to developers throughout Europe. He lives in Bologna, Italy, with his girlfriend and a cat. He loves Ruby.
The storytelling used to weave the chapters together is perhaps a bit gimmicky but you shouldn't let that distract you from what is a very readable and lucid explanation of the inner workings of the Ruby object model.
Heavy metaprogramming seems to be the chosen idiom of the Ruby community and the understanding you gain from this book will get you a long way towards fluency.
Bottom Line Yes, I would recommend this to a friend
TLDR: If you prefer reading "...for Dummies" style books then this is probably the book for you. Otherwise stay away.
From a purely information content perspective, this is actually a rather good book on the subject, but it's so painful to read that it's nearly useless. If I had read more of the reviews I might have been prepared for the "Insipid Tales of Bill the Asinine Coworker", as others have put it so well. But I didn't, and now I'm paying the price. It's a shame that eBooks can't be returned.
Unfortunately the book's description leads one to think that this is a more serious book about an advanced programming topic rather than a story about starting a new job and learning the difference between "Good Metaprogramming" and "Evil Metaprogramming". I'm sure some people like that style, and Harry Potter fans will be delighted by the "spell book" at the end. For me, it makes reading more difficult because I spend most of my time scanning over the noise looking for the real content, only to find it and then realize that it's referencing some nugget that was buried somewhere in the narrative. Very frustrating.
Bottom Line No, I would not recommend this to a friend