Skip to content

Instantly share code, notes, and snippets.

@willclark
Last active December 15, 2015 07:39
Show Gist options
  • Save willclark/5224706 to your computer and use it in GitHub Desktop.
Save willclark/5224706 to your computer and use it in GitHub Desktop.
module DefaultAutomobileProperties
def engine_type
:gasoline
end
def front_wheel_drive
true
end
def passengers
2
end
def removable_top
false
end
end
class Truck
include DefaultAutomobileProperties
def engine_type
:diesel
end
end
class Wrangler
include DefaultAutomobileProperties
def front_wheel_drive
false
end
def removable_top
true
end
end
truck = Truck.new
wrangler = Wrangler.new
truck.engine_type # => :diesel
truck.front_wheel_drive # => true
truck.passengers # => 2
truck.removable_top # => false
wrangler.engine_type # => :gasoline
wrangler.front_wheel_drive # => false
wrangler.passengers # => 2
wrangler.removable_top # => true
class Automobile
def engine_type
:gasoline
end
def front_wheel_drive
true
end
def passengers
2
end
def removable_top
false
end
end
class Truck < Automobile
def engine_type
:diesel
end
end
class Wrangler < Automobile
def front_wheel_drive
false
end
def removable_top
true
end
end
truck = Truck.new
wrangler = Wrangler.new
truck.engine_type # => :diesel
truck.front_wheel_drive # => true
truck.passengers # => 2
truck.removable_top # => false
wrangler.engine_type # => :gasoline
wrangler.front_wheel_drive # => false
wrangler.passengers # => 2
wrangler.removable_top # => true
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment