Sha256: c1c4f0336dd03fd16170a8b3b03726462cab600a774c69d1b4cef7ef0fe2d88d

Contents?: true

Size: 1.36 KB

Versions: 6

Compression:

Stored size: 1.36 KB

Contents

module ConfigmonkeyCli
  module Helper
    BYTE_UNITS = %W(TiB GiB MiB KiB B).freeze

    def human_filesize(s)
      s = s.to_f
      i = BYTE_UNITS.length - 1
      while s > 512 && i > 0
        i -= 1
        s /= 1024
      end
      ((s > 9 || s.modulo(1) < 0.1 ? '%d' : '%.1f') % s) + ' ' + BYTE_UNITS[i]
    end

    def human_number(n)
      n.to_s.reverse.gsub(/...(?=.)/,'\&,').reverse
    end

    def human_seconds secs
      secs = secs.to_i
      t_minute = 60
      t_hour = t_minute * 60
      t_day = t_hour * 24
      t_week = t_day * 7
      t_month = t_day * 30
      t_year = t_month * 12
      "".tap do |r|
        if secs >= t_year
          r << "#{secs / t_year}y "
          secs = secs % t_year
        end

        if secs >= t_month
          r << "#{secs / t_month}m "
          secs = secs % t_month
        end

        if secs >= t_week
          r << "#{secs / t_week}w "
          secs = secs % t_week
        end

        if secs >= t_day || !r.blank?
          r << "#{secs / t_day}d "
          secs = secs % t_day
        end

        if secs >= t_hour || !r.blank?
          r << "#{secs / t_hour}h "
          secs = secs % t_hour
        end

        if secs >= t_minute || !r.blank?
          r << "#{secs / t_minute}m "
          secs = secs % t_minute
        end

        r << "#{secs}s" unless r.include?("d")
      end.strip
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
configmonkey_cli-1.0.5 lib/configmonkey_cli/helper.rb
configmonkey_cli-1.0.4 lib/configmonkey_cli/helper.rb
configmonkey_cli-1.0.3 lib/configmonkey_cli/helper.rb
configmonkey_cli-1.0.2 lib/configmonkey_cli/helper.rb
configmonkey_cli-1.0.1 lib/configmonkey_cli/helper.rb
configmonkey_cli-1.0.0 lib/configmonkey_cli/helper.rb