Class: Factory::Proxy

Inherits:
Object
  • Object
show all
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

AttributesFor, Build, Stub

Defined Under Namespace

Classes: AttributesFor, Build, Create, Stub

Instance Attribute Summary collapse

Instance Method Summary collapse

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

#callbacksObject (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.author {|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

#resultObject

Raises:

  • (NotImplementedError)


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