lib/searchkick.rb in searchkick-2.0.3 vs lib/searchkick.rb in searchkick-2.0.4
- old
+ new
@@ -3,10 +3,11 @@
require "hashie"
require "searchkick/version"
require "searchkick/index_options"
require "searchkick/index"
require "searchkick/indexer"
+require "searchkick/reindex_queue"
require "searchkick/results"
require "searchkick/query"
require "searchkick/model"
require "searchkick/tasks"
require "searchkick/middleware"
@@ -19,10 +20,12 @@
rescue LoadError
# do nothing
end
if defined?(ActiveJob)
require "searchkick/bulk_reindex_job"
+ require "searchkick/process_queue_job"
+ require "searchkick/process_batch_job"
require "searchkick/reindex_v2_job"
end
module Searchkick
class Error < StandardError; end
@@ -138,9 +141,28 @@
{
completed: batches_left == 0,
batches_left: batches_left
}
end
+ end
+
+ # private
+ def self.load_records(records, ids)
+ records =
+ if records.respond_to?(:primary_key)
+ # ActiveRecord
+ records.where(records.primary_key => ids) if records.primary_key
+ elsif records.respond_to?(:queryable)
+ # Mongoid 3+
+ records.queryable.for_ids(ids)
+ elsif records.respond_to?(:unscoped) && :id.respond_to?(:in)
+ # Nobrainer
+ records.unscoped.where(:id.in => ids)
+ end
+
+ raise Searchkick::Error, "Not sure how to load records" if !records
+
+ records
end
# private
def self.indexer
Thread.current[:searchkick_indexer] ||= Searchkick::Indexer.new