class Chewy::Index::Import::JournalBuilder

Public Class Methods

new(index, to_index: [], delete: []) click to toggle source
# File lib/chewy/index/import/journal_builder.rb, line 5
def initialize(index, to_index: [], delete: [])
  @index = index
  @to_index = to_index
  @delete = delete
end

Public Instance Methods

bulk_body() click to toggle source
# File lib/chewy/index/import/journal_builder.rb, line 11
def bulk_body
  Chewy::Index::Import::BulkBuilder.new(
    Chewy::Stash::Journal,
    to_index: [
      entries(:index, @to_index),
      entries(:delete, @delete)
    ].compact
  ).bulk_body.each do |item|
    item.values.first.merge!(
      _index: Chewy::Stash::Journal.index_name
    )
  end
end

Private Instance Methods

entries(action, objects) click to toggle source
# File lib/chewy/index/import/journal_builder.rb, line 27
def entries(action, objects)
  return unless objects.present?

  {
    index_name: @index.derivable_name,
    action: action,
    references: identify(objects).map { |item| Base64.encode64(::Elasticsearch::API.serializer.dump(item)) },
    created_at: Time.now.utc
  }
end
identify(objects) click to toggle source
# File lib/chewy/index/import/journal_builder.rb, line 38
def identify(objects)
  @index.adapter.identify(objects)
end