module SearchAndResque::Callbacks::ClassMethods

Public Instance Methods

enqueue_elastic_search_delete(ids) click to toggle source
# File lib/search_and_resque/callbacks.rb, line 11
def enqueue_elastic_search_delete(ids)
  ids = Array(ids).map{ |x| x.is_a?(ActiveRecord::Base) ? x.id : x }
  SearchAndResque.queue.enqueue_delete(elastic_search_type, ids)
end
enqueue_elastic_search_update(ids) click to toggle source
# File lib/search_and_resque/callbacks.rb, line 6
def enqueue_elastic_search_update(ids)
  ids = Array(ids).map{ |x| x.is_a?(ActiveRecord::Base) ? x.id : x }
  SearchAndResque.queue.enqueue_update(elastic_search_type, ids)
end
will_delete_all(ids) { || ... } click to toggle source

e.g.

Model.will_delete_all(@records) do
  ...
  @records.delete_all
  ...
end
# File lib/search_and_resque/callbacks.rb, line 40
def will_delete_all(ids)
  begin
    skip_callback(:destroy, :after, :enqueue_elastic_search_delete)
    transaction do
      yield if block_given?
      enqueue_elastic_search_delete(ids) unless ids.empty?
    end
  ensure
    set_callback(:destroy, :after, :enqueue_elastic_search_delete)
  end
end
will_update_all(ids) { || ... } click to toggle source

e.g.

Model.will_update_all(@records) do
  ...
  @records.update_all(...)
  ...
end
# File lib/search_and_resque/callbacks.rb, line 22
def will_update_all(ids)
  begin
    skip_callback(:save, :after, :enqueue_elastic_search_update)
    transaction do
      yield if block_given?
      enqueue_elastic_search_update(ids) unless ids.empty?
    end
  ensure
    set_callback(:save, :after, :enqueue_elastic_search_update)
  end
end