class Duck def quack end
def fly end end
class Turkey def gobble end
def fly end end
class WeirdDuck < Duck# Adaptee
def quack "quack" end
def fly "I'm flying" end end
class WildTurkey < Turkey
def gobble "Gobble Gobble" end
def fly "I'm flying a short distance" end end
class TurkeyToDuckAdapter # < Duck
attr_reader :turkey
def initialize(turkey) @turkey = turkey end
def quack @turkey.gobble end
def fly @turkey.fly end end
wildturkey = WildTurkey.new
duck_like_turkey = TurkeyToDuckAdapter.new(wildturkey)
puts duck_like_turkey.quack
puts duck_like_turkey.fly