Sha256: 9b9811c5d136a3e0ece7ed16a606de480848e39c985ddf7586ad364b886b0e98
Contents?: true
Size: 976 Bytes
Versions: 3
Compression:
Stored size: 976 Bytes
Contents
require 'factory_girl/remote_api/request' module FactoryGirl module RemoteApi class RemoteFactory def self.model_from(factory_method, factory, attributes) final_attributes = FactoryGirl::RemoteApi::Request.new.get_response_for(factory_method, factory, attributes) new.instantiate_model(final_attributes, factory, attributes) end def instantiate_model(final_attributes, factory, attributes) model_instance = model_class(factory, attributes).new apply_attributes_to_instance(final_attributes, model_instance) model_instance end private def model_class(factory, attributes) class_name = attributes[:parent_factory] || factory.to_s class_name.camelize.constantize end def apply_attributes_to_instance(attributes, model_instance) attributes.each { |attr_name, attr_value| model_instance.public_send("#{attr_name}=", attr_value) } end end end end
Version data entries
3 entries across 3 versions & 1 rubygems