Class: QuickTravel::PriceChanges::BookingPriceChange

Inherits:
PriceChangeTree show all
Defined in:
lib/quick_travel/price_changes/booking_price_change.rb

Instance Attribute Summary

Attributes inherited from PriceChangeTree

#children, #root

Attributes inherited from PriceChange

#changed_price, #original_price, #price_change, #reason, #reasons, #target

Instance Method Summary collapse

Methods inherited from PriceChangeTree

#price_change_on, #roots, #total_price_change_on

Methods inherited from PriceChange

#applied_on?

Constructor Details

#initialize(attrs = {}) ⇒ BookingPriceChange

Returns a new instance of BookingPriceChange.



4
5
6
7
8
9
10
11
# File 'lib/quick_travel/price_changes/booking_price_change.rb', line 4

def initialize(attrs = {})
  super(
    attrs.merge(
      'root'     => attrs,
      'children' => attrs['reservation_price_changes']
    )
  )
end

Instance Method Details

#discountsObject



17
18
19
# File 'lib/quick_travel/price_changes/booking_price_change.rb', line 17

def discounts
  price_changes.select(&:negative?)
end

#price_changesObject



25
26
27
# File 'lib/quick_travel/price_changes/booking_price_change.rb', line 25

def price_changes
  @children.flat_map(&:roots)
end

#reservation_price_changesObject



13
14
15
# File 'lib/quick_travel/price_changes/booking_price_change.rb', line 13

def reservation_price_changes
  @children
end

#surchargesObject



21
22
23
# File 'lib/quick_travel/price_changes/booking_price_change.rb', line 21

def surcharges
  price_changes.select(&:positive?)
end