class FactoryGirl::Sequence

Sequences are defined using sequence within a FactoryGirl.define block. Sequence values are generated using next. @api private

Attributes

name[R]

Public Class Methods

new(name, *args, &proc) click to toggle source
# File lib/factory_girl/sequence.rb, line 9
def initialize(name, *args, &proc)
  @name    = name
  @proc    = proc

  options  = args.extract_options!
  @value   = args.first || 1
  @aliases = options.fetch(:aliases) { [] }

  if !@value.respond_to?(:peek)
    @value = EnumeratorAdapter.new(@value)
  end
end

Public Instance Methods

names() click to toggle source
# File lib/factory_girl/sequence.rb, line 28
def names
  [@name] + @aliases
end
next() click to toggle source
# File lib/factory_girl/sequence.rb, line 22
def next
  @proc ? @proc.call(@value.peek) : @value.peek
ensure
  @value.next
end