Ruby offers a very neat alternative concept called mixin. Modules can be imported inside other class using mixin. They are then mixed-in with the class in which they are imported.
Here’s an example:
module Debug def whoAmI? "I am #{self.to_s}" end end class Photo include Debug end ph = Photo.new "I am : #<Photo:0x007f8ea218b270>"
As you can see above the class Debug and it’s method “whoamI?” were mixed-in (added) with the class Photo.
That’s why you can now create an instance of the Photo class and call the whoAmI? method.
ph.whoAmI? => "I am : #<Phonograph:0x007f8ea218b270>"
No comments:
Post a Comment