First page Back Continue Last page Overview Text


I'm going to attempt to explain ruby's method lookup quickly, with some simplification, imprecision, and inaccuracy.

Basically, when a method is called on any ruby object, it's going to first look in it's singleton class, and then any modules included in that singleton class, in reverse order of inclusion.

If the method hasn't been found or the found method calls super, it substitutes the singleton class with the singleton class's superclass, and then restrarts the lookup.