From c42e01b18707cedc1143f2832ac165ba0c942f92 Mon Sep 17 00:00:00 2001 From: Andrew Kane Date: Sat, 10 May 2014 15:46:25 -0700 Subject: [PATCH] Added custom exception types for #201 --- lib/searchkick.rb | 2 ++ lib/searchkick/query.rb | 4 ++-- test/index_test.rb | 4 ++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/searchkick.rb b/lib/searchkick.rb index 490a62a..d42c0e8 100644 --- a/lib/searchkick.rb +++ b/lib/searchkick.rb @@ -13,6 +13,8 @@ require "searchkick/tasks" require "searchkick/logging" if defined?(Rails) module Searchkick + class MissingIndexError < StandardError; end + class UnsupportedVersionError < StandardError; end def self.client @client ||= Elasticsearch::Client.new(url: ENV["ELASTICSEARCH_URL"]) diff --git a/lib/searchkick/query.rb b/lib/searchkick/query.rb index 76cdd3e..0164c3e 100644 --- a/lib/searchkick/query.rb +++ b/lib/searchkick/query.rb @@ -328,7 +328,7 @@ module Searchkick rescue => e # TODO rescue type status_code = e.message[1..3].to_i if status_code == 404 - raise "Index missing - run #{searchkick_klass.name}.reindex" + raise MissingIndexError, "Index missing - run #{searchkick_klass.name}.reindex" elsif status_code == 500 and ( e.message.include?("IllegalArgumentException[minimumSimilarity >= 1]") or e.message.include?("No query registered for [multi_match]") or @@ -336,7 +336,7 @@ module Searchkick e.message.include?("No query registered for [function_score]]") ) - raise "This version of Searchkick requires Elasticsearch 0.90.4 or greater" + raise UnsupportedVersionError, "This version of Searchkick requires Elasticsearch 0.90.4 or greater" else raise e end diff --git a/test/index_test.rb b/test/index_test.rb index 33b9c08..9d1893f 100644 --- a/test/index_test.rb +++ b/test/index_test.rb @@ -41,6 +41,10 @@ class TestIndex < Minitest::Unit::TestCase assert_search "product", ["Product B"] end + def test_missing_index + assert_raises(Searchkick::MissingIndexError){ Product.search "test", index_name: "not_found" } + end + if defined?(ActiveRecord) def test_transaction -- libgit2 0.21.0