From 11d740c4dd78c4a9d7e432e4ff7e767aa9ca2be3 Mon Sep 17 00:00:00 2001 From: Andrew Kane Date: Sun, 27 Feb 2022 13:49:02 -0800 Subject: [PATCH] Added only and except methods on relation --- lib/searchkick/relation.rb | 8 ++++++++ test/pagination_test.rb | 8 ++++++++ 2 files changed, 16 insertions(+), 0 deletions(-) diff --git a/lib/searchkick/relation.rb b/lib/searchkick/relation.rb index 9d4586e..072c953 100644 --- a/lib/searchkick/relation.rb +++ b/lib/searchkick/relation.rb @@ -80,6 +80,14 @@ module Searchkick self end + def only(*keys) + Relation.new(@model, @term, **@options.slice(*keys)) + end + + def except(*keys) + Relation.new(@model, @term, **@options.except(*keys)) + end + def loaded? !@execute.nil? end diff --git a/test/pagination_test.rb b/test/pagination_test.rb index e6b8d63..36fb531 100644 --- a/test/pagination_test.rb +++ b/test/pagination_test.rb @@ -29,6 +29,14 @@ class PaginationTest < Minitest::Test assert_equal 10000, products.limit_value end + def test_limit_relation_only + assert_equal 10, Product.search("*").limit(10).only(:limit).limit_value + end + + def test_limit_relation_except + assert_equal 10000, Product.search("*").limit(10).except(:limit).limit_value + end + def test_no_limit names = 20.times.map { |i| "Product #{i}" } store_names names -- libgit2 0.21.0