2009-01-02 21:39:24 +00:00
|
|
|
require 'factory_girl/proxy'
|
|
|
|
require 'factory_girl/proxy/build'
|
|
|
|
require 'factory_girl/proxy/create'
|
|
|
|
require 'factory_girl/proxy/attributes_for'
|
2009-01-06 19:26:18 +00:00
|
|
|
require 'factory_girl/proxy/stub'
|
2011-01-25 22:55:40 +00:00
|
|
|
require 'factory_girl/registry'
|
2008-05-28 22:20:25 +00:00
|
|
|
require 'factory_girl/factory'
|
2008-07-30 17:46:06 +00:00
|
|
|
require 'factory_girl/attribute'
|
2009-01-02 22:33:00 +00:00
|
|
|
require 'factory_girl/attribute/static'
|
|
|
|
require 'factory_girl/attribute/dynamic'
|
2009-01-02 23:00:07 +00:00
|
|
|
require 'factory_girl/attribute/association'
|
2011-05-19 14:56:45 +00:00
|
|
|
require 'factory_girl/attribute/sequence'
|
2011-09-16 20:06:32 +00:00
|
|
|
require 'factory_girl/callback'
|
2011-09-23 17:14:02 +00:00
|
|
|
require 'factory_girl/declaration'
|
|
|
|
require 'factory_girl/declaration/static'
|
|
|
|
require 'factory_girl/declaration/dynamic'
|
|
|
|
require 'factory_girl/declaration/association'
|
|
|
|
require 'factory_girl/declaration/implicit'
|
2008-06-01 17:46:50 +00:00
|
|
|
require 'factory_girl/sequence'
|
2011-08-12 18:38:33 +00:00
|
|
|
require 'factory_girl/attribute_list'
|
2011-08-12 20:16:17 +00:00
|
|
|
require 'factory_girl/trait'
|
2008-07-30 19:47:12 +00:00
|
|
|
require 'factory_girl/aliases'
|
2010-06-10 18:58:47 +00:00
|
|
|
require 'factory_girl/definition_proxy'
|
2011-01-20 00:47:49 +00:00
|
|
|
require 'factory_girl/syntax/methods'
|
2010-06-10 18:58:47 +00:00
|
|
|
require 'factory_girl/syntax/default'
|
2010-07-07 00:54:55 +00:00
|
|
|
require 'factory_girl/syntax/vintage'
|
2010-06-24 13:45:57 +00:00
|
|
|
require 'factory_girl/find_definitions'
|
2011-09-02 18:41:38 +00:00
|
|
|
require 'factory_girl/reload'
|
2010-07-07 00:18:33 +00:00
|
|
|
require 'factory_girl/deprecated'
|
2010-10-02 04:00:58 +00:00
|
|
|
require 'factory_girl/version'
|
2010-06-23 14:59:46 +00:00
|
|
|
|
|
|
|
if defined?(Rails) && Rails::VERSION::MAJOR == 2
|
|
|
|
require 'factory_girl/rails2'
|
|
|
|
end
|
|
|
|
|
2011-05-19 14:56:45 +00:00
|
|
|
module FactoryGirl
|
2011-10-07 20:15:15 +00:00
|
|
|
# Raised when a factory is defined that attempts to instantiate itself.
|
|
|
|
class AssociationDefinitionError < RuntimeError; end
|
|
|
|
|
|
|
|
# Raised when a callback is defined that has an invalid name
|
|
|
|
class InvalidCallbackNameError < RuntimeError; end
|
|
|
|
|
|
|
|
# Raised when a factory is defined with the same name as a previously-defined factory.
|
|
|
|
class DuplicateDefinitionError < RuntimeError; end
|
|
|
|
|
2011-05-19 14:56:45 +00:00
|
|
|
def self.factories
|
2011-10-15 05:54:01 +00:00
|
|
|
@factories ||= Registry.new("Factory")
|
2011-05-19 14:56:45 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
def self.register_factory(factory)
|
|
|
|
factories.add(factory)
|
|
|
|
end
|
|
|
|
|
|
|
|
def self.factory_by_name(name)
|
|
|
|
factories.find(name)
|
|
|
|
end
|
|
|
|
|
|
|
|
def self.sequences
|
2011-10-15 05:54:01 +00:00
|
|
|
@sequences ||= Registry.new("Sequence")
|
2011-05-19 14:56:45 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
def self.register_sequence(sequence)
|
|
|
|
sequences.add(sequence)
|
|
|
|
end
|
|
|
|
|
|
|
|
def self.sequence_by_name(name)
|
|
|
|
sequences.find(name)
|
|
|
|
end
|
2011-08-12 14:35:41 +00:00
|
|
|
|
2011-08-12 20:16:17 +00:00
|
|
|
def self.traits
|
2011-10-15 05:54:01 +00:00
|
|
|
@traits ||= Registry.new("Trait")
|
2011-08-10 18:11:53 +00:00
|
|
|
end
|
|
|
|
|
2011-08-12 20:16:17 +00:00
|
|
|
def self.register_trait(trait)
|
|
|
|
traits.add(trait)
|
2011-08-10 18:11:53 +00:00
|
|
|
end
|
|
|
|
|
2011-08-12 20:16:17 +00:00
|
|
|
def self.trait_by_name(name)
|
|
|
|
traits.find(name)
|
2011-08-10 18:11:53 +00:00
|
|
|
end
|
2011-05-19 14:56:45 +00:00
|
|
|
end
|