Infer currency negative format from positive one.

When a locale file sets the format of the positive
currency value as '%n %u', the default negative
currency format should be '-%n %u'.
This commit is contained in:
Tsutomu Kuroda 2012-01-05 00:23:10 +09:00
parent 78372b6cbb
commit 6724c8c887
2 changed files with 8 additions and 0 deletions

@ -114,6 +114,7 @@ def number_to_currency(number, options = {})
defaults = I18n.translate(:'number.format', :locale => options[:locale], :default => {})
currency = I18n.translate(:'number.currency.format', :locale => options[:locale], :default => {})
currency[:negative_format] ||= "-" + currency[:format] if currency[:format]
defaults = DEFAULT_CURRENCY_VALUES.merge(defaults).merge!(currency)
defaults[:negative_format] = "-" + options[:format] if options[:format]

@ -54,6 +54,13 @@ def test_number_to_currency_with_clean_i18n_settings
end
end
def test_number_to_currency_without_currency_negative_format
clean_i18n do
I18n.backend.store_translations 'ts', :number => { :currency => { :format => { :unit => '@', :format => '%n %u' } } }
assert_equal("-10.00 @", number_to_currency(-10, :locale => 'ts'))
end
end
def test_number_with_i18n_precision
#Delimiter was set to ""
assert_equal("10000", number_with_precision(10000, :locale => 'ts'))