Sha256: 2f89d41657ee7ca48c0441ea2b55578cea620a9275b1c6715e89345c797991a6

Contents?: true

Size: 918 Bytes

Versions: 2

Compression:

Stored size: 918 Bytes

Contents

#          Copyright (c) 2008 Michael Fellinger m.fellinger@gmail.com
# All files in this distribution are subject to the terms of the MIT license.

module Ramaze
  module CoreExtensions
    # Extensions for Numeric
    module Numeric
      FILESIZE_FORMAT = [
        ['%.1fT', 1 << 40],
        ['%.1fG', 1 << 30],
        ['%.1fM', 1 << 20],
        ['%.1fK', 1 << 10],
      ]

      # Output this number as easily readable filesize.
      # Usage:
      #   100_000.filesize_format             # => "97.7K"
      #   100_000_000.filesize_format         # => "95.4M"
      #   100_000_000_000.filesize_format     # => "93.1G"
      #   100_000_000_000_000.filesize_format # => "90.9T"
      def filesize_format
        FILESIZE_FORMAT.each do |format, size|
          return format % (self.to_f / size) if self >= size
        end

        self.to_s
      end
    end # Numeric
  end # CoreExtensions
end # Ramaze

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ramaze-2012.04.14 lib/ramaze/snippets/numeric/filesize_format.rb
ramaze-2012.03.07 lib/ramaze/snippets/numeric/filesize_format.rb