Sha256: a6ac47e30db71a8c9e5c204b532f75885dd8db75334de79eee75dc5a96afa019

Contents?: true

Size: 639 Bytes

Versions: 5

Compression:

Stored size: 639 Bytes

Contents

module Artifactory
  module Cleaner
    module Util
      ##
      # Given a size in bytes, return a "human readable" size with a unit suffix (MiB, GiB)
      #
      # Taken from https://stackoverflow.com/a/47486815/75801
      # Used instead of a gem due to simplicity and speed
      def self.filesize(size)
        units = ['B', 'KiB', 'MiB', 'GiB', 'TiB', 'Pib', 'EiB']

        return '0.0 B' if size == 0
        exp = (Math.log(size) / Math.log(1024)).to_i
        exp += 1 if (size.to_f / 1024 ** exp >= 1024 - 0.05)
        exp = 6 if exp > 6

        '%.1f %s' % [size.to_f / 1024 ** exp, units[exp]]
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
artifactory-cleaner-1.0.5 lib/artifactory/cleaner/util.rb
artifactory-cleaner-1.0.4 lib/artifactory/cleaner/util.rb
artifactory-cleaner-1.0.3 lib/artifactory/cleaner/util.rb
artifactory-cleaner-1.0.2 lib/artifactory/cleaner/util.rb
artifactory-cleaner-1.0.1 lib/artifactory/cleaner/util.rb