searchkick.rb
1.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
require "active_model"
require "elasticsearch"
require "hashie"
require "searchkick/version"
require "searchkick/index"
require "searchkick/reindex"
require "searchkick/results"
require "searchkick/query"
require "searchkick/search"
require "searchkick/similar"
require "searchkick/model"
require "searchkick/tasks"
require "searchkick/logging" if defined?(Rails)
module Searchkick
class MissingIndexError < StandardError; end
class UnsupportedVersionError < StandardError; end
class InvalidQueryError < Elasticsearch::Transport::Transport::Errors::BadRequest; end
def self.client
@client ||= Elasticsearch::Client.new(url: ENV["ELASTICSEARCH_URL"])
end
def self.client=(client)
@client = client
end
@callbacks = true
def self.enable_callbacks
@callbacks = true
end
def self.disable_callbacks
@callbacks = false
end
def self.callbacks?
@callbacks
end
end
# TODO find better ActiveModel hook
ActiveModel::Callbacks.send(:include, Searchkick::Model)
ActiveRecord::Base.send(:extend, Searchkick::Model) if defined?(ActiveRecord)