module SearchAndResque::ClassMethods

Attributes

elastic_search_type[RW]

Public Instance Methods

search_and_resque(type_name, options={}) click to toggle source
# File lib/search_and_resque.rb, line 32
def search_and_resque(type_name, options={})
  unless included_modules.include?(SearchAndResque::Callbacks)
    @elastic_search_type = "#{type_name}"
    class << self
      attr_accessor :elastic_search_type
    end

    include SearchAndResque::Callbacks
    after_save :enqueue_elastic_search_update
    if options[:id]
      after_destroy :enqueue_elastic_search_update
    else
      after_destroy :enqueue_elastic_search_delete
    end

    options[:if] ||= ->{ true }
    define_method(:should_update_elastic_search?, &options[:if])

    options[:id] ||= ->{ id }
    define_method(:elastic_search_id, &options[:id])
  end
end