lib/app_info/parser.rb in app-info-1.0.5 vs lib/app_info/parser.rb in app-info-1.1.0
- old
+ new
@@ -12,7 +12,29 @@
end
def self.mac?
RbConfig::CONFIG['host_os'] =~ /darwin/ ? true : false
end
+
+ module Util
+ FILE_SIZE_UNITS = %w[B KB MB GB TB].freeze
+
+ def self.file_size(file, humanable)
+ file_size = File.size(file)
+ humanable ? size_to_humanable(file_size) : file_size
+ end
+
+ def self.size_to_humanable(number)
+ if number.to_i < 1024
+ exponent = 0
+ else
+ max_exp = FILE_SIZE_UNITS.size - 1
+ exponent = (Math.log(number) / Math.log(1024)).to_i
+ exponent = max_exp if exponent > max_exp
+ number = format('%.2f', (number / (1024**exponent.to_f)))
+ end
+
+ "#{number} #{FILE_SIZE_UNITS[exponent]}"
+ end
+ end
end
end