Symptoms:
>> helper.number_to_human_size(70)
=> "7 Bytes"
>> helper.number_to_human_size(700)
=> "7 Bytes"
Patch:
-
test/template/number_helper_test.rb
| old |
new |
|
| 87 | 87 | assert_equal '1.01 KB', number_to_human_size(1.0100.kilobytes, 4) |
|---|
| 88 | 88 | assert_equal '10 KB', number_to_human_size(10.000.kilobytes, 4) |
|---|
| 89 | 89 | assert_equal '1 Byte', number_to_human_size(1.1) |
|---|
| | 90 | assert_equal '10 Bytes', number_to_human_size(10) |
|---|
| 90 | 91 | assert_nil number_to_human_size('x') |
|---|
| 91 | 92 | assert_nil number_to_human_size(nil) |
|---|
| 92 | 93 | end |
-
lib/action_view/helpers/number_helper.rb
| old |
new |
|
| 170 | 170 | when size < 1.gigabyte; "%.#{precision}f MB" % (size / 1.0.megabyte) |
|---|
| 171 | 171 | when size < 1.terabyte; "%.#{precision}f GB" % (size / 1.0.gigabyte) |
|---|
| 172 | 172 | else "%.#{precision}f TB" % (size / 1.0.terabyte) |
|---|
| 173 | | end.sub(/([0-9])\.?0+ /, '\1 ' ) |
|---|
| | 173 | end.sub(/((?:[0-9]\.[0-9]*[1-9])|(?:[0-9]+(?=\.)))\.?0+ /, '\1 ' ) |
|---|
| 174 | 174 | rescue |
|---|
| 175 | 175 | nil |
|---|
| 176 | 176 | end |