Module: Garant

Defined in:
lib/garant.rb,
lib/garant/config.rb,
lib/garant/errors.rb,
lib/garant/version.rb

Defined Under Namespace

Classes: Config, MaxRetriesExceeded, MissingHashValue

Constant Summary collapse

VERSION =
"0.1.0"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.configObject

Returns the value of attribute config.



3
4
5
# File 'lib/garant/config.rb', line 3

def config
  @config
end

Class Method Details

.safe(&block) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 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| ... } ⇒ Object

Yields:



6
7
8
9
# File 'lib/garant/config.rb', line 6

def self.setup
  self.config ||= Config.new
  yield config
end