Sha256: 159e92bb529bfc95ed154433d1cfde7131603124d0dd2aaf50410c77693b58eb

Contents?: true

Size: 873 Bytes

Versions: 33

Compression:

Stored size: 873 Bytes

Contents

module FactoryGirl

  # Sequences are defined using sequence within a FactoryGirl.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
      @proc ? @proc.call(@value.peek) : @value.peek
    ensure
      @value.next
    end

    def names
      [@name] + @aliases
    end

    private

    class EnumeratorAdapter
      def initialize(value)
        @value = value
      end

      def peek
        @value
      end

      def next
        @value = @value.next
      end
    end
  end
end

Version data entries

33 entries across 25 versions & 4 rubygems

Version Path
challah-1.0.0.beta vendor/bundle/gems/factory_girl-4.1.0/lib/factory_girl/sequence.rb
challah-0.9.1.beta.3 vendor/bundle/gems/factory_girl-4.1.0/lib/factory_girl/sequence.rb
challah-0.9.1.beta vendor/bundle/gems/factory_girl-4.1.0/lib/factory_girl/sequence.rb
sunrise-cms-0.5.0.rc1 vendor/bundle/ruby/1.9.1/gems/factory_girl-4.1.0/lib/factory_girl/sequence.rb
challah-0.9.0 vendor/bundle/gems/factory_girl-4.1.0/lib/factory_girl/sequence.rb
challah-rolls-0.2.0 vendor/bundle/gems/challah-0.8.3/vendor/bundle/gems/factory_girl-4.0.0/lib/factory_girl/sequence.rb
challah-rolls-0.2.0 vendor/bundle/gems/challah-0.8.3/vendor/bundle/gems/factory_girl-4.1.0/lib/factory_girl/sequence.rb
challah-rolls-0.2.0 vendor/bundle/gems/factory_girl-3.6.1/lib/factory_girl/sequence.rb
challah-rolls-0.2.0 vendor/bundle/gems/factory_girl-4.0.0/lib/factory_girl/sequence.rb
challah-rolls-0.2.0 vendor/bundle/gems/factory_girl-4.1.0/lib/factory_girl/sequence.rb
challah-rolls-0.2.0 vendor/bundle/gems/challah-0.8.0.pre/vendor/bundle/gems/factory_girl-3.6.1/lib/factory_girl/sequence.rb
challah-0.8.3 vendor/bundle/gems/factory_girl-4.1.0/lib/factory_girl/sequence.rb
challah-0.8.3 vendor/bundle/gems/factory_girl-4.0.0/lib/factory_girl/sequence.rb
factory_girl-3.6.2 lib/factory_girl/sequence.rb
challah-0.8.1 vendor/bundle/gems/factory_girl-4.0.0/lib/factory_girl/sequence.rb
factory_girl-4.1.0 lib/factory_girl/sequence.rb
challah-rolls-0.1.0 vendor/bundle/gems/factory_girl-3.6.1/lib/factory_girl/sequence.rb
challah-rolls-0.1.0 vendor/bundle/gems/factory_girl-4.0.0/lib/factory_girl/sequence.rb
challah-rolls-0.1.0 vendor/bundle/gems/challah-0.8.0.pre/vendor/bundle/gems/factory_girl-3.6.1/lib/factory_girl/sequence.rb
challah-0.8.0.pre vendor/bundle/gems/factory_girl-3.6.1/lib/factory_girl/sequence.rb