class AbstractImporter::Strategies::Base

Attributes

collection[R]

Public Class Methods

new(collection, options={}) click to toggle source
# File lib/abstract_importer/strategies/base.rb, line 19
def initialize(collection, options={})
  @collection = collection
  @remap_ids = options.fetch(:id_map, use_id_map_for?(collection))
end

Public Instance Methods

already_imported?(hash) click to toggle source
# File lib/abstract_importer/strategies/base.rb, line 32
def already_imported?(hash)
  id_map.contains? collection.table_name, hash[:id]
end
flush() click to toggle source
# File lib/abstract_importer/strategies/base.rb, line 36
def flush
end
prepare_attributes(hash) click to toggle source
# File lib/abstract_importer/strategies/base.rb, line 39
def prepare_attributes(hash)
  hash = invoke_callback(:before_build, hash) || hash

  if remap_ids?
    hash = hash.merge(legacy_id: hash.delete(:id))
    if generate_id
      hash[:id] = generate_id.arity.zero? ? generate_id.call : generate_id.call(hash)
    end
  end

  hash.merge(association_attrs)
end
process_record(hash) click to toggle source
# File lib/abstract_importer/strategies/base.rb, line 28
def process_record(hash)
  raise NotImplementedError
end
remap_ids?() click to toggle source
# File lib/abstract_importer/strategies/base.rb, line 24
def remap_ids?
  @remap_ids
end