Starting out in ruby duck typing is one of those concepts you will hear thrown around. It really is a simple concept to understand. Have no fear! A beer example is here!
class Tinseth def calculate_ibus puts "lets calculate ibus with tinseth!" end end class Rager def calculate_ibus puts "lets calculate ibus with rager!" end end class Ibu def calculate_ibus(type) type.calculate_ibus end end
Now we can do something like this:
ibu = Ibu.new ibu.calculate_ibus(Tinseth.new) ibu = Ibu.new ibu.calculate_ibus(Rager.new)
Running the above will get you output like this below:
lets calculate ibus with tinseth! lets calculate ibus with rager!
The calculate_ibus method reacts differently depending on the object that receives the message.
And guess what? This is one way to implement polymorphism!
Want to learn about polymorphism? Maybe polymorphic associations in rails? Yeah? Here ya go!