Metaprogramming gives us the ability to open up classes and override existing methods or add new methods in order to assign custom behavior to applications. We walked through how metaprogramming can be utilized in programs to dynamically build methods on the fly. This can provide developers with a custom interface to your code in the way that Rails allows you to use custom query methods. We also saw how to build our own metaprogramming component.
We analyzed how to utilize method_missing in a Ruby program to generate methods on the fly. We extended this example and added the respond_to? method in order to conform with Ruby best practices.
Lastly, we looked at a different way to implement metaprogramming with the define_method process.
In the next chapter, we're going to walk through the process of working with two of the popular Ruby frameworks: Sinatra and Ruby on...