small medium large xlarge

Metaprogramming Ruby: Program Like the Ruby Pros


Cover image for Metaprogramming Ruby

Metaprogramming Ruby


As a Ruby programmer, you already know how much fun it is. Now see how to unleash its power, digging under the surface and exploring the language’s most advanced features: a collection of techniques and tricks known as metaprogramming. Once the domain of expert Rubyists, metaprogramming is now accessible to programmers of all levels—from beginner to expert. Metaprogramming Ruby explains metaprogramming concepts in a down-to-earth style and arms you with a practical toolbox that will help you write great Ruby code.

Metaprogramming Ruby 2 is available here.

About this Title

Pages: 296
Published: 2010-02-01
Release: P4.0 (2012-12-03)
ISBN: 978-1-93435-647-0

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.

Read the reviews .

What You Need

Ruby 1.8 or Ruby 1.9

Contents & Extracts

Full Table of Contents


  • Metaprogramming Ruby
    • Monday: The Object Model
    • Tuesday: Methods excerpt
    • Wednesday: Blocks
    • Thursday: Class Definitions
    • Friday: Code That Writes Code
    • Epilogue
  • Metaprogramming in Rails
    • The Design of ActiveRecord
    • Inside ActiveRecord
    • Metaprogramming Safely
  • Appendices
    • Common Idioms
    • Domain Specific Languages
    • Spell Book excerpt


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.