Sha256: f7d2565f3a1942af21d57c04e5ace283ffe1b6cbfbf5e8ee76e11d88fab63985
Contents?: true
Size: 1.54 KB
Versions: 1
Compression:
Stored size: 1.54 KB
Contents
module FactoryGirl class Proxy #:nodoc: class Build < Proxy #:nodoc: def initialize(klass) super(klass) @instance = klass.new @ignored_attributes = {} end def get(attribute) if @ignored_attributes.has_key?(attribute) @ignored_attributes[attribute] else @instance.send(attribute) end end def set(attribute, value, ignored = false) if ignored @ignored_attributes[attribute] = value else @instance.send(:"#{attribute}=", value) end 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.1.2 | lib/factory_girl/proxy/build.rb |