Skip to Main Content
Professional Ruby on Rails™
book

Professional Ruby on Rails™

by Noel Rappin
February 2008
Intermediate to advanced content levelIntermediate to advanced
479 pages
14h
English
Wrox
Content preview from Professional Ruby on Rails™

14.2. Introspection Tools

Metaprogramming and introspection are fairly tightly integrated. When you're writing metaprogramming code, you will usually need to call methods or get the value of variables whose names are only determined when the code is run. Ruby contains a rich set of methods to allow access to the internal state of its objects. Most of this functionality is in the classes Class, Module, and Object.

The following tables provide a quick guide to the most commonly used methods. The eval family of methods is not included in this section, and some methods will be explained in more detail later in this chapter. The Module class, in particular, has some less commonly used introspection methods involving access control levels that are not listed here.

The first table describes the introspective methods of the Class class.

MethodDescription
inherited(subclass)Automatically called when a subclass of the class is defined.
SuperclassReturns the superclass of the class. If the class is Object, this returns nil.

The following table describes the introspective methods of the Module class.

MethodDescription
self.constantsReturns an array of all constants currently defined. This contains not just system-level constants, but also the classes and modules available. The names are returned as strings.
self.nestingReturns an array of all the nested modules currently in scope, innermost to outermost.
alias_method(new_name, old_name)Defines new_name as a copy of the definition of old_name
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

Ruby on Rails® Bible

Ruby on Rails® Bible

Timothy Fisher
Rails 4 in Action

Rails 4 in Action

Yehuda Katz, Rebecca Skinner, Stephen Klabnik, Ryan Bigg

Publisher Resources

ISBN: 9780470223888Purchase book