Commit 8a0303c5802ecc0ed82424b6e437e67a009a2da8
1 parent
9bbbe73c
Exists in
master
Fixed respond_to? method on relation loading relation - #1395
Showing
3 changed files
with
14 additions
and
0 deletions
Show diff stats
CHANGELOG.md
@@ -2,6 +2,7 @@ | @@ -2,6 +2,7 @@ | ||
2 | 2 | ||
3 | - Added `model` method to `Searchkick::Relation` | 3 | - Added `model` method to `Searchkick::Relation` |
4 | - Fixed deprecation warning with `redis` gem | 4 | - Fixed deprecation warning with `redis` gem |
5 | +- Fixed `respond_to?` method on relation loading relation | ||
5 | 6 | ||
6 | ## 5.0.4 (2022-06-16) | 7 | ## 5.0.4 (2022-06-16) |
7 | 8 |
lib/searchkick/relation.rb
@@ -202,6 +202,10 @@ module Searchkick | @@ -202,6 +202,10 @@ module Searchkick | ||
202 | !@execute.nil? | 202 | !@execute.nil? |
203 | end | 203 | end |
204 | 204 | ||
205 | + def respond_to_missing?(method_name, include_all) | ||
206 | + Results.new(nil, nil, nil).respond_to?(method_name, include_all) || super | ||
207 | + end | ||
208 | + | ||
205 | # TODO uncomment in 6.0 | 209 | # TODO uncomment in 6.0 |
206 | # def to_yaml | 210 | # def to_yaml |
207 | # private_execute.to_a.to_yaml | 211 | # private_execute.to_a.to_yaml |
test/relation_test.rb
@@ -44,6 +44,15 @@ class RelationTest < Minitest::Test | @@ -44,6 +44,15 @@ class RelationTest < Minitest::Test | ||
44 | assert_nil Searchkick.search("product").klass | 44 | assert_nil Searchkick.search("product").klass |
45 | end | 45 | end |
46 | 46 | ||
47 | + def test_respond_to | ||
48 | + relation = Product.search("product") | ||
49 | + assert relation.respond_to?(:page) | ||
50 | + assert relation.respond_to?(:response) | ||
51 | + assert relation.respond_to?(:size) | ||
52 | + refute relation.respond_to?(:hello) | ||
53 | + refute relation.loaded? | ||
54 | + end | ||
55 | + | ||
47 | # TODO uncomment in 6.0 | 56 | # TODO uncomment in 6.0 |
48 | # def test_to_yaml | 57 | # def test_to_yaml |
49 | # store_names ["Product A", "Product B"] | 58 | # store_names ["Product A", "Product B"] |