module Elasticsearch::Model::Extensions::OuterDocumentUpdating::ClassMethods

Public Instance Methods

initialize_active_record!(active_record_class, parent_class: parent_class, delayed:, only_if: -> r { true } click to toggle source
# File lib/elasticsearch/model/extensions/outer_document_updating.rb, line 93
def initialize_active_record!(active_record_class, parent_class: parent_class, delayed:, only_if: -> r { true }, records_to_update_documents: nil, field_to_update: nil, block: block)
  config = Elasticsearch::Model::Extensions::Configuration.new(active_record_class, parent_class: parent_class, delayed: delayed, only_if: binding.local_variable_get(:only_if), records_to_update_documents: records_to_update_documents,
    field_to_update: field_to_update,
    block: block
  )

  active_record_class.after_commit Elasticsearch::Model::Extensions::UpdateCallback.new(config)
  active_record_class.after_commit Elasticsearch::Model::Extensions::DestroyCallback.new(config), on: :destroy
end
partially_updates_document_of(parent_class, options, &block) click to toggle source
# File lib/elasticsearch/model/extensions/outer_document_updating.rb, line 103
def partially_updates_document_of(parent_class, options, &block)
  options ||= {}
  delayed = options[:delayed] || nil
  only_if = options[:if] || (-> r { true })
  records_to_update_documents = options[:records_to_update_documents] || nil
  field_to_update = options[:field_to_update] || nil

  initialize_active_record!(
    self,
    :parent_class => parent_class,
    :delayed => delayed,
    :only_if => only_if,
    :field_to_update => field_to_update,
    :records_to_update_documents => records_to_update_documents,
    :block => block
  )
end