Module: AppInfo::Helper::HumanFileSize
- Included in:
- AAB, APK, DSYM::MachO, IPA, Macos
- Defined in:
- lib/app_info/helper.rb
Constant Summary collapse
- FILE_SIZE_UNITS =
%w[B KB MB GB TB].freeze
Instance Method Summary collapse
Instance Method Details
#file_to_human_size(file, human_size:) ⇒ Object
38 39 40 41 |
# File 'lib/app_info/helper.rb', line 38 def file_to_human_size(file, human_size:) number = File.size(file) human_size ? number_to_human_size(number) : number end |
#number_to_human_size(number) ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/app_info/helper.rb', line 45 def number_to_human_size(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('%<number>.2f', number: (number / (1024**exponent.to_f))) end "#{number} #{FILE_SIZE_UNITS[exponent]}" end |