lib/searchkick.rb in searchkick-4.3.0 vs lib/searchkick.rb in searchkick-4.3.1
- old
+ new
@@ -1,10 +1,12 @@
+# dependencies
require "active_support"
require "active_support/core_ext/hash/deep_merge"
require "elasticsearch"
require "hashie"
+# modules
require "searchkick/bulk_indexer"
require "searchkick/index"
require "searchkick/indexer"
require "searchkick/hash_wrapper"
require "searchkick/middleware"
@@ -15,20 +17,22 @@
require "searchkick/record_data"
require "searchkick/record_indexer"
require "searchkick/results"
require "searchkick/version"
+# integrations
require "searchkick/railtie" if defined?(Rails)
require "searchkick/logging" if defined?(ActiveSupport::Notifications)
module Searchkick
# background jobs
autoload :BulkReindexJob, "searchkick/bulk_reindex_job"
autoload :ProcessBatchJob, "searchkick/process_batch_job"
autoload :ProcessQueueJob, "searchkick/process_queue_job"
autoload :ReindexV2Job, "searchkick/reindex_v2_job"
+ # errors
class Error < StandardError; end
class MissingIndexError < Error; end
class UnsupportedVersionError < Error; end
class InvalidQueryError < Elasticsearch::Transport::Transport::Errors::BadRequest; end
class DangerousOperation < Error; end
@@ -140,11 +144,11 @@
else
callbacks_value != false
end
end
- def self.callbacks(value)
+ def self.callbacks(value = nil)
if block_given?
previous_value = callbacks_value
begin
self.callbacks_value = value
result = yield
@@ -245,9 +249,21 @@
{
credentials: aws_credentials[:credentials] || Aws::Credentials.new(aws_credentials[:access_key_id], aws_credentials[:secret_access_key]),
service_name: "es",
region: aws_credentials[:region] || "us-east-1"
}
+ end
+ end
+
+ # private
+ # methods are forwarded to base class
+ # this check to see if scope exists on that class
+ # it's a bit tricky, but this seems to work
+ def self.relation?(klass)
+ if klass.respond_to?(:current_scope)
+ !klass.current_scope.nil?
+ elsif defined?(Mongoid::Threaded)
+ !Mongoid::Threaded.current_scope(klass).nil?
end
end
end
# TODO find better ActiveModel hook