class Fabrication::Sequencer

Constants

DEFAULT

Public Class Methods

clear() click to toggle source
# File lib/fabrication/sequencer.rb, line 13
def self.clear
  instance.sequences.clear
  instance.sequence_blocks.clear
end
sequence(name = DEFAULT, start = nil, &block) click to toggle source
# File lib/fabrication/sequencer.rb, line 9
def self.sequence(name = DEFAULT, start = nil, &block)
  instance.sequence(name, start, &block)
end

Public Instance Methods

reset() click to toggle source
# File lib/fabrication/sequencer.rb, line 37
def reset
  Fabrication::Config.sequence_start = nil
  @sequences = nil
  @sequence_blocks = nil
end
sequence(name = DEFAULT, start = nil, &block) click to toggle source
# File lib/fabrication/sequencer.rb, line 18
def sequence(name = DEFAULT, start = nil, &block)
  idx = sequences[name] ||= start || Fabrication::Config.sequence_start
  if block
    sequence_blocks[name] = block.to_proc
  else
    sequence_blocks[name] ||= ->(i) { i }
  end.call(idx).tap do
    sequences[name] = idx.succ
  end
end
sequence_blocks() click to toggle source
# File lib/fabrication/sequencer.rb, line 33
def sequence_blocks
  @sequence_blocks ||= {}
end
sequences() click to toggle source
# File lib/fabrication/sequencer.rb, line 29
def sequences
  @sequences ||= {}
end