1
0
Fork 0
mirror of https://github.com/thoughtbot/factory_bot.git synced 2022-11-09 11:43:51 -05:00
thoughtbot--factory_bot/lib/factory_girl/sequence.rb

27 lines
678 B
Ruby
Raw Normal View History

module FactoryGirl
2008-06-01 13:46:50 -04:00
# Sequences are defined using sequence within a FactoryGirl.define block.
# Sequence values are generated using next.
2008-06-01 13:46:50 -04:00
class Sequence
2012-03-29 10:21:55 -04:00
attr_reader :name, :names, :value
def initialize(name, value = 1, options = {}, &proc) #:nodoc:
@value = value
if value.kind_of?(Hash)
options = value
@value = options[:value] || 1
end
@name = name
@names = ([name] + (options[:aliases] || [])).flatten
@proc = proc
2008-06-01 13:46:50 -04:00
end
# aliased sequences share the same sequence counter
def next
@proc ? @proc.call(@value) : @value
ensure
@value = @value.next
2008-06-01 13:46:50 -04:00
end
end
end