Module: EffectiveProductsRingWizard
- Extended by:
- ActiveSupport::Concern
- Defined in:
- app/models/concerns/effective_products_ring_wizard.rb
Overview
EffectiveProductsRingWizard
Mark your owner model with effective_products_ring_wizard to get all the includes
Defined Under Namespace
Modules: Base, ClassMethods
Instance Method Summary collapse
- #assign_pricing ⇒ Object
- #build_ring ⇒ Object
- #done? ⇒ Boolean
- #in_progress? ⇒ Boolean
- #ring ⇒ Object
-
#ring! ⇒ Object
After the configure Ring step.
-
#to_s ⇒ Object
Instance Methods.
Instance Method Details
#assign_pricing ⇒ Object
121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 |
# File 'app/models/concerns/effective_products_ring_wizard.rb', line 121 def assign_pricing raise('assign_pricing() to be implemented by including class') # raise('expected a persisted ring') unless ring&.persisted? # price = case ring.metal # when '14k Yellow Gold' then 450_00 # when 'Sterling Silver' then 175_00 # when 'Titanium' then 50_00 # else # raise "unexpected ring metal: #{ring.metal || 'none'}" # end # qb_item_name = "Professional Ring" # tax_exempt = false # ring.assign_attributes(price: price, qb_item_name: qb_item_name, tax_exempt: tax_exempt) end |
#build_ring ⇒ Object
111 112 113 114 115 116 117 118 119 |
# File 'app/models/concerns/effective_products_ring_wizard.rb', line 111 def build_ring ring = rings.build(owner: owner) if (address = owner.try(:shipping_address) || owner.try(:billing_address)).present? ring.shipping_address = address end ring end |
#done? ⇒ Boolean
103 104 105 |
# File 'app/models/concerns/effective_products_ring_wizard.rb', line 103 def done? submitted? end |
#in_progress? ⇒ Boolean
99 100 101 |
# File 'app/models/concerns/effective_products_ring_wizard.rb', line 99 def in_progress? draft? end |
#ring ⇒ Object
107 108 109 |
# File 'app/models/concerns/effective_products_ring_wizard.rb', line 107 def ring rings.first end |
#ring! ⇒ Object
After the configure Ring step
141 142 143 144 145 146 |
# File 'app/models/concerns/effective_products_ring_wizard.rb', line 141 def ring! assign_pricing() if ring.present? raise('expected ring to have a price') if ring.price.blank? save! end |
#to_s ⇒ Object
Instance Methods
95 96 97 |
# File 'app/models/concerns/effective_products_ring_wizard.rb', line 95 def to_s 'ring payment' end |