in your class and include the Enumerable module you get all sorts of methods for free. Enumerable uses :each in your class as the basis for its lovely methods.
based on as its :each method. 1st line — :each returns an enumerator that uses Array’s :each method code for its :each method, so a call to :map after works as normal. 2nd line — :map returns an enumerator that uses Array’s :map method code for its :each, so the call to :each is technically just a call to :map.
into the object’s class, there is no method called :shout so we move up the chain to Object. We reach BasicObject without having found it, so :method_missing is called on the original receiver (me) and we follow the process again. This means you can override :method_missing in your classes if you so wish.
#me #Skip :hello #Object #BasicObject Right from the Skip class into its singleton class, then up into the superclass’s singleton class, and so on. This is a simplified object model without modules, but if you understand this then you’re golden.