Class: Comable::Customer

Inherits:
ActiveRecord::Base
  • Object
show all
Includes:
CartOwner, Decoratable
Defined in:
app/models/comable/customer.rb

Instance Method Summary collapse

Methods included from CartOwner

#add_cart_item, #cart, #remove_cart_item, #reset_cart_item

Methods included from Decoratable

included

Constructor Details

#initialize(*args) ⇒ Customer

Returns a new instance of Customer.



9
10
11
12
13
14
15
16
17
18
# File 'app/models/comable/customer.rb', line 9

def initialize(*args)
  obj = args.first
  case obj.class.name
  when /Cookies/
    @cookies = obj
    super()
  else
    super
  end
end

Instance Method Details

#cart_itemsObject



39
40
41
# File 'app/models/comable/customer.rb', line 39

def cart_items
  incomplete_order.order_deliveries.first.order_details
end

#incomplete_orderObject



43
44
45
# File 'app/models/comable/customer.rb', line 43

def incomplete_order
  @incomplete_order ||= initialize_incomplete_order
end

#logged_in?Boolean

Returns:

  • (Boolean)


20
21
22
# File 'app/models/comable/customer.rb', line 20

def logged_in?
  !new_record?
end

#not_logged_in?Boolean

Returns:

  • (Boolean)


24
25
26
# File 'app/models/comable/customer.rb', line 24

def not_logged_in?
  !logged_in?
end

#order(order_params = {}) ⇒ Object



52
53
54
55
# File 'app/models/comable/customer.rb', line 52

def order(order_params = {})
  incomplete_order.attributes = order_params
  incomplete_order.complete.tap { |completed_flag| reset_cart if completed_flag }
end

#preorder(order_params = {}) ⇒ Object



47
48
49
50
# File 'app/models/comable/customer.rb', line 47

def preorder(order_params = {})
  incomplete_order.attributes = order_params
  incomplete_order.precomplete
end

#reset_cartObject



28
29
30
31
32
33
34
35
36
37
# File 'app/models/comable/customer.rb', line 28

def reset_cart
  return unless @incomplete_order
  if @incomplete_order.complete?
    @incomplete_order = nil
  else
    # TODO: テストケースの作成
    @incomplete_order.destroy
    @incomplete_order = nil
  end
end