Ruby Metaprogramming Episode 2: Sharing Behavior
One of the primary goals of good design is to put the right behavior in the right place without duplication. We’ll see three ways Ruby excels at this:
- Using prototype-based programming, where you can create hierarchies of objects with controlled sharing of both state and behavior, and without a class definition in sight.
- using inheritance (but you can only watch this section after you’ve watched the included Public Safety announcement on why inheritance is normally a bad idea). We’ll also look at what happens when you do
class<< object (and why it’s nothing whatsoever to do with inheritance).
- using modules and mixins, the sweet spot of Ruby programming. How to using
extend, and how to create modules that mix in both instance and class methods.
Episodes one and two are the foundation for the rest of the screencast.