Commit 1e07f15658dc1e1e8a5ba3e2ab6782c143b28ff1

Authored by Andrew Kane
1 parent ba7dc089

Less magic for client selection [skip ci]

Showing 1 changed file with 6 additions and 7 deletions   Show diff stats
lib/searchkick.rb
@@ -56,10 +56,9 @@ module Searchkick @@ -56,10 +56,9 @@ module Searchkick
56 class InvalidQueryError < Error; end 56 class InvalidQueryError < Error; end
57 class DangerousOperation < Error; end 57 class DangerousOperation < Error; end
58 class ImportError < Error; end 58 class ImportError < Error; end
59 - class ClientNotFound < Error; end  
60 59
61 class << self 60 class << self
62 - attr_accessor :search_method_name, :timeout, :models, :client_options, :redis, :index_prefix, :index_suffix, :queue_name, :model_options 61 + attr_accessor :search_method_name, :timeout, :models, :client_options, :redis, :index_prefix, :index_suffix, :queue_name, :model_options, :client_type
63 attr_writer :client, :env, :search_timeout 62 attr_writer :client, :env, :search_timeout
64 attr_reader :aws_credentials 63 attr_reader :aws_credentials
65 end 64 end
@@ -73,16 +72,16 @@ module Searchkick @@ -73,16 +72,16 @@ module Searchkick
73 def self.client 72 def self.client
74 @client ||= begin 73 @client ||= begin
75 client_type = 74 client_type =
76 - if ENV["OPENSEARCH_URL"]  
77 - :opensearch  
78 - elsif ENV["ELASTICSEARCH_URL"]  
79 - :elasticsearch 75 + if self.client_type
  76 + self.client_type
  77 + elsif defined?(OpenSearch::Client) && defined?(Elasticsearch::Client)
  78 + raise Error, "Multiple clients found - set Searchkick.client_type = :elasticsearch or :opensearch"
80 elsif defined?(OpenSearch::Client) 79 elsif defined?(OpenSearch::Client)
81 :opensearch 80 :opensearch
82 elsif defined?(Elasticsearch::Client) 81 elsif defined?(Elasticsearch::Client)
83 :elasticsearch 82 :elasticsearch
84 else 83 else
85 - raise ClientNotFound, "Install the `opensearch-ruby` or `elasticsearch` gem" 84 + raise Error, "No client found - install the `elasticsearch` or `opensearch-ruby` gem"
86 end 85 end
87 86
88 # check after client to ensure faraday is installed 87 # check after client to ensure faraday is installed