From 7140f65355a7863b81028fbb2cb0b0dbcf93e8c0 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 12 Apr 2005 08:04:38 +0000 Subject: 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 --- .../lib/action_view/helpers/number_helper.rb | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'actionpack/lib/action_view/helpers/number_helper.rb') 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 -- cgit v1.2.3