Sha256: 3e0cd0c18b57bf6a76a744299df24aab46cdcf43fc28ba22c6e3721599da6cf7

Contents?: true

Size: 766 Bytes

Versions: 7

Compression:

Stored size: 766 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

7 entries across 7 versions & 1 rubygems

Version Path
vmail-2.9.11 lib/vmail/helpers.rb
vmail-2.9.10 lib/vmail/helpers.rb
vmail-2.9.9 lib/vmail/helpers.rb
vmail-2.9.8 lib/vmail/helpers.rb
vmail-2.9.7 lib/vmail/helpers.rb
vmail-2.9.6 lib/vmail/helpers.rb
vmail-2.9.5 lib/vmail/helpers.rb