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

Instance Method Details

#assign_pricingObject



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_ringObject



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

Returns:

  • (Boolean)


103
104
105
# File 'app/models/concerns/effective_products_ring_wizard.rb', line 103

def done?
  
end

#in_progress?Boolean

Returns:

  • (Boolean)


99
100
101
# File 'app/models/concerns/effective_products_ring_wizard.rb', line 99

def in_progress?
  draft?
end

#ringObject



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_sObject

Instance Methods



95
96
97
# File 'app/models/concerns/effective_products_ring_wizard.rb', line 95

def to_s
  'ring payment'
end