Class: SpreeCmCommissioner::VariantOptions
- Inherits:
-
Object
- Object
- SpreeCmCommissioner::VariantOptions
- Defined in:
- app/models/spree_cm_commissioner/variant_options.rb
Constant Summary collapse
- DEFAULT_KIDS_AGE_MAX =
17- DEFAULT_NUMBER_OF_ADULTS =
1
Instance Attribute Summary collapse
-
#variant ⇒ Object
readonly
Returns the value of attribute variant.
Instance Method Summary collapse
- #allowed_extra_adults ⇒ Object
- #allowed_extra_kids ⇒ Object
- #bib_display_prefix? ⇒ Boolean
- #bib_pre_generation_on_create? ⇒ Boolean
- #bib_prefix ⇒ Object
- #bib_zerofill ⇒ Object
- #delivery_option ⇒ Object
- #due_date ⇒ Object
- #duration_in_hours ⇒ Object
- #duration_in_minutes ⇒ Object
- #duration_in_seconds ⇒ Object
- #end_date ⇒ Object
- #end_time ⇒ Object
-
#initialize(variant) ⇒ VariantOptions
constructor
A new instance of VariantOptions.
- #kids_age_max ⇒ Object
- #location ⇒ Object
- #max_quantity_per_order ⇒ Object
- #month ⇒ Object
- #number_of_adults ⇒ Object
-
#number_of_guests ⇒ Object
can consider as customers.
- #number_of_kids ⇒ Object
-
#option_value_name_for(option_type_name: nil) ⇒ Object
these method read option value from public metadata first if no public metadata found, it will find in db.
- #payment_option ⇒ Object
- #reminder_in_hours ⇒ Object
- #seat_number_layouts ⇒ Object
- #seat_number_positions ⇒ Object
- #start_date ⇒ Object
- #start_time ⇒ Object
- #total_duration_in_seconds ⇒ Object
Constructor Details
#initialize(variant) ⇒ VariantOptions
5 6 7 |
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 5 def initialize(variant) @variant = variant end |
Instance Attribute Details
#variant ⇒ Object (readonly)
Returns the value of attribute variant.
3 4 5 |
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 3 def variant @variant end |
Instance Method Details
#allowed_extra_adults ⇒ Object
108 109 110 |
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 108 def allowed_extra_adults @allowed_extra_adults ||= option_value_name_for(option_type_name: 'allowed-extra-adults')&.to_i || 0 end |
#allowed_extra_kids ⇒ Object
112 113 114 |
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 112 def allowed_extra_kids @allowed_extra_kids ||= option_value_name_for(option_type_name: 'allowed-extra-kids')&.to_i || 0 end |
#bib_display_prefix? ⇒ Boolean
124 125 126 127 |
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 124 def bib_display_prefix? @bib_display_prefix ||= option_value_name_for(option_type_name: 'bib-display-prefix')&.to_i || 1 @bib_display_prefix == 1 end |
#bib_pre_generation_on_create? ⇒ Boolean
129 130 131 132 |
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 129 def bib_pre_generation_on_create? @bib_pre_generation_on_create ||= option_value_name_for(option_type_name: 'bib-pre-generation-on-create')&.to_i || 0 @bib_pre_generation_on_create == 1 end |
#bib_prefix ⇒ Object
116 117 118 |
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 116 def bib_prefix @bib_prefix ||= option_value_name_for(option_type_name: 'bib-prefix') end |
#bib_zerofill ⇒ Object
120 121 122 |
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 120 def bib_zerofill @bib_zerofill ||= option_value_name_for(option_type_name: 'bib-zerofill')&.to_i || 3 end |
#delivery_option ⇒ Object
80 81 82 |
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 80 def delivery_option @delivery_option ||= option_value_name_for(option_type_name: 'delivery-option') end |
#due_date ⇒ Object
88 89 90 |
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 88 def due_date @due_date ||= option_value_name_for(option_type_name: 'due-date')&.to_i end |
#duration_in_hours ⇒ Object
54 55 56 |
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 54 def duration_in_hours @duration_in_hours ||= option_value_name_for(option_type_name: 'duration-in-hours')&.to_i end |
#duration_in_minutes ⇒ Object
58 59 60 |
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 58 def duration_in_minutes @duration_in_minutes ||= option_value_name_for(option_type_name: 'duration-in-minutes')&.to_i end |
#duration_in_seconds ⇒ Object
62 63 64 |
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 62 def duration_in_seconds @duration_in_seconds ||= option_value_name_for(option_type_name: 'duration-in-seconds')&.to_i end |
#end_date ⇒ Object
29 30 31 32 33 34 |
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 29 def end_date @end_date ||= begin date = option_value_name_for(option_type_name: 'end-date') Time.zone.parse(date) if date.present? end end |
#end_time ⇒ Object
43 44 45 46 47 48 |
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 43 def end_time @end_time ||= begin time = option_value_name_for(option_type_name: 'end-time') Time.zone.parse(time) if time.present? end end |
#kids_age_max ⇒ Object
104 105 106 |
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 104 def kids_age_max @kids_age_max ||= option_value_name_for(option_type_name: 'kids-age-max')&.to_i || DEFAULT_KIDS_AGE_MAX end |
#location ⇒ Object
18 19 20 |
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 18 def location @location ||= option_value_name_for(option_type_name: 'location')&.to_i end |
#max_quantity_per_order ⇒ Object
84 85 86 |
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 84 def max_quantity_per_order @max_quantity_per_order ||= option_value_name_for(option_type_name: 'max-quantity-per-order')&.to_i end |
#month ⇒ Object
92 93 94 |
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 92 def month @month ||= option_value_name_for(option_type_name: 'month')&.to_i end |
#number_of_adults ⇒ Object
96 97 98 |
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 96 def number_of_adults @number_of_adults ||= option_value_name_for(option_type_name: 'number-of-adults')&.to_i || DEFAULT_NUMBER_OF_ADULTS end |
#number_of_guests ⇒ Object
can consider as customers.
143 144 145 |
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 143 def number_of_guests number_of_adults + number_of_kids end |
#number_of_kids ⇒ Object
100 101 102 |
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 100 def number_of_kids @number_of_kids ||= option_value_name_for(option_type_name: 'number-of-kids')&.to_i || 0 end |
#option_value_name_for(option_type_name: nil) ⇒ Object
these method read option value from public metadata first if no public metadata found, it will find in db.
14 15 16 |
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 14 def option_value_name_for(option_type_name: nil) variant.option_value_name_for(option_type_name: option_type_name) end |
#payment_option ⇒ Object
76 77 78 |
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 76 def payment_option @payment_option ||= option_value_name_for(option_type_name: 'payment-option') end |
#reminder_in_hours ⇒ Object
50 51 52 |
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 50 def reminder_in_hours @reminder_in_hours ||= option_value_name_for(option_type_name: 'reminder-in-hours')&.to_i end |
#seat_number_layouts ⇒ Object
138 139 140 |
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 138 def seat_number_layouts @seat_number_layouts ||= option_value_name_for(option_type_name: 'seat-number-layouts')&.split(',') end |
#seat_number_positions ⇒ Object
134 135 136 |
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 134 def seat_number_positions @seat_number_positions ||= option_value_name_for(option_type_name: 'seat-number-positions')&.split(',') end |
#start_date ⇒ Object
22 23 24 25 26 27 |
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 22 def start_date @start_date ||= begin date = option_value_name_for(option_type_name: 'start-date') Time.zone.parse(date) if date.present? end end |
#start_time ⇒ Object
36 37 38 39 40 41 |
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 36 def start_time @start_time ||= begin time = option_value_name_for(option_type_name: 'start-time') Time.zone.parse(time) if time.present? end end |
#total_duration_in_seconds ⇒ Object
66 67 68 69 70 71 72 73 74 |
# File 'app/models/spree_cm_commissioner/variant_options.rb', line 66 def total_duration_in_seconds total_duration_in_seconds = 0 total_duration_in_seconds += duration_in_hours * 3600 if duration_in_hours.present? total_duration_in_seconds += duration_in_minutes * 60 if duration_in_minutes.present? total_duration_in_seconds += duration_in_seconds if duration_in_seconds.present? total_duration_in_seconds end |