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