mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Fixed that NumberHelper#number_to_delimiter should respect precision of higher than two digits (closes #6231) [phallstrom]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5249 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
parent
f9650a23f0
commit
a49e7d5c0c
3 changed files with 20 additions and 3 deletions
|
@ -1,5 +1,7 @@
|
||||||
*SVN*
|
*SVN*
|
||||||
|
|
||||||
|
* Fixed that NumberHelper#number_to_delimiter should respect precision of higher than two digits #6231 [phallstrom]
|
||||||
|
|
||||||
* Fixed that FormHelper#radio_button didn't respect an :id being passed in #6266 [evansj]
|
* Fixed that FormHelper#radio_button didn't respect an :id being passed in #6266 [evansj]
|
||||||
|
|
||||||
* Added an html_options hash parameter to javascript_tag() and update_page_tag() helpers #6311 [tzaharia]. Example:
|
* Added an html_options hash parameter to javascript_tag() and update_page_tag() helpers #6311 [tzaharia]. Example:
|
||||||
|
|
|
@ -71,10 +71,16 @@ module ActionView
|
||||||
# Formats a +number+ with a +delimiter+.
|
# Formats a +number+ with a +delimiter+.
|
||||||
# Example:
|
# Example:
|
||||||
# number_with_delimiter(12345678) => 12,345,678
|
# number_with_delimiter(12345678) => 12,345,678
|
||||||
def number_with_delimiter(number, delimiter=",")
|
def number_with_delimiter(number, delimiter=",", separator=".")
|
||||||
number.to_s.gsub(/(\d)(?=(\d\d\d)+(?!\d))/, "\\1#{delimiter}")
|
begin
|
||||||
|
parts = number.to_s.split(separator)
|
||||||
|
parts[0].gsub!(/(\d)(?=(\d\d\d)+(?!\d))/, "\\1#{delimiter}")
|
||||||
|
parts.join separator
|
||||||
|
rescue
|
||||||
|
number
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# Returns a formatted-for-humans file size.
|
# Returns a formatted-for-humans file size.
|
||||||
#
|
#
|
||||||
# Examples:
|
# Examples:
|
||||||
|
|
|
@ -31,6 +31,15 @@ class NumberHelperTest < Test::Unit::TestCase
|
||||||
|
|
||||||
def test_number_with_delimiter
|
def test_number_with_delimiter
|
||||||
assert_equal("12,345,678", number_with_delimiter(12345678))
|
assert_equal("12,345,678", number_with_delimiter(12345678))
|
||||||
|
assert_equal(nil, number_with_delimiter(nil))
|
||||||
|
assert_equal("0", number_with_delimiter(0))
|
||||||
|
assert_equal("123", number_with_delimiter(123))
|
||||||
|
assert_equal("123,456", number_with_delimiter(123456))
|
||||||
|
assert_equal("123,456.78", number_with_delimiter(123456.78))
|
||||||
|
assert_equal("123,456.789", number_with_delimiter(123456.789))
|
||||||
|
assert_equal("123,456.78901", number_with_delimiter(123456.78901))
|
||||||
|
assert_equal("123,456,789.78901", number_with_delimiter(123456789.78901))
|
||||||
|
assert_equal("0.78901", number_with_delimiter(0.78901))
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_number_to_human_size
|
def test_number_to_human_size
|
||||||
|
|
Loading…
Reference in a new issue