Chapter 15. Callbacks, hooks, and runtime introspection
This chapter covers
- Runtime callbacks: inherited, included, and more
- The respond_to? and method_missing methods
- Introspection of object and class method lists
- Trapping unresolved constant references
- Examining in-scope variables and constants
- Parsing caller and stack trace information
In keeping with its dynamic nature and its encouragement of flexible, supple object and program design, Ruby provides a large number of ways to examine what’s going on while your program is running and to set up event-based callbacks and hooks—essentially, tripwires that are pulled at specified times and for specific reasons—in the form of methods with special, reserved names for which you can, if you wish, provide definitions. Thus you can rig a module so that a particular method gets called every time a class includes that module, or write a callback method for a class that gets called every time the class is inherited, and so on.