From 609478e17da099ac584a42f1d6cffdde77788398 Mon Sep 17 00:00:00 2001 From: Brad Lindsay Date: Tue, 14 Mar 2017 12:42:37 -0400 Subject: [PATCH] Add ability to inspect current value of per_page --- .../lib/kaminari/models/page_scope_methods.rb | 7 ++++++- .../test/models/active_record/scopes_test.rb | 14 ++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/kaminari-core/lib/kaminari/models/page_scope_methods.rb b/kaminari-core/lib/kaminari/models/page_scope_methods.rb index bca103d1f..1443cd3d5 100644 --- a/kaminari-core/lib/kaminari/models/page_scope_methods.rb +++ b/kaminari-core/lib/kaminari/models/page_scope_methods.rb @@ -19,7 +19,7 @@ def per(num, max_per_page: nil) def max_paginates_per(new_max_per_page) @_max_per_page = new_max_per_page - per ((defined?(@_per) && @_per) || default_per_page), max_per_page: new_max_per_page + per current_per_page, max_per_page: new_max_per_page end def padding(num) @@ -52,6 +52,11 @@ def current_page raise ZeroPerPageOperation, "Current page was incalculable. Perhaps you called .per(0)?" end + # Current per-page number + def current_per_page + (defined?(@_per) && @_per) || default_per_page + end + # Next page number in the collection def next_page current_page + 1 unless last_page? || out_of_range? diff --git a/kaminari-core/test/models/active_record/scopes_test.rb b/kaminari-core/test/models/active_record/scopes_test.rb index 3710145bf..e519f76f7 100644 --- a/kaminari-core/test/models/active_record/scopes_test.rb +++ b/kaminari-core/test/models/active_record/scopes_test.rb @@ -293,6 +293,20 @@ def shutdown end end + sub_test_case '#current_per_page' do + test 'per 0' do + assert_equal 0, model_class.page.per(0).current_per_page + end + + test 'no per specified' do + assert_equal model_class.default_per_page, model_class.page.current_per_page + end + + test 'per specified as 42' do + assert_equal 42, model_class.page.per(42).current_per_page + end + end + sub_test_case '#next_page' do test 'page 1' do assert_equal 2, model_class.page.next_page