Module: ActionView::Helpers::NumberHelper

Defined in:
app/helpers/number_helper_decorator.rb

Instance Method Summary collapse

Instance Method Details

#number_to_currency(number, options = {}) ⇒ Object



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