class ActiveRecordImporter::InstanceBuilder
Public Instance Methods
build()
click to toggle source
# File lib/active_record_importer/instance_builder.rb, line 10 def build instance = initialize_instance process_data(instance) end
Private Instance Methods
assign_attrs_and_save!(instance)
click to toggle source
# File lib/active_record_importer/instance_builder.rb, line 41 def assign_attrs_and_save!(instance) instance.attributes = instance_attrs instance.save! instance end
before_save_callback(instance)
click to toggle source
# File lib/active_record_importer/instance_builder.rb, line 36 def before_save_callback(instance) return if before_save.blank? ImportCallbacker.new(instance, before_save).call end
error_duplicate?(instance)
click to toggle source
# File lib/active_record_importer/instance_builder.rb, line 51 def error_duplicate?(instance) instance.persisted? && error_duplicate? end
initialize_instance()
click to toggle source
# File lib/active_record_importer/instance_builder.rb, line 19 def initialize_instance return importable.new if insert? fail Errors::MissingFindByOption if find_attributes.blank? importable.find_or_initialize_by(find_attributes) end
insert_method_inquiry()
click to toggle source
# File lib/active_record_importer/instance_builder.rb, line 47 def insert_method_inquiry insert_method.inquiry end
process_data(instance)
click to toggle source
# File lib/active_record_importer/instance_builder.rb, line 29 def process_data(instance) fail Errors::DuplicateRecord if error_duplicate?(instance) before_save_callback(instance) assign_attrs_and_save!(instance) end