aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--actionpack/CHANGELOG2
-rw-r--r--actionpack/lib/action_view/helpers/number_helper.rb22
-rw-r--r--actionpack/lib/action_view/helpers/text_helper.rb20
-rw-r--r--actionpack/test/template/number_helper_test.rb23
-rw-r--r--actionpack/test/template/text_helper_test.rb16
5 files changed, 47 insertions, 36 deletions
diff --git a/actionpack/CHANGELOG b/actionpack/CHANGELOG
index cbf293e26b..3629d09b02 100644
--- a/actionpack/CHANGELOG
+++ b/actionpack/CHANGELOG
@@ -1,5 +1,7 @@
*SVN*
+* Moved TextHelper#human_size to NumberHelper#number_to_human_size, but kept an deprecated alias to the old method name
+
* Fixed that the content-type for some browsers could include an additional \r which made wonky things happen #1067 [Thomas Fuchs]
* Fixed that radio buttons shouldn't have a default size attribute #1074 [hendrik@mans.de]
diff --git a/actionpack/lib/action_view/helpers/number_helper.rb b/actionpack/lib/action_view/helpers/number_helper.rb
index 05103e09ff..2f753558b2 100644
--- a/actionpack/lib/action_view/helpers/number_helper.rb
+++ b/actionpack/lib/action_view/helpers/number_helper.rb
@@ -77,6 +77,28 @@ module ActionView
number.gsub(/(\d)(?=(\d\d\d)+(?!\d))/, "\\1#{delimiter}")
end
+ # Returns a formatted-for-humans file size.
+ #
+ # Examples:
+ # human_size(123) => 123 Bytes
+ # human_size(1234) => 1.2 KB
+ # human_size(12345) => 12.1 KB
+ # 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
+ end
+
+ alias_method :human_size, :number_to_human_size # deprecated alias
+
# Formats a +number+ with a level of +precision+.
# Example:
# number_with_precision(111.2345) => 111.235
diff --git a/actionpack/lib/action_view/helpers/text_helper.rb b/actionpack/lib/action_view/helpers/text_helper.rb
index 5fcb8a250f..6b89bec9f2 100644
--- a/actionpack/lib/action_view/helpers/text_helper.rb
+++ b/actionpack/lib/action_view/helpers/text_helper.rb
@@ -129,26 +129,6 @@ module ActionView
text.gsub(/<a.*>(.*)<\/a>/m, '\1')
end
- # Returns a formatted-for-humans file size.
- #
- # Examples:
- # human_size(123) => 123 Bytes
- # human_size(1234) => 1.2 KB
- # human_size(12345) => 12.1 KB
- # human_size(1234567) => 1.2 MB
- # human_size(1234567890) => 1.1 GB
- def 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
- end
-
private
# Returns a version of the text that's safe to use in a regular expression without triggering engine features.
def escape_regexp(text)
diff --git a/actionpack/test/template/number_helper_test.rb b/actionpack/test/template/number_helper_test.rb
new file mode 100644
index 0000000000..a8a3158e80
--- /dev/null
+++ b/actionpack/test/template/number_helper_test.rb
@@ -0,0 +1,23 @@
+require 'test/unit'
+require File.dirname(__FILE__) + '/../../lib/action_view/helpers/number_helper'
+require File.dirname(__FILE__) + '/../../../activesupport/lib/active_support/core_ext/numeric' # for human_size
+
+class NumberHelperTest < Test::Unit::TestCase
+ include ActionView::Helpers::NumberHelper
+
+ 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')
+ end
+end
diff --git a/actionpack/test/template/text_helper_test.rb b/actionpack/test/template/text_helper_test.rb
index fe170d6720..ed2f08e755 100644
--- a/actionpack/test/template/text_helper_test.rb
+++ b/actionpack/test/template/text_helper_test.rb
@@ -53,22 +53,6 @@ class TextHelperTest < Test::Unit::TestCase
highlight("This is a beautiful? morning", "beautiful? morning")
)
end
-
- def test_human_size
- 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.0 KB", human_size(444.kilobytes))
- assert_equal("1023.0 MB", human_size(1023.megabytes))
- assert_equal("3.0 TB", human_size(3.terabytes))
- assert_nil human_size('x')
- end
def test_excerpt
assert_equal("...is a beautiful morni...", excerpt("This is a beautiful morning", "beautiful", 5))