11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
# File 'app/helpers/number_helper_decorator.rb', line 11
def number_to_currency(number, options = {})
return nil if number.nil?
options.symbolize_keys!
currency_char = Spree::Currency.current.try(:char_code) ||
I18n.default_locale
options[:locale] = "currency_#{ currency_char }"
defaults = I18n.translate('number.format',
locale: options[:locale],
default: {})
currency = I18n.translate('number.currency.format',
locale: options[:locale],
default: {})
defaults = DEFAULT_CURRENCY_VALUES.merge(defaults).merge!(currency)
defaults[:negative_format] = '-%n %u'
options = defaults.merge!(options)
unit = options.delete(:unit)
format = options.delete(:format)
if number.to_f < 0
format = options.delete(:negative_format)
number = number.abs
end
value = number_with_precision(number, options.merge(raise: true))
format.gsub(/%n/, value).gsub(/%u/, unit).html_safe
end
|