diff options
author | Marcel Molina <marcel@vernix.org> | 2006-01-19 05:31:48 +0000 |
---|---|---|
committer | Marcel Molina <marcel@vernix.org> | 2006-01-19 05:31:48 +0000 |
commit | 363b79f9428395249d7509ddc88e1080902d6256 (patch) | |
tree | 2044bac8fe119c29107a3ce2e1331d8e304d7ce8 | |
parent | f0650c51cc1f1b2725765715940d8d2eb5ca8492 (diff) | |
download | rails-363b79f9428395249d7509ddc88e1080902d6256.tar.gz rails-363b79f9428395249d7509ddc88e1080902d6256.tar.bz2 rails-363b79f9428395249d7509ddc88e1080902d6256.zip |
Refactor human_size to exclude decimal place if it is zero.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3437 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
-rw-r--r-- | actionpack/CHANGELOG | 2 | ||||
-rw-r--r-- | actionpack/lib/action_view/helpers/number_helper.rb | 18 | ||||
-rw-r--r-- | actionpack/test/template/number_helper_test.rb | 27 |
3 files changed, 25 insertions, 22 deletions
diff --git a/actionpack/CHANGELOG b/actionpack/CHANGELOG index 56cc2d622e..4cdd6c555f 100644 --- a/actionpack/CHANGELOG +++ b/actionpack/CHANGELOG @@ -1,5 +1,7 @@ *SVN* +* Refactor human_size to exclude decimal place if it is zero. [Marcel Molina Jr.] + * Update to Prototype 1.5.0_pre0 [Sam Stephenson] * Automatically discover layouts when a controller is namespaced. #2199, #3424 [me@jonnii.com rails@jeffcole.net Marcel Molina Jr.] diff --git a/actionpack/lib/action_view/helpers/number_helper.rb b/actionpack/lib/action_view/helpers/number_helper.rb index e06eb14f7f..9098dd8c33 100644 --- a/actionpack/lib/action_view/helpers/number_helper.rb +++ b/actionpack/lib/action_view/helpers/number_helper.rb @@ -85,15 +85,15 @@ module ActionView # human_size(1234567) => 1.2 MB # human_size(1234567890) => 1.1 GB def number_to_human_size(size) - begin - return "%d Bytes" % size if size < 1.kilobytes - return "%.1f KB" % (size/1.0.kilobytes) if size < 1.megabytes - return "%.1f MB" % (size/1.0.megabytes) if size < 1.gigabytes - return "%.1f GB" % (size/1.0.gigabytes) if size < 1.terabytes - return "%.1f TB" % (size/1.0.terabytes) - rescue - # just return nothing - end + case + when size < 1.kilobyte: '%d Bytes' % size + when size < 1.megabyte: '%.1f KB' % (size / 1.0.kilobyte) + when size < 1.gigabyte: '%.1f MB' % (size / 1.0.megabyte) + when size < 1.terabyte: '%.1f GB' % (size / 1.0.gigabyte) + else '%.1f TB' % (size / 1.0.terabyte) + end.sub('.0', '') + rescue + nil end alias_method :human_size, :number_to_human_size # deprecated alias diff --git a/actionpack/test/template/number_helper_test.rb b/actionpack/test/template/number_helper_test.rb index b0debc44fa..d77156af40 100644 --- a/actionpack/test/template/number_helper_test.rb +++ b/actionpack/test/template/number_helper_test.rb @@ -34,19 +34,20 @@ class NumberHelperTest < Test::Unit::TestCase end def test_number_to_human_size - assert_equal("0 Bytes", number_to_human_size(0)) - assert_equal("3 Bytes", number_to_human_size(3.14159265)) - assert_equal("123 Bytes", number_to_human_size(123.0)) - assert_equal("123 Bytes", number_to_human_size(123)) - assert_equal("1.2 KB", number_to_human_size(1234)) - assert_equal("12.1 KB", number_to_human_size(12345)) - assert_equal("1.2 MB", number_to_human_size(1234567)) - assert_equal("1.1 GB", number_to_human_size(1234567890)) - assert_equal("1.1 TB", number_to_human_size(1234567890123)) - assert_equal("444.0 KB", number_to_human_size(444.kilobytes)) - assert_equal("1023.0 MB", number_to_human_size(1023.megabytes)) - assert_equal("3.0 TB", number_to_human_size(3.terabytes)) - assert_nil number_to_human_size('x') + assert_equal '0 Bytes', human_size(0) + assert_equal '3 Bytes', human_size(3.14159265) + assert_equal '123 Bytes', human_size(123.0) + assert_equal '123 Bytes', human_size(123) + assert_equal '1.2 KB', human_size(1234) + assert_equal '12.1 KB', human_size(12345) + assert_equal '1.2 MB', human_size(1234567) + assert_equal '1.1 GB', human_size(1234567890) + assert_equal '1.1 TB', human_size(1234567890123) + assert_equal '444 KB', human_size(444.kilobytes) + assert_equal '1023 MB', human_size(1023.megabytes) + assert_equal '3 TB', human_size(3.terabytes) + assert_nil human_size('x') + assert_nil human_size(nil) end def test_number_with_precision |