Ruby Mixins
15 Jan 2009
Q. What happens when you include two modules that define the same method in one class?
A. The method in the module added last is called!
module Tiger
def talk
"prrrrr!"
end
end
module Lion
def talk
"roar!"
end
end
class Liger
include Lion
include Tiger
end
class Tigon
include Tiger
include Lion
end
tigon = Tigon.new
puts "a tigon says #{tigon.talk}"
liger = Liger.new
puts "a liger says #{liger.talk}"
$ ruby cats.rb a tigon says roar! a liger says prrrrr!