Modules And Lookup Path
This is based on The Well Grounded Rubyist book, you should definitely buy it
When you include a module in a class (or even in another module), Ruby inserts the module in the ancestors chain, right above the including class itself:
Starting from Ruby 2.0 you also have a second way to insert a module in a class’s chain of ancestors: the prepend
method. It works like include but it inserts the module below the including class, rather than above it: