aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2012-01-04 09:39:38 -0800
committerAaron Patterson <aaron.patterson@gmail.com>2012-01-04 09:39:38 -0800
commit5708648a77e8081d69e32ba827c8a909876dd3b9 (patch)
tree6cd04fe001c3768134e61780df9c8a9bb19d9d74 /actionpack
parentcf32a59ed6134d417503448c951b137aeceba81d (diff)
parent6724c8c8879dc41a4cdffc507353d8a114ca8028 (diff)
downloadrails-5708648a77e8081d69e32ba827c8a909876dd3b9.tar.gz
rails-5708648a77e8081d69e32ba827c8a909876dd3b9.tar.bz2
rails-5708648a77e8081d69e32ba827c8a909876dd3b9.zip
Merge pull request #4296 from kuroda/negative_format
Infer currency negative format from positive one.
Diffstat (limited to 'actionpack')
-rw-r--r--actionpack/lib/action_view/helpers/number_helper.rb1
-rw-r--r--actionpack/test/template/number_helper_i18n_test.rb7
2 files changed, 8 insertions, 0 deletions
diff --git a/actionpack/lib/action_view/helpers/number_helper.rb b/actionpack/lib/action_view/helpers/number_helper.rb
index 3db1394df7..43122ef2ba 100644
--- a/actionpack/lib/action_view/helpers/number_helper.rb
+++ b/actionpack/lib/action_view/helpers/number_helper.rb
@@ -127,6 +127,7 @@ module ActionView
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]
diff --git a/actionpack/test/template/number_helper_i18n_test.rb b/actionpack/test/template/number_helper_i18n_test.rb
index 5df09b4d3b..d6e9de9555 100644
--- a/actionpack/test/template/number_helper_i18n_test.rb
+++ b/actionpack/test/template/number_helper_i18n_test.rb
@@ -53,6 +53,13 @@ class NumberHelperTest < ActionView::TestCase
assert_equal("-$10.00", number_to_currency(-10))
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 ""