Inheritance and Modules
Modules and Mixins
A module can be included in a class to share reusable methods.
Modules and Mixins
modules_mixins.rb
module Trackable
def tracking_label
"tracking #{tracking_id}"
end
end
class Shipment
include Trackable
def initialize(tracking_id)
@tracking_id = tracking_id
end
def tracking_id
@tracking_id
end
end
tracking_id =
shipment = Shipment.new(tracking_id)
puts shipment.tracking_label
module Trackable
def tracking_label
"tracking #{tracking_id}"
end
end
class Shipment
include Trackable
def initialize(tracking_id)
@tracking_id = tracking_id
end
def tracking_id
@tracking_id
end
end
tracking_id =
shipment = Shipment.new(tracking_id)
puts shipment.tracking_label
module Trackable
def tracking_label
"tracking #{tracking_id}"
end
end
class Shipment
include Trackable
def initialize(tracking_id)
@tracking_id = tracking_id
end
def tracking_id
@tracking_id
end
end
tracking_id =
shipment = Shipment.new(tracking_id)
puts shipment.tracking_label
mixin
A mixin is a module included into a class so its methods act like instance methods.