Commit 20f164ddaf7a9e4a0971bcbbf8d0354bb1830126

Authored by Andrew Kane
1 parent e829de29
Exists in relation

Added one? and many?

lib/searchkick/relation.rb
... ... @@ -9,7 +9,8 @@ module Searchkick
9 9 :took, :error, :model_name, :entry_name, :total_count, :total_entries,
10 10 :current_page, :per_page, :limit_value, :total_pages, :num_pages,
11 11 :offset_value, :previous_page, :prev_page, :next_page, :first_page?, :last_page?,
12   - :out_of_range?, :hits, :response, :to_a, :first, :highlights, :group_by, :misspellings?, :with_highlights
  12 + :out_of_range?, :hits, :response, :to_a, :first, :highlights, :group_by, :misspellings?, :with_highlights,
  13 + :one?, :many?
13 14  
14 15 def_delegators :query, :params
15 16  
... ...
lib/searchkick/results.rb
... ... @@ -197,6 +197,14 @@ module Searchkick
197 197 current_page > total_pages
198 198 end
199 199  
  200 + def one?
  201 + size == 1
  202 + end
  203 +
  204 + def many?
  205 + size > 1
  206 + end
  207 +
200 208 def hits
201 209 if error
202 210 raise Searchkick::Error, "Query error - use the error method to view it"
... ...
test/results_test.rb 0 → 100644
... ... @@ -0,0 +1,15 @@
  1 +require_relative "test_helper"
  2 +
  3 +class ResultsTest < Minitest::Test
  4 + def test_one
  5 + store_names ["Red", "Blue"]
  6 + assert !Product.search("*").one?
  7 + assert Product.search("blue").one?
  8 + end
  9 +
  10 + def test_many
  11 + store_names ["Red", "Blue"]
  12 + assert Product.search("*").many?
  13 + assert !Product.search("blue").many?
  14 + end
  15 +end
... ...