From a96a9004f4600ed71b0d9f6a22fbc9b2a2fe41f8 Mon Sep 17 00:00:00 2001 From: Rakesh Date: Tue, 17 Nov 2015 16:12:31 +0530 Subject: [PATCH] utils: add readable disk space, numbers methods. --- Library/Homebrew/utils.rb | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/Library/Homebrew/utils.rb b/Library/Homebrew/utils.rb index aeb706299f..cd47d4a28f 100644 --- a/Library/Homebrew/utils.rb +++ b/Library/Homebrew/utils.rb @@ -592,3 +592,32 @@ module GitHub open(uri) { |json| json["private"] } end end + +def disk_usage_readable(size_in_bytes) + len = size_in_bytes.to_s.length + case + when len > 9 + sym, unit = ["G", 1_073_741_824] + when len > 6 + sym, unit = ["M", 1_048_576] + when len > 3 + sym, unit = ["K", 1_024] + else + sym, unit = ["B", 1] + end + + num = "%.1f" % [size_in_bytes.to_f / unit] + # check whether the rounded value has a zero after decimal point, + # if true, then display just the integer value. + if num.split(".").last.to_i == 0 + "%d#{sym}" % num.to_i + else + "#{num}#{sym}" + end +end + +def number_readable(number) + numstr = number.to_i.to_s + (numstr.size - 3).step(1, -3) { |i| numstr.insert(i, ",") } + numstr +end