Class: FactoryGirl::Proxy::Build

Inherits:
FactoryGirl::Proxy show all
Defined in:
lib/factory_girl/proxy/build.rb

Overview

:nodoc:

Direct Known Subclasses

Create

Instance Method Summary collapse

Methods inherited from FactoryGirl::Proxy

ensure_strategy_exists!, #method_missing, #run_callbacks, #set_ignored

Constructor Details

#initialize(klass, callbacks = []) ⇒ Build

Returns a new instance of Build.



4
5
6
7
# File 'lib/factory_girl/proxy/build.rb', line 4

def initialize(klass, callbacks = [])
  super
  @instance = klass.new
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class FactoryGirl::Proxy

Instance Method Details

#associate(name, factory_name, overrides) ⇒ Object



21
22
23
# File 'lib/factory_girl/proxy/build.rb', line 21

def associate(name, factory_name, overrides)
  set(name, association(factory_name, overrides))
end

#association(factory_name, overrides = {}) ⇒ Object



25
26
27
28
29
# File 'lib/factory_girl/proxy/build.rb', line 25

def association(factory_name, overrides = {})
  method = get_method(overrides[:method])
  factory = FactoryGirl.factory_by_name(factory_name)
  factory.run(method, overrides.except(:method))
end

#get(attribute) ⇒ Object



9
10
11
12
13
14
15
# File 'lib/factory_girl/proxy/build.rb', line 9

def get(attribute)
  if @ignored_attributes.has_key?(attribute)
    @ignored_attributes[attribute]
  else
    @instance.send(attribute)
  end
end

#result(to_create) ⇒ Object



31
32
33
34
# File 'lib/factory_girl/proxy/build.rb', line 31

def result(to_create)
  run_callbacks(:after_build)
  @instance
end

#set(attribute, value) ⇒ Object



17
18
19
# File 'lib/factory_girl/proxy/build.rb', line 17

def set(attribute, value)
  @instance.send(:"#{attribute}=", value)
end