Class: PowerShop::OrderForm

Inherits:
Object
  • Object
show all
Includes:
ActiveModel::Model
Defined in:
app/forms/power_shop/order_form.rb

Overview

class represent form for create new order TODO: this class want specs

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(cart, attributes = {}) ⇒ OrderForm

Public: initialize new order form

cart - Shopping cart



20
21
22
23
24
25
# File 'app/forms/power_shop/order_form.rb', line 20

def initialize(cart, attributes={})
  @order = ::Order.new
  @cart = cart

  apply_attributes(attributes) if attributes.present?
end

Instance Attribute Details

#cartObject (readonly)

Returns the value of attribute cart.



10
11
12
# File 'app/forms/power_shop/order_form.rb', line 10

def cart
  @cart
end

#delivery_addressObject

Returns the value of attribute delivery_address.



9
10
11
# File 'app/forms/power_shop/order_form.rb', line 9

def delivery_address
  @delivery_address
end

#orderObject (readonly)

Returns the value of attribute order.



10
11
12
# File 'app/forms/power_shop/order_form.rb', line 10

def order
  @order
end

#user_emailObject

Returns the value of attribute user_email.



9
10
11
# File 'app/forms/power_shop/order_form.rb', line 9

def user_email
  @user_email
end

#user_nameObject

Returns the value of attribute user_name.



9
10
11
# File 'app/forms/power_shop/order_form.rb', line 9

def user_name
  @user_name
end

#user_phoneObject

Returns the value of attribute user_phone.



9
10
11
# File 'app/forms/power_shop/order_form.rb', line 9

def user_phone
  @user_phone
end

Instance Method Details

#performObject

Public: process create new order, clear cart, and sent notifications

Example:

if @order_form.valid?
    @order_form.perform

Returns boolean



34
35
36
37
38
39
40
41
42
43
# File 'app/forms/power_shop/order_form.rb', line 34

def perform
  return false unless valid?

  if result = make_order
    cart.clear
    send_emails
  end

  result
end