Sha256: 0aeb1058b2fb74953dcce55f4a8c200bf083e7359ec42517993c2ac519347586

Contents?: true

Size: 762 Bytes

Versions: 6

Compression:

Stored size: 762 Bytes

Contents

module Vmail
  DIVIDER_WIDTH = 46
  UNITS = [:b, :k, :M, :G].freeze

  module Helpers

    def retry_if_needed
      res = nil
      3.times do
        res = yield
        break if res
      end
      res
    end

    # borrowed from ActionView/Helpers
    def number_to_human_size(number)
      if number.to_i < 1024
        "< 1k" # round up to 1kh
      else
        max_exp = UNITS.size - 1
        exponent = (Math.log(number) / Math.log(1024)).to_i # Convert to base 1024
        exponent = max_exp if exponent > max_exp # we need this to avoid overflow for the highest unit
        number  /= 1024 ** exponent
        unit = UNITS[exponent]
        "#{number}#{unit}"
      end
    end


    def divider(str)
      str * DIVIDER_WIDTH
    end


  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
vmail-2.9.4 lib/vmail/helpers.rb
vmail-2.9.3 lib/vmail/helpers.rb
vmail-2.9.2 lib/vmail/helpers.rb
vmail-2.9.1 lib/vmail/helpers.rb
vmail-2.9.0 lib/vmail/helpers.rb
vmail-2.8.9 lib/vmail/helpers.rb