Jumping from the point where Arlen left off at the last meeting, we'll take a deep dive into what gives Ruby collections their super powers. You've likely noticed that Ruby's collections provide a very consistent API. This type of cross-cutting functionality is often handled in Ruby by mixing-in a module. In this case, the module in question is the Enumerable module. We'll learn what makes a class enumerable and how to implement our own enumerable collections. We'll also talk about multiple ways to make class instances comparable, and learn what the heck an enumerator is (and why you'd ever want to use one).
Like our last meeting, this will be a live coding talk. In addition, we'll do a quick introduction to the 'irb' replacement 'pry' and we'll even dig into the MRI source to see directly how some of Ruby's collections are implemented. If we have time, we may even spend a little time re-implementing some of the methods provided by the Enumerable module.