class Olfactory::Sequence
Public Class Methods
new(name, options, block)
click to toggle source
# File lib/olfactory/sequence.rb, line 3 def initialize(name, options, block) self[:name] = name self[:evaluator] = block self[:scope] = (options[:scope] || :global) self[:seed] = (options[:seed] || 0) self[:dimensions] = { nil => { :current_seed => (options[:seed] || 0) } } end
Public Instance Methods
generate(options = {}, block)
click to toggle source
# File lib/olfactory/sequence.rb, line 11 def generate(options = {}, block) seed = options[:seed] || (self[:dimensions][options[:dimension]] ||= { :current_seed => self[:seed] })[:current_seed] target = block || self[:evaluator] value = target.call(seed, options.reject { |k,v| [:seed, :dimension].include?(k) }) self[:dimensions][options[:dimension]][:current_seed] += 1 if !options.has_key?(:seed) value end
reset()
click to toggle source
# File lib/olfactory/sequence.rb, line 19 def reset self[:dimensions].values.each { |v| v[:current_seed] = self[:seed] } self end