mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
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
This commit is contained in:
parent
f0650c51cc
commit
363b79f942
3 changed files with 25 additions and 22 deletions
|
@ -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.]
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue