Commit c42e01b18707cedc1143f2832ac165ba0c942f92
1 parent
de97f0eb
Exists in
master
and in
21 other branches
Added custom exception types for #201
Showing
3 changed files
with
8 additions
and
2 deletions
Show diff stats
lib/searchkick.rb
... | ... | @@ -13,6 +13,8 @@ require "searchkick/tasks" |
13 | 13 | require "searchkick/logging" if defined?(Rails) |
14 | 14 | |
15 | 15 | module Searchkick |
16 | + class MissingIndexError < StandardError; end | |
17 | + class UnsupportedVersionError < StandardError; end | |
16 | 18 | |
17 | 19 | def self.client |
18 | 20 | @client ||= Elasticsearch::Client.new(url: ENV["ELASTICSEARCH_URL"]) | ... | ... |
lib/searchkick/query.rb
... | ... | @@ -328,7 +328,7 @@ module Searchkick |
328 | 328 | rescue => e # TODO rescue type |
329 | 329 | status_code = e.message[1..3].to_i |
330 | 330 | if status_code == 404 |
331 | - raise "Index missing - run #{searchkick_klass.name}.reindex" | |
331 | + raise MissingIndexError, "Index missing - run #{searchkick_klass.name}.reindex" | |
332 | 332 | elsif status_code == 500 and ( |
333 | 333 | e.message.include?("IllegalArgumentException[minimumSimilarity >= 1]") or |
334 | 334 | e.message.include?("No query registered for [multi_match]") or |
... | ... | @@ -336,7 +336,7 @@ module Searchkick |
336 | 336 | e.message.include?("No query registered for [function_score]]") |
337 | 337 | ) |
338 | 338 | |
339 | - raise "This version of Searchkick requires Elasticsearch 0.90.4 or greater" | |
339 | + raise UnsupportedVersionError, "This version of Searchkick requires Elasticsearch 0.90.4 or greater" | |
340 | 340 | else |
341 | 341 | raise e |
342 | 342 | end | ... | ... |
test/index_test.rb
... | ... | @@ -41,6 +41,10 @@ class TestIndex < Minitest::Unit::TestCase |
41 | 41 | assert_search "product", ["Product B"] |
42 | 42 | end |
43 | 43 | |
44 | + def test_missing_index | |
45 | + assert_raises(Searchkick::MissingIndexError){ Product.search "test", index_name: "not_found" } | |
46 | + end | |
47 | + | |
44 | 48 | if defined?(ActiveRecord) |
45 | 49 | |
46 | 50 | def test_transaction | ... | ... |