Sha256: cf7e817c37410c012321886c66d192c7a1ed53b276c86a5a5ef8fa9efe691eca
Contents?: true
Size: 1.05 KB
Versions: 3
Compression:
Stored size: 1.05 KB
Contents
module FactoryBot # Sequences are defined using sequence within a FactoryBot.define block. # Sequence values are generated using next. # @api private class Sequence attr_reader :name 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 def next(scope = nil) if @proc && scope scope.instance_exec(value, &@proc) elsif @proc @proc.call(value) else value end ensure increment_value end def names [@name] + @aliases end private def value @value.peek end def increment_value @value.next end class EnumeratorAdapter def initialize(value) @value = value end def peek @value end def next @value = @value.next end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
factory_bot-4.8.2 | lib/factory_bot/sequence.rb |
factory_bot-1.0.1.alpha | lib/factory_bot/sequence.rb |
factory_bot-1.0.0.alpha | lib/factory_bot/sequence.rb |