Module: FactoryGirl
- Extended by:
- Syntax::Default
- Defined in:
- lib/factory_girl.rb,
lib/factory_girl/trait.rb,
lib/factory_girl/errors.rb,
lib/factory_girl/reload.rb,
lib/factory_girl/syntax.rb,
lib/factory_girl/aliases.rb,
lib/factory_girl/factory.rb,
lib/factory_girl/version.rb,
lib/factory_girl/callback.rb,
lib/factory_girl/registry.rb,
lib/factory_girl/sequence.rb,
lib/factory_girl/attribute.rb,
lib/factory_girl/evaluator.rb,
lib/factory_girl/definition.rb,
lib/factory_girl/evaluation.rb,
lib/factory_girl/declaration.rb,
lib/factory_girl/null_object.rb,
lib/factory_girl/syntax/make.rb,
lib/factory_girl/syntax/sham.rb,
lib/factory_girl/null_factory.rb,
lib/factory_girl/strategy/null.rb,
lib/factory_girl/strategy/stub.rb,
lib/factory_girl/syntax_runner.rb,
lib/factory_girl/attribute_list.rb,
lib/factory_girl/factory_runner.rb,
lib/factory_girl/strategy/build.rb,
lib/factory_girl/syntax/default.rb,
lib/factory_girl/syntax/methods.rb,
lib/factory_girl/syntax/vintage.rb,
lib/factory_girl/strategy/create.rb,
lib/factory_girl/syntax/generate.rb,
lib/factory_girl/attribute/static.rb,
lib/factory_girl/declaration_list.rb,
lib/factory_girl/definition_proxy.rb,
lib/factory_girl/find_definitions.rb,
lib/factory_girl/syntax/blueprint.rb,
lib/factory_girl/attribute/dynamic.rb,
lib/factory_girl/attribute/sequence.rb,
lib/factory_girl/attribute_assigner.rb,
lib/factory_girl/callbacks_observer.rb,
lib/factory_girl/declaration/static.rb,
lib/factory_girl/declaration/dynamic.rb,
lib/factory_girl/strategy_calculator.rb,
lib/factory_girl/declaration/implicit.rb,
lib/factory_girl/attribute/association.rb,
lib/factory_girl/declaration/association.rb,
lib/factory_girl/evaluator_class_definer.rb,
lib/factory_girl/strategy/attributes_for.rb,
lib/factory_girl/disallows_duplicates_registry.rb
Defined Under Namespace
Modules: Strategy, Syntax
Classes: AssociationDefinitionError, Attribute, AttributeAssigner, AttributeDefinitionError, AttributeList, Callback, CallbacksObserver, Declaration, DeclarationList, Definition, DefinitionProxy, DisallowsDuplicatesRegistry, DuplicateDefinitionError, Evaluation, Evaluator, EvaluatorClassDefiner, Factory, FactoryRunner, InvalidCallbackNameError, NullFactory, NullObject, Registry, Sequence, SequenceAbuseError, StrategyCalculator, SyntaxRunner, Trait
Constant Summary
collapse
- VERSION =
"3.2.0"
Class Attribute Summary collapse
Class Method Summary
collapse
define, modify
#build_list, #create_list, #generate
Class Attribute Details
.aliases ⇒ Object
3
4
5
|
# File 'lib/factory_girl/aliases.rb', line 3
def aliases
@aliases
end
|
.definition_file_paths ⇒ Object
An Array of strings specifying locations that should be searched for factory definitions. By default, factory_girl will attempt to require “factories,” “test/factories,” and “spec/factories.” Only the first existing file will be loaded.
8
9
10
|
# File 'lib/factory_girl/find_definitions.rb', line 8
def definition_file_paths
@definition_file_paths
end
|
Class Method Details
.aliases_for(attribute) ⇒ Object
11
12
13
14
15
16
17
18
|
# File 'lib/factory_girl/aliases.rb', line 11
def self.aliases_for(attribute) aliases.collect do |params|
pattern, replace = *params
if pattern.match(attribute.to_s)
attribute.to_s.sub(pattern, replace).to_sym
end
end.compact << attribute
end
|
.callback_names ⇒ Object
113
114
115
|
# File 'lib/factory_girl.rb', line 113
def self.callback_names
[:after_build, :after_create, :after_stub, :before_create].freeze
end
|
.factory_by_name(name) ⇒ Object
50
51
52
|
# File 'lib/factory_girl.rb', line 50
def self.factory_by_name(name)
factories.find(name)
end
|
.find_definitions ⇒ Object
12
13
14
15
16
17
18
19
20
21
22
23
24
|
# File 'lib/factory_girl/find_definitions.rb', line 12
def self.find_definitions absolute_definition_file_paths = definition_file_paths.map {|path| File.expand_path(path) }
absolute_definition_file_paths.uniq.each do |path|
load("#{path}.rb") if File.exists?("#{path}.rb")
if File.directory? path
Dir[File.join(path, '**', '*.rb')].sort.each do |file|
load file
end
end
end
end
|
.register_default_strategies ⇒ Object
.register_factory(factory) ⇒ Object
43
44
45
46
47
48
|
# File 'lib/factory_girl.rb', line 43
def self.register_factory(factory)
factory.names.each do |name|
factories.register(name, factory)
end
factory
end
|
.register_sequence(sequence) ⇒ Object
58
59
60
61
62
63
|
# File 'lib/factory_girl.rb', line 58
def self.register_sequence(sequence)
sequence.names.each do |name|
sequences.register(name, sequence)
end
sequence
end
|
.register_strategy(strategy_name, strategy_class) ⇒ Object
88
89
90
91
92
93
94
95
96
97
98
99
100
|
# File 'lib/factory_girl.rb', line 88
def self.register_strategy(strategy_name, strategy_class)
strategies.register(strategy_name, strategy_class)
FactoryGirl::Syntax::Methods.module_exec do
define_method(strategy_name) do |name, *traits_and_overrides, &block|
instrumentation_payload = { name: name, strategy: strategy_name }
ActiveSupport::Notifications.instrument("factory_girl.run_factory", instrumentation_payload) do
FactoryRunner.new(name, strategy_class, traits_and_overrides).run(&block)
end
end
end
end
|
.register_trait(trait) ⇒ Object
73
74
75
76
77
78
|
# File 'lib/factory_girl.rb', line 73
def self.register_trait(trait)
trait.names.each do |name|
traits.register(name, trait)
end
trait
end
|
.reload ⇒ Object
2
3
4
5
6
7
8
9
|
# File 'lib/factory_girl/reload.rb', line 2
def self.reload
self.factories.clear
self.sequences.clear
self.traits.clear
self.strategies.clear
self.register_default_strategies
self.find_definitions
end
|
.sequence_by_name(name) ⇒ Object
65
66
67
|
# File 'lib/factory_girl.rb', line 65
def self.sequence_by_name(name)
sequences.find(name)
end
|
.strategies ⇒ Object
84
85
86
|
# File 'lib/factory_girl.rb', line 84
def self.strategies
@strategies ||= Registry.new("Strategy")
end
|
.strategy_by_name(name) ⇒ Object
102
103
104
|
# File 'lib/factory_girl.rb', line 102
def self.strategy_by_name(name)
strategies.find(name)
end
|
.trait_by_name(name) ⇒ Object
80
81
82
|
# File 'lib/factory_girl.rb', line 80
def self.trait_by_name(name)
traits.find(name)
end
|