Sha256: b9d23ba4e3bde6cf04f7122a7186efcfd9fc971f83d3a77e87559e6571e5acdf

Contents?: true

Size: 769 Bytes

Versions: 12

Compression:

Stored size: 769 Bytes

Contents

module Vmail
  DIVIDER_WIDTH = 46
  UNITS = [:b, :kb, :mb, :gb].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
        "<1kb" # 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

12 entries across 12 versions & 1 rubygems

Version Path
vmail-1.8.1 lib/vmail/helpers.rb
vmail-1.8.0 lib/vmail/helpers.rb
vmail-1.7.9 lib/vmail/helpers.rb
vmail-1.7.8 lib/vmail/helpers.rb
vmail-1.7.7 lib/vmail/helpers.rb
vmail-1.7.6 lib/vmail/helpers.rb
vmail-1.7.5 lib/vmail/helpers.rb
vmail-1.7.4 lib/vmail/helpers.rb
vmail-1.7.3 lib/vmail/helpers.rb
vmail-1.7.2 lib/vmail/helpers.rb
vmail-1.7.1 lib/vmail/helpers.rb
vmail-1.7.0 lib/vmail/helpers.rb