module Jekyll::Algolia::Indexer

def self.run(records)

records - Records to push

Public: Push all records to Algolia and configure the index
def self.run(records)
  init
  # Indexing zero record is surely a misconfiguration
  if records.length.zero?
    files_to_exclude = Configurator.algolia('files_to_exclude').join(', ')
    Logger.known_message(
      'no_records_found',
      'files_to_exclude' => files_to_exclude,
      'nodes_to_index' => Configurator.algolia('nodes_to_index')
    )
    exit 1
  end
  # Update settings
  update_settings
  # Getting list of objectID in remote and locally
  remote_ids = remote_object_ids
  local_ids = local_object_ids(records)
  # Getting list of what to add and what to delete
  old_records_ids = remote_ids - local_ids
  new_records_ids = local_ids - remote_ids
  new_records = records.select do |record|
    new_records_ids.include?(record[:objectID])
  end
  update_records(old_records_ids, new_records)
  Logger.log('I:✔ Indexing complete')
end