Class: Olfactory::Sequence

Inherits:
Hash
  • Object
show all
Defined in:
lib/olfactory/sequence.rb

Instance Method Summary collapse

Constructor Details

#initialize(name, options, block) ⇒ Sequence

Returns a new instance of Sequence.



4
5
6
7
8
9
10
# File 'lib/olfactory/sequence.rb', line 4

def initialize(name, options, block)
  self[:name] = name
  self[:evaluator] = block
  self[:scope] = (options[:scope] || :global)
  self[:seed] = (options[:seed] || 0)
  self[:current_seed] = (options[:seed] || 0)
end

Instance Method Details

#generate(name, options, block) ⇒ Object



12
13
14
15
16
17
18
19
# File 'lib/olfactory/sequence.rb', line 12

def generate(name, options, block)
  seed = options[:seed] || self[:current_seed]
  target = block || self[:evaluator]
  value = target.call(seed, options.reject { |k,v| k == :seed })
  self[:current_seed] += 1 if !options.has_key?(:seed)

  value
end

#resetObject



20
21
22
# File 'lib/olfactory/sequence.rb', line 20

def reset
  self[:current_seed] = self[:seed]
end