# animal.rb class Animal module Adapter module Dog def self.speak puts "woof!" end end module Cat def self.speak puts "meow!" end end end def speak self.adapter.speak end def adapter return @adapter if @adapter self.adapter = :dog @adapter end def adapter=(adapter) @adapter = Animal::Adapter.const_get(adapter.to_s.capitalize) end end