A mixin is just a module that can be added (mixed in) to a class. one way to do it is with the extend method. The
extend method adds methods of the mixin as class methods.
module SomeMixin def foo puts "foo!" end end class Bar extend SomeMixin def baz puts "baz!" end end b = Bar.new b.baz # => "baz!" b.foo # NoMethodError, as the method was NOT added to the instance Bar.foo # => "foo!" # works only on the class itself