class Theatre
Attributes
deliverable_options[RW]
delivery_id[RW]
delivery_size[RW]
theater_id[RW]
Public Class Methods
new(delivery_id, delivery_size, theater_id)
click to toggle source
# File lib/theatre.rb, line 4 def initialize(delivery_id, delivery_size, theater_id) self.delivery_id = delivery_id self.delivery_size = delivery_size self.theater_id = theater_id self.deliverable_options = [] end
Public Instance Methods
filter_by_cost()
click to toggle source
# File lib/theatre.rb, line 11 def filter_by_cost lowest = self.deliverable_options.min_by{ |opt| opt.delivery_cost } lowest.nil? ? Deliverable.new(self.delivery_id, false) : lowest end
set_deliverable_options(partners)
click to toggle source
# File lib/theatre.rb, line 16 def set_deliverable_options(partners) available_partners = filtered_partners(partners) available_partners.each do |partner| self.deliverable_options << Deliverable.new(self.delivery_id, true, partner.partner_id, partner.calculate_delivery_cost(self), self.delivery_size) end end
Private Instance Methods
filtered_partners(partners)
click to toggle source
# File lib/theatre.rb, line 24 def filtered_partners(partners) partners.select { |partner| partner.theater_id == self.theater_id && partner.deliverable_size?(self.delivery_size)} end