class CSVStepImporter::Model::Reflector

Public Instance Methods

create_or_update() click to toggle source
# File lib/csv_step_importer/model/reflector.rb, line 13
def create_or_update
  self.dao_ids = ids
  true
end
dao_ids=(ids) click to toggle source

set ids

# File lib/csv_step_importer/model/reflector.rb, line 41
def dao_ids=(ids)
  raise "Unable to find saved data. Please check your scope." unless ids.size == daos.size

  daos.each_with_index do |dao, index|
    dao.id = dao.value[:id] = ids[index]
  end
end
find_ids_scope() click to toggle source
# File lib/csv_step_importer/model/reflector.rb, line 23
def find_ids_scope
  finder_scope
    .where(finder_key => finder_values)
    .order(["field(#{finder_key}, ?)", finder_values])
    .pluck(:id)
end
finder_key() click to toggle source
# File lib/csv_step_importer/model/reflector.rb, line 18
def finder_key
  raise "not yet supported" unless finder_keys.size == 1
  finder_keys.first
end
finder_values() click to toggle source
# File lib/csv_step_importer/model/reflector.rb, line 30
def finder_values
  @finder_values ||= daos.collect do |dao|
    dao.value[finder_key]
  end
end
ids() click to toggle source
# File lib/csv_step_importer/model/reflector.rb, line 36
def ids
  @ids ||= find_ids_scope.to_a
end