Class: Philiprehberger::TestFactory::DefinitionProxy
- Inherits:
-
Object
- Object
- Philiprehberger::TestFactory::DefinitionProxy
- Defined in:
- lib/philiprehberger/test_factory/definition_proxy.rb
Overview
DSL proxy used inside factory definition blocks. Supports after_build callbacks, transient attributes, and associations.
Instance Attribute Summary collapse
-
#after_build_callbacks ⇒ Array<Proc>
readonly
Registered after_build callbacks.
-
#associations ⇒ Hash
readonly
Association declarations.
-
#transient_attributes ⇒ Hash
readonly
Transient attribute defaults.
Instance Method Summary collapse
-
#after_build {|Hash| ... } ⇒ void
Register an after_build callback.
-
#association(name, factory: name) ⇒ void
Declare an association to another factory.
-
#initialize ⇒ DefinitionProxy
constructor
A new instance of DefinitionProxy.
-
#transient { ... } ⇒ void
Declare transient attributes that are excluded from the final hash.
Constructor Details
#initialize ⇒ DefinitionProxy
Returns a new instance of DefinitionProxy.
17 18 19 20 21 |
# File 'lib/philiprehberger/test_factory/definition_proxy.rb', line 17 def initialize @after_build_callbacks = [] @transient_attributes = {} @associations = {} end |
Instance Attribute Details
#after_build_callbacks ⇒ Array<Proc> (readonly)
Returns registered after_build callbacks.
9 10 11 |
# File 'lib/philiprehberger/test_factory/definition_proxy.rb', line 9 def after_build_callbacks @after_build_callbacks end |
#associations ⇒ Hash (readonly)
Returns association declarations.
15 16 17 |
# File 'lib/philiprehberger/test_factory/definition_proxy.rb', line 15 def associations @associations end |
#transient_attributes ⇒ Hash (readonly)
Returns transient attribute defaults.
12 13 14 |
# File 'lib/philiprehberger/test_factory/definition_proxy.rb', line 12 def transient_attributes @transient_attributes end |
Instance Method Details
#after_build {|Hash| ... } ⇒ void
This method returns an undefined value.
Register an after_build callback.
27 28 29 |
# File 'lib/philiprehberger/test_factory/definition_proxy.rb', line 27 def after_build(&block) @after_build_callbacks << block end |
#association(name, factory: name) ⇒ void
This method returns an undefined value.
Declare an association to another factory.
46 47 48 |
# File 'lib/philiprehberger/test_factory/definition_proxy.rb', line 46 def association(name, factory: name) @associations[name] = factory end |
#transient { ... } ⇒ void
This method returns an undefined value.
Declare transient attributes that are excluded from the final hash.
35 36 37 38 39 |
# File 'lib/philiprehberger/test_factory/definition_proxy.rb', line 35 def transient(&) collector = TransientCollector.new collector.instance_eval(&) @transient_attributes.merge!(collector.attributes) end |