Skip to content

Commit 5f32e48

Browse files
Glauber Campinhokarmi
Glauber Campinho
authored andcommitted
[MODEL] Delegate max_pages method properly for Kaminari's next_page
Delegate `max_pages` to `Elasticsearch::Model::Response::Results` and `Elasticsearch::Model::Response::Response`, in order to Kaminari method `next_page` work Closes elastic#452
1 parent 8f905c5 commit 5f32e48

File tree

2 files changed

+46
-2
lines changed

2 files changed

+46
-2
lines changed

elasticsearch-model/lib/elasticsearch/model/response/pagination.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ def self.included(base)
2020
Elasticsearch::Model::Response::Results.__send__ :include, ::Kaminari::PageScopeMethods
2121
Elasticsearch::Model::Response::Records.__send__ :include, ::Kaminari::PageScopeMethods
2222

23-
Elasticsearch::Model::Response::Results.__send__ :delegate, :limit_value, :offset_value, :total_count, to: :response
24-
Elasticsearch::Model::Response::Records.__send__ :delegate, :limit_value, :offset_value, :total_count, to: :response
23+
Elasticsearch::Model::Response::Results.__send__ :delegate, :limit_value, :offset_value, :total_count, :max_pages, to: :response
24+
Elasticsearch::Model::Response::Records.__send__ :delegate, :limit_value, :offset_value, :total_count, :max_pages, to: :response
2525

2626
base.class_eval <<-RUBY, __FILE__, __LINE__ + 1
2727
# Define the `page` Kaminari method

elasticsearch-model/test/unit/response_pagination_kaminari_test.rb

+44
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,17 @@ def self.document_type; 'bar'; end
194194

195195
assert_equal 5, @response.page(5).results.current_page
196196
end
197+
198+
should "return previous page and next page" do
199+
assert_equal nil, @response.page(1).results.prev_page
200+
assert_equal 2, @response.page(1).results.next_page
201+
202+
assert_equal 3, @response.page(4).results.prev_page
203+
assert_equal nil, @response.page(4).results.next_page
204+
205+
assert_equal 2, @response.page(3).results.prev_page
206+
assert_equal 4, @response.page(3).results.next_page
207+
end
197208
end
198209

199210
context "records" do
@@ -207,6 +218,17 @@ def self.document_type; 'bar'; end
207218

208219
assert_equal 5, @response.page(5).records.current_page
209220
end
221+
222+
should "return previous page and next page" do
223+
assert_equal nil, @response.page(1).records.prev_page
224+
assert_equal 2, @response.page(1).records.next_page
225+
226+
assert_equal 3, @response.page(4).records.prev_page
227+
assert_equal nil, @response.page(4).records.next_page
228+
229+
assert_equal 2, @response.page(3).records.prev_page
230+
assert_equal 4, @response.page(3).records.next_page
231+
end
210232
end
211233
end
212234

@@ -371,6 +393,17 @@ def self.document_type; 'bar'; end
371393

372394
assert_equal 5, @response.page(5).results.current_page
373395
end
396+
397+
should "return previous page and next page" do
398+
assert_equal nil, @response.page(1).results.prev_page
399+
assert_equal 2, @response.page(1).results.next_page
400+
401+
assert_equal 3, @response.page(4).results.prev_page
402+
assert_equal nil, @response.page(4).results.next_page
403+
404+
assert_equal 2, @response.page(3).results.prev_page
405+
assert_equal 4, @response.page(3).results.next_page
406+
end
374407
end
375408

376409
context "records" do
@@ -384,6 +417,17 @@ def self.document_type; 'bar'; end
384417

385418
assert_equal 5, @response.page(5).records.current_page
386419
end
420+
421+
should "return previous page and next page" do
422+
assert_equal nil, @response.page(1).records.prev_page
423+
assert_equal 2, @response.page(1).records.next_page
424+
425+
assert_equal 3, @response.page(4).records.prev_page
426+
assert_equal nil, @response.page(4).records.next_page
427+
428+
assert_equal 2, @response.page(3).records.prev_page
429+
assert_equal 4, @response.page(3).records.next_page
430+
end
387431
end
388432
end
389433
end

0 commit comments

Comments
 (0)