Sha256: a5cb83ac82d52789b8ca80364fa2645f106e236e0dd40ef7468777a907e35803
Contents?: true
Size: 1.4 KB
Versions: 1
Compression:
Stored size: 1.4 KB
Contents
module FactoryGirl class Proxy #:nodoc: class Build < Proxy #:nodoc: def initialize(klass) super(klass) @instance = klass.new end def get(attribute) if @ignored_attributes.has_key?(attribute) @ignored_attributes[attribute] else @instance.send(attribute) end end def set(attribute, value) @instance.send(:"#{attribute}=", value) end def associate(name, factory_name, overrides) method = get_method(overrides[:method]) factory = FactoryGirl.factory_by_name(factory_name) set(name, factory.run(method, remove_method(overrides))) end def association(factory_name, overrides = {}) method = get_method(overrides[:method]) factory = FactoryGirl.factory_by_name(factory_name) factory.run(method, remove_method(overrides)) end def remove_method(overrides) overrides.dup.delete_if {|key, value| key == :method} end def result(to_create) run_callbacks(:after_build) @instance end def parse_method(method) method ||= :create if :build == method return Proxy::Build elsif :create == method return Proxy::Create else raise "unrecognized method #{method}" end end alias_method :get_method, :parse_method end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
factory_girl-2.2.0 | lib/factory_girl/proxy/build.rb |