Skip to content

Commit 28ec028

Browse files
committed
Merge pull request #45 from LcpMarvel/paginate_array_behaviour
Keep former behaviour for Kaminari.paginate_array
2 parents a70ac6f + b3b6148 commit 28ec028

File tree

2 files changed

+33
-3
lines changed

2 files changed

+33
-3
lines changed

lib/api-pagination.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ def paginate(collection, options = {})
1010

1111
case ApiPagination.config.paginator
1212
when :kaminari
13-
paginate_with_kaminari(collection, options)
13+
paginate_with_kaminari(collection, options, options[:paginate_array_options] || {})
1414
when :will_paginate
1515
paginate_with_will_paginate(collection, options)
1616
else
@@ -56,14 +56,14 @@ def total_header
5656

5757
private
5858

59-
def paginate_with_kaminari(collection, options)
59+
def paginate_with_kaminari(collection, options, paginate_array_options = {})
6060
if Kaminari.config.max_per_page && options[:per_page] > Kaminari.config.max_per_page
6161
options[:per_page] = Kaminari.config.max_per_page
6262
elsif options[:per_page] <= 0
6363
options[:per_page] = Kaminari.config.default_per_page
6464
end
6565

66-
collection = Kaminari.paginate_array(collection) if collection.is_a?(Array)
66+
collection = Kaminari.paginate_array(collection, paginate_array_options) if collection.is_a?(Array)
6767
collection.page(options[:page]).per(options[:per_page])
6868
end
6969

spec/api-pagination_spec.rb

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
require 'spec_helper'
2+
3+
describe ApiPagination do
4+
let(:collection) { (1..100).to_a }
5+
let(:paginate_array_options) { { total_count: 1000 } }
6+
7+
context 'Using kaminari' do
8+
before do
9+
ApiPagination.config.paginator = :kaminari
10+
end
11+
12+
after do
13+
ApiPagination.config.paginator = ENV['PAGINATOR'].to_sym
14+
end
15+
16+
it 'should accept paginate_array_options option' do
17+
expect(Kaminari).to receive(:paginate_array)
18+
.with(collection, paginate_array_options)
19+
.and_call_original
20+
21+
ApiPagination.paginate(
22+
collection,
23+
{
24+
per_page: 30,
25+
paginate_array_options: paginate_array_options
26+
}
27+
)
28+
end
29+
end
30+
end

0 commit comments

Comments
 (0)