Class: Metacrunch::Elasticsearch::Destination

Inherits:
Object
  • Object
show all
Defined in:
lib/metacrunch/elasticsearch/destination.rb

Constant Summary collapse

DEFAULT_OPTIONS =
{
  raise_on_result_errors: false, # deprecated
  result_callback: nil,
  bulk_options: {}
}

Instance Method Summary collapse

Constructor Details

#initialize(elasticsearch_client, options = {}) ⇒ Destination



12
13
14
15
16
17
18
19
20
# File 'lib/metacrunch/elasticsearch/destination.rb', line 12

def initialize(elasticsearch_client, options = {})
  @client = elasticsearch_client
  @options = DEFAULT_OPTIONS.deep_merge(options)

  @deprecator = ActiveSupport::Deprecation.new("5.0.0", "metacrunch-elasticsearch")
  if @options[:raise_on_result_errors]
    @deprecator.deprecation_warning("Option :raise_on_result_errors")
  end
end

Instance Method Details

#closeObject



34
35
36
# File 'lib/metacrunch/elasticsearch/destination.rb', line 34

def close
  # noop
end

#write(data) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
# File 'lib/metacrunch/elasticsearch/destination.rb', line 22

def write(data)
  return if data.blank?

  # Call elasticsearch bulk api
  bulk_options = @options[:bulk_options]
  bulk_options[:body] = data
  result = @client.bulk(bulk_options)

  # if the user provided a callback proc, call it
  @options[:result_callback].call(result) if @options[:result_callback]&.respond_to?(:call)
end