aboutsummaryrefslogtreecommitdiff
blob: 1a4f3c13a682fc41147126a801da4c93c1e36c6c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
module Gentoo
  module Filters
    UNITS = %W(B KiB MiB GiB TiB).freeze

    def nice_filesize(input)
      number = input.to_i
      if number < 1024
        exponent = 0
      else
        max_exp  = UNITS.size - 1

        exponent = (Math.log(number) / Math.log(1024)).to_i
        exponent = max_exp if exponent > max_exp

        number  /= 1024 ** exponent
      end

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

Liquid::Template.register_filter(Gentoo::Filters)