Class: Etna::Formatting

Inherits:
Object
  • Object
show all
Defined in:
lib/etna/formatting.rb

Constant Summary collapse

SIZE_UNITS =
%W(B KiB MiB GiB TiB).freeze

Class Method Summary collapse

Class Method Details

.as_size(number) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/etna/formatting.rb', line 5

def self.as_size(number)
  return "unknown" if number.nil?

  if number.to_i < 1024
    exponent = 0
  else
    exponent = [(Math.log(number) / Math.log(1024)).to_i, SIZE_UNITS.size].min
    number  /= 1024 ** exponent
  end

  "#{number} #{SIZE_UNITS[exponent]}"
end