aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_view/helpers/number_helper.rb
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2005-04-12 08:04:38 +0000
committerDavid Heinemeier Hansson <david@loudthinking.com>2005-04-12 08:04:38 +0000
commit7140f65355a7863b81028fbb2cb0b0dbcf93e8c0 (patch)
tree8794d08639a65316eff18082bfabc2ba4b79a0bc /actionpack/lib/action_view/helpers/number_helper.rb
parent3b9e90a4dab94d25bfa7ed5e47ca0641857ef992 (diff)
downloadrails-7140f65355a7863b81028fbb2cb0b0dbcf93e8c0.tar.gz
rails-7140f65355a7863b81028fbb2cb0b0dbcf93e8c0.tar.bz2
rails-7140f65355a7863b81028fbb2cb0b0dbcf93e8c0.zip
Moved TextHelper#human_size to NumberHelper#number_to_human_size, but kept an deprecated alias to the old method name
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1147 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'actionpack/lib/action_view/helpers/number_helper.rb')
-rw-r--r--actionpack/lib/action_view/helpers/number_helper.rb22
1 files changed, 22 insertions, 0 deletions
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