Chapter 14. Going Meta

If you've been playing along with the book to this point, you've created a functional (albeit quirky) Ruby on Rails application, added some features, and deployed it. What's left? In the real world, you'd move the deployed code to a separate Subversion branch for bug fixes, and move on to version 2.0. In our book world, the next few chapters will be spent talking about various extensions and expansions of Ruby and Rails that are going to be useful additions to your set of tools.

First up is Ruby and metaprogramming. Ever since Rails first came out, it has been accompanied by claims that the Ruby programming language is not just a useful way to script behavior, but an integral part of the Rails architecture. There were also remarks that Rails could only have been written in Ruby, although now that most of the major features have been ported (one way or another) to other languages, you hear that somewhat less these days. Even so, all the statements about how Rails depends on Ruby are responding to something real and different about Ruby: its extraordinary support for changing the program's context and structure at runtime, or metaprogramming.

Throughout the book, you've seen some examples of how metaprogramming can be used to create elegant and flexible code, and you've also seen a little bit of how metaprogramming constructs are used throughout Rails. In this chapter, you'll take a full tour of Rails metaprogramming and see how it can be used effectively. ...

Get Professional Ruby on Rails™ now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.