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