Module: Carter::ActiveRecord::Extensions

Included in:
Cart, CartItem
Defined in:
lib/carter/active_record/extensions.rb

Instance Method Summary collapse

Instance Method Details

#money_composed_column(*args) ⇒ Object



12
13
14
15
16
17
18
19
# File 'lib/carter/active_record/extensions.rb', line 12

def money_composed_column(*args)
  options = args.extract_options!
  args.each do |column_name|
    composed_options = {:class_name => '::Money', :mapping => ["#{column_name}", "cents"],
    :converter => money_converter, :constructor => money_constructor}.update(options)
    composed_of column_name, composed_options
  end
end

#money_constructorObject



8
9
10
# File 'lib/carter/active_record/extensions.rb', line 8

def money_constructor
  Proc.new { |value| value.respond_to?(:to_money) && !value.blank? ? Money.new(value) : Money.empty }
end

#money_converterObject



4
5
6
# File 'lib/carter/active_record/extensions.rb', line 4

def money_converter
  Proc.new { |value| value.respond_to?(:to_money) ? value.to_money : Money.empty }
end