module Garant

Constants

VERSION

Attributes

config[RW]

Public Class Methods

safe(&block) click to toggle source
# File lib/garant.rb, line 9
def safe(&block)
  retries = 0
  hashed_value = nil

  while true do
    hashed_value = block.call
    raise MissingHashedValue.new if hashed_value.nil?
    raise MaxRetriesExceeded.new if config.max_retries <= retries
    if config.storage.include?(hashed_value)
      retries += 1
    else
      config.storage.add(hashed_value)
      return hashed_value
    end
  end

end
setup() { |config| ... } click to toggle source
# File lib/garant/config.rb, line 6
def self.setup
  self.config ||= Config.new
  yield config
end