Sha256: 1087bf63677b478c50ad671fbfdd1b3e07b004bb129d51630d10dddfa3c413a3

Contents?: true

Size: 1001 Bytes

Versions: 27

Compression:

Stored size: 1001 Bytes

Contents

class Factory
  module Syntax

    # Extends ActiveRecord::Base to provide a make class method, which is an
    # alternate syntax for defining factories.
    #
    # Usage:
    #
    #   require 'factory_girl/syntax/blueprint'
    #
    #   User.blueprint do
    #     name  { 'Billy Bob'             }
    #     email { 'billy@bob.example.com' }
    #   end
    #
    #   Factory(:user, :name => 'Johnny')
    #
    # This syntax was derived from Pete Yandell's machinist.
    module Blueprint
      module ActiveRecord #:nodoc:

        def self.included(base) # :nodoc:
          base.extend ClassMethods
        end

        module ClassMethods #:nodoc:

          def blueprint(&block)
            instance = Factory.new(name.underscore, :class => self)
            instance.instance_eval(&block)
            Factory.factories[instance.factory_name] = instance
          end

        end

      end
    end
  end
end

ActiveRecord::Base.send(:include, Factory::Syntax::Blueprint::ActiveRecord)

Version data entries

27 entries across 27 versions & 12 rubygems

Version Path
BrettRasmussen-factory_girl-1.2.2 lib/factory_girl/syntax/blueprint.rb
BrettRasmussen-factory_girl-1.2.3 lib/factory_girl/syntax/blueprint.rb
agibralter-factory_girl-1.2.1 lib/factory_girl/syntax/blueprint.rb
lacomartincik-factory_girl-1.2.1.1 lib/factory_girl/syntax/blueprint.rb
masa-iwasaki-factory_girl-1.2.1.1 lib/factory_girl/syntax/blueprint.rb
qrush-factory_girl-1.2.1.1 lib/factory_girl/syntax/blueprint.rb
thoughtbot-factory_girl-1.2.0 lib/factory_girl/syntax/blueprint.rb
thoughtbot-factory_girl-1.2.1 lib/factory_girl/syntax/blueprint.rb
thoughtbot-factory_girl-1.2.2 lib/factory_girl/syntax/blueprint.rb
vitalish-factory_girl-1.2.10 lib/factory_girl/syntax/blueprint.rb
vitalish-factory_girl-1.2.9 lib/factory_girl/syntax/blueprint.rb
vitalish-factory_girl-1.2.8 lib/factory_girl/syntax/blueprint.rb
vitalish-factory_girl-1.2.7 lib/factory_girl/syntax/blueprint.rb
vitalish-factory_girl-1.2.6 lib/factory_girl/syntax/blueprint.rb
lockbox_middleware-1.2.1 vendor/gems/factory_girl-1.2.3/lib/factory_girl/syntax/blueprint.rb
malvestuto_factory_girl-1.2.5 lib/factory_girl/syntax/blueprint.rb
factory_girl-1.2.4 lib/factory_girl/syntax/blueprint.rb
jeffrafter-factory_girl-1.2.3 lib/factory_girl/syntax/blueprint.rb
masa-iwasaki-factory_girl-1.2.3.2 lib/factory_girl/syntax/blueprint.rb
masa-iwasaki-factory_girl-1.2.3.1 lib/factory_girl/syntax/blueprint.rb