mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Added default currency values to NumberHelper and pass them to I18n.translate
[#4604 state:committed] Signed-off-by: José Valim <jose.valim@gmail.com>
This commit is contained in:
parent
107c6381a0
commit
c7e6777961
2 changed files with 22 additions and 2 deletions
|
@ -13,6 +13,9 @@ module ActionView
|
|||
# unchanged if can't be converted into a valid number.
|
||||
module NumberHelper
|
||||
|
||||
DEFAULT_CURRENCY_VALUES = { :format => "%u%n", :unit => "$", :separator => ".", :delimiter => ",",
|
||||
:precision => 2, :significant => false, :strip_insignificant_zeros => false }
|
||||
|
||||
# Raised when argument +number+ param given to the helpers is invalid and
|
||||
# the option :raise is set to +true+.
|
||||
class InvalidNumberError < StandardError
|
||||
|
@ -104,9 +107,9 @@ module ActionView
|
|||
|
||||
defaults = I18n.translate(:'number.format', :locale => options[:locale], :default => {})
|
||||
currency = I18n.translate(:'number.currency.format', :locale => options[:locale], :default => {})
|
||||
defaults = defaults.merge(currency)
|
||||
|
||||
options = options.reverse_merge(defaults)
|
||||
defaults = DEFAULT_CURRENCY_VALUES.merge(defaults).merge!(currency)
|
||||
options = defaults.merge!(options)
|
||||
|
||||
unit = options.delete(:unit)
|
||||
format = options.delete(:format)
|
||||
|
|
|
@ -45,6 +45,12 @@ class NumberHelperTest < ActionView::TestCase
|
|||
assert_equal("&$ - 10.00", number_to_currency(10, :locale => 'ts'))
|
||||
end
|
||||
|
||||
def test_number_to_currency_with_clean_i18n_settings
|
||||
clean_i18n do
|
||||
assert_equal("$10.00", number_to_currency(10))
|
||||
end
|
||||
end
|
||||
|
||||
def test_number_with_precision
|
||||
#Delimiter was set to ""
|
||||
assert_equal("10000", number_with_precision(10000, :locale => 'ts'))
|
||||
|
@ -92,4 +98,15 @@ class NumberHelperTest < ActionView::TestCase
|
|||
#Significant was set to true with precision 2, with custom translated units
|
||||
assert_equal "4.3 cm", number_to_human(0.0432, :locale => 'ts', :units => :custom_units_for_number_to_human)
|
||||
end
|
||||
|
||||
private
|
||||
def clean_i18n
|
||||
load_path = I18n.load_path.dup
|
||||
I18n.load_path.clear
|
||||
I18n.reload!
|
||||
yield
|
||||
ensure
|
||||
I18n.load_path = load_path
|
||||
I18n.reload!
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue