Module: DigitalOpera::Banker::ClassMethods

Defined in:
lib/digital_opera/banker.rb

Instance Method Summary collapse

Instance Method Details

#currency_fields(*args) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/digital_opera/banker.rb', line 14

def currency_fields(*args)
  args.each do |field_name|
    getter           = field_name.to_sym
    setter           = "#{field_name}=".to_sym
    instance_getter  = "#{field_name}_in_cents".to_sym
    instance_setter  = "#{field_name}_in_cents=".to_sym

    # define the getter method
    send :define_method, getter do
      value = send(instance_getter)
      banker_convert_currency(value, :to_dollars)
    end

    # define the setter method
    send :define_method, setter do |value|
      send instance_setter, banker_convert_currency(value, :to_cents)
    end
  end
end