Class: HhAddOn::ReservationAddOns::Metadata
- Inherits:
-
Object
- Object
- HhAddOn::ReservationAddOns::Metadata
- Defined in:
- app/my_lib/hh_add_on/reservation_add_ons/metadata.rb
Instance Attribute Summary collapse
-
#add_on_params ⇒ Object
Returns the value of attribute add_on_params.
-
#adult ⇒ Object
Returns the value of attribute adult.
-
#kids ⇒ Object
Returns the value of attribute kids.
Class Method Summary collapse
-
.from_reservation(reservation, reservation_custom_commission: nil) ⇒ Object
Rebuilds add_on_params from reservation.add_on_bought for recalculating add-on pricing when reservation attributes (adult, kids) change.
Instance Method Summary collapse
- #generate ⇒ Object
-
#initialize(add_on_params: [], adult: 0, kids: 0) ⇒ Metadata
constructor
A new instance of Metadata.
Constructor Details
#initialize(add_on_params: [], adult: 0, kids: 0) ⇒ Metadata
Returns a new instance of Metadata.
42 43 44 45 46 47 |
# File 'app/my_lib/hh_add_on/reservation_add_ons/metadata.rb', line 42 def initialize(add_on_params: [], adult: 0, kids: 0) self.add_on_params = add_on_params.map(&:with_indifferent_access) self.adult = adult self.kids = kids @price_finder = HhPackage::ReservationPackages::PriceFinder.new end |
Instance Attribute Details
#add_on_params ⇒ Object
Returns the value of attribute add_on_params.
20 21 22 |
# File 'app/my_lib/hh_add_on/reservation_add_ons/metadata.rb', line 20 def add_on_params @add_on_params end |
#adult ⇒ Object
Returns the value of attribute adult.
20 21 22 |
# File 'app/my_lib/hh_add_on/reservation_add_ons/metadata.rb', line 20 def adult @adult end |
#kids ⇒ Object
Returns the value of attribute kids.
20 21 22 |
# File 'app/my_lib/hh_add_on/reservation_add_ons/metadata.rb', line 20 def kids @kids end |
Class Method Details
.from_reservation(reservation, reservation_custom_commission: nil) ⇒ Object
Rebuilds add_on_params from reservation.add_on_bought for recalculating add-on pricing when reservation attributes (adult, kids) change.
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'app/my_lib/hh_add_on/reservation_add_ons/metadata.rb', line 25 def self.from_reservation(reservation, reservation_custom_commission: nil) add_on_bought = reservation.add_on_bought || [] add_on_params = add_on_bought.map do |addon| { id: addon[:restaurant_add_on_id] || addon['restaurant_add_on_id'], quantity: addon[:quantity] || addon['quantity'] } end.select { |p| p[:id].present? } = HhAddOn::ReservationAddOns::Metadata.new( add_on_params: add_on_params, adult: reservation.adult, kids: reservation.kids, ) reservation&.property.presence || reservation.build_property end |
Instance Method Details
#generate ⇒ Object
68 69 70 |
# File 'app/my_lib/hh_add_on/reservation_add_ons/metadata.rb', line 68 def generate generate_data end |