Module: MultiCurrency
- Defined in:
- lib/multi_currency.rb
Instance Method Summary collapse
-
#multi_currency(*args) ⇒ Object
Order.class_eval do extend MultiCurrency multi_currency :item_total, :total, :rate_at_date => lambda{ |t| t.created_at }, :only_read => true only_read - выполнять перевод из одной валюты в другую только для вывода rate_at_date - использовать курс валюты на дату.
Instance Method Details
#multi_currency(*args) ⇒ Object
Order.class_eval do extend MultiCurrency multi_currency :item_total, :total,
:rate_at_date => lambda{ |t| t.created_at },
:only_read => true
only_read - выполнять перевод из одной валюты в другую только для вывода
rate_at_date - использовать курс валюты на дату
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/multi_currency.rb', line 10 def multi_currency(*args) = args. [args].flatten.compact.each do |number_field| define_method(number_field.to_sym) do if .has_key?(:rate_at_date) && [:rate_at_date].is_a?(Proc) Currency.conversion_to_current(read_attribute(number_field.to_sym), { :date => [:rate_at_date].call(self) }) else Currency.conversion_to_current(read_attribute(number_field.to_sym)) end end unless [:only_read] define_method(:"#{number_field}=") do |value| write_attribute(number_field.to_sym, Currency.conversion_from_current(value)) end end end end |