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