Module: FactoryGirl::Syntax::Methods
- Included in:
- Default
- Defined in:
- lib/factory_girl/syntax/methods.rb
Instance Method Summary collapse
-
#attributes_for(name, *traits_and_overrides, &block) ⇒ Object
Generates and returns a Hash of attributes from this factory.
-
#build(name, *traits_and_overrides, &block) ⇒ Object
Generates and returns an instance from this factory.
-
#build_list(name, amount, *traits_and_overrides) ⇒ Object
Builds and returns multiple instances from this factory as an array.
-
#build_stubbed(name, *traits_and_overrides, &block) ⇒ Object
Generates and returns an object with all attributes from this factory stubbed out.
-
#create(name, *traits_and_overrides, &block) ⇒ Object
Generates, saves, and returns an instance from this factory.
-
#create_list(name, amount, *traits_and_overrides) ⇒ Object
Creates and returns multiple instances from this factory as an array.
-
#generate(name) ⇒ Object
Generates and returns the next value in a sequence.
Instance Method Details
#attributes_for(name, *traits_and_overrides, &block) ⇒ Object
Generates and returns a Hash of attributes from this factory. Attributes can be individually overridden by passing in a Hash of attribute => value pairs.
Arguments:
-
name:
Symbol
orString
The name of the factory that should be used. -
traits_and_overrides:
Array
- *Array
-
Traits to be applied
Hash
-
Attributes to overwrite for this set.
-
block: Yields the hash of attributes.
Returns: Hash
A set of attributes that can be used to build an instance of the class this factory generates.
20 21 22 |
# File 'lib/factory_girl/syntax/methods.rb', line 20 def attributes_for(name, *traits_and_overrides, &block) FactoryRunner.new(name, Strategy::AttributesFor, traits_and_overrides).run(&block) end |
#build(name, *traits_and_overrides, &block) ⇒ Object
Generates and returns an instance from this factory. Attributes can be individually overridden by passing in a Hash of attribute => value pairs.
Arguments:
-
name:
Symbol
orString
The name of the factory that should be used. -
traits_and_overrides:
Array
- *Array
-
Traits to be applied
Hash
-
Attributes to overwrite for this instance.
-
block: Yields the built instance.
Returns: Object
An instance of the class this factory generates, with generated attributes assigned.
39 40 41 |
# File 'lib/factory_girl/syntax/methods.rb', line 39 def build(name, *traits_and_overrides, &block) FactoryRunner.new(name, Strategy::Build, traits_and_overrides).run(&block) end |
#build_list(name, amount, *traits_and_overrides) ⇒ Object
Builds and returns multiple instances from this factory as an array. Attributes can be individually overridden by passing in a Hash of attribute => value pairs.
Arguments:
-
name:
Symbol
orString
The name of the factory to be used. -
amount:
Integer
number of instances to be built. -
traits_and_overrides:
Array
- *Array
-
Traits to be applied
Hash
-
Attributes to overwrite for this instance.
Returns: Array
An array of instances of the class this factory generates, with generated attributes assigned.
100 101 102 |
# File 'lib/factory_girl/syntax/methods.rb', line 100 def build_list(name, amount, *traits_and_overrides) amount.times.map { build(name, *traits_and_overrides) } end |
#build_stubbed(name, *traits_and_overrides, &block) ⇒ Object
Generates and returns an object with all attributes from this factory stubbed out. Attributes can be individually overridden by passing in a Hash of attribute => value pairs.
Arguments:
-
name:
Symbol
orString
The name of the factory that should be used. -
traits_and_overrides:
Array
- *Array
-
Traits to be applied
Hash
-
Attributes to overwrite for this instance.
-
block Yields the stubbed object.
Returns: Object
An object with generated attributes stubbed out.
81 82 83 |
# File 'lib/factory_girl/syntax/methods.rb', line 81 def build_stubbed(name, *traits_and_overrides, &block) FactoryRunner.new(name, Strategy::Stub, traits_and_overrides).run(&block) end |
#create(name, *traits_and_overrides, &block) ⇒ Object
Generates, saves, and returns an instance from this factory. Attributes can be individually overridden by passing in a Hash of attribute => value pairs.
Instances are saved using the save!
method, so ActiveRecord models will raise ActiveRecord::RecordInvalid exceptions for invalid attribute sets.
Arguments:
-
name:
Symbol
orString
The name of the factory that should be used. -
traits_and_overrides:
Array
- *Array
-
Traits to be applied
Hash
-
Attributes to overwrite for this instance.
-
block: Yields the created instance.
Returns: Object
A saved instance of the class this factory generates, with generated attributes assigned.
62 63 64 |
# File 'lib/factory_girl/syntax/methods.rb', line 62 def create(name, *traits_and_overrides, &block) FactoryRunner.new(name, Strategy::Create, traits_and_overrides).run(&block) end |
#create_list(name, amount, *traits_and_overrides) ⇒ Object
Creates and returns multiple instances from this factory as an array. Attributes can be individually overridden by passing in a Hash of attribute => value pairs.
Arguments:
-
name:
Symbol
orString
The name of the factory to be used. -
amount:
Integer
number of instances to be created. -
traits_and_overrides:
Array
- *Array
-
Traits to be applied
Hash
-
Attributes to overwrite for this instance.
Returns: Array
An array of instances of the class this factory generates, with generated attributes assigned.
119 120 121 |
# File 'lib/factory_girl/syntax/methods.rb', line 119 def create_list(name, amount, *traits_and_overrides) amount.times.map { create(name, *traits_and_overrides) } end |
#generate(name) ⇒ Object
Generates and returns the next value in a sequence.
Arguments:
name: (Symbol)
The name of the sequence that a value should be generated for.
Returns:
The next value in the sequence. (Object)
131 132 133 |
# File 'lib/factory_girl/syntax/methods.rb', line 131 def generate(name) FactoryGirl.sequence_by_name(name).next end |