Class: Factory::Proxy
- Inherits:
-
Object
- Object
- Factory::Proxy
- Defined in:
- lib/factory_girl/proxy.rb,
lib/factory_girl/proxy/stub.rb,
lib/factory_girl/proxy/build.rb,
lib/factory_girl/proxy/create.rb,
lib/factory_girl/proxy/attributes_for.rb
Overview
:nodoc:
Direct Known Subclasses
Defined Under Namespace
Classes: AttributesFor, Build, Create, Stub
Instance Attribute Summary collapse
-
#callbacks ⇒ Object
readonly
Returns the value of attribute callbacks.
Instance Method Summary collapse
- #add_callback(name, block) ⇒ Object
- #associate(name, factory, attributes) ⇒ Object
-
#association(name, overrides = {}) ⇒ Object
Generates an association using the current build strategy.
- #get(attribute) ⇒ Object
-
#initialize(klass) ⇒ Proxy
constructor
A new instance of Proxy.
- #method_missing(method, *args, &block) ⇒ Object
- #result ⇒ Object
- #run_callbacks(name) ⇒ Object
- #set(attribute, value) ⇒ Object
Constructor Details
#initialize(klass) ⇒ Proxy
Returns a new instance of Proxy.
7 8 |
# File 'lib/factory_girl/proxy.rb', line 7 def initialize(klass) end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method, *args, &block) ⇒ Object
70 71 72 |
# File 'lib/factory_girl/proxy.rb', line 70 def method_missing(method, *args, &block) get(method) end |
Instance Attribute Details
#callbacks ⇒ Object (readonly)
Returns the value of attribute callbacks.
5 6 7 |
# File 'lib/factory_girl/proxy.rb', line 5 def callbacks @callbacks end |
Instance Method Details
#add_callback(name, block) ⇒ Object
20 21 22 23 24 |
# File 'lib/factory_girl/proxy.rb', line 20 def add_callback(name, block) @callbacks ||= {} @callbacks[name] ||= [] @callbacks[name] << block end |
#associate(name, factory, attributes) ⇒ Object
17 18 |
# File 'lib/factory_girl/proxy.rb', line 17 def associate(name, factory, attributes) end |
#association(name, overrides = {}) ⇒ Object
Generates an association using the current build strategy.
Arguments:
name: (Symbol)
The name of the factory that should be used to generate this
association.
attributes: (Hash)
A hash of attributes that should be overridden for this association.
Returns:
The generated association for the current build strategy. Note that
assocaitions are not generated for the attributes_for strategy. Returns
nil in this case.
Example:
Factory.define :user do |f|
# ...
end
Factory.define :post do |f|
# ...
f. {|a| a.association :user, :name => 'Joe' }
end
# Builds (but doesn't save) a Post and a User
Factory.build(:post)
# Builds and saves a User, builds a Post, assigns the User to the
# author association, and saves the User.
Factory.create(:post)
66 67 68 |
# File 'lib/factory_girl/proxy.rb', line 66 def association(name, overrides = {}) nil end |
#get(attribute) ⇒ Object
10 11 12 |
# File 'lib/factory_girl/proxy.rb', line 10 def get(attribute) nil end |
#result ⇒ Object
74 75 76 |
# File 'lib/factory_girl/proxy.rb', line 74 def result raise NotImplementedError, "Strategies must return a result" end |
#run_callbacks(name) ⇒ Object
26 27 28 29 30 31 32 |
# File 'lib/factory_girl/proxy.rb', line 26 def run_callbacks(name) if @callbacks && @callbacks[name] @callbacks[name].each do |block| block.arity.zero? ? block.call : block.call(@instance) end end end |
#set(attribute, value) ⇒ Object
14 15 |
# File 'lib/factory_girl/proxy.rb', line 14 def set(attribute, value) end |