File tree Expand file tree Collapse file tree 4 files changed +19
-11
lines changed Expand file tree Collapse file tree 4 files changed +19
-11
lines changed Original file line number Diff line number Diff line change @@ -84,6 +84,13 @@ Link: <http://localhost:3000/movies?page=1>; rel="first">,
84
84
# ...
85
85
```
86
86
87
+ ## Testing
88
+
89
+ ``` bash
90
+ PAGINATOR=kaminari bundle exec rspec
91
+ PAGINATOR=will_paginate bundle exec rspec
92
+ ```
93
+
87
94
## Contributing
88
95
89
96
1 . Fork it
Original file line number Diff line number Diff line change 3
3
4
4
module ApiPagination
5
5
class << self
6
- attr_writer :kaminari
7
- attr_writer :will_paginate
8
-
9
- def kaminari? ( ) !!@kaminari end
10
- def will_paginate? ( ) !!@will_paginate end
6
+ attr_reader :paginator
11
7
12
8
def paginate ( collection , options = { } , &block )
13
9
options [ :page ] ||= 1
14
10
options [ :per_page ] ||= 10
15
11
16
- if ApiPagination . kaminari?
12
+ case ApiPagination . paginator
13
+ when :kaminari
17
14
collection . page ( options [ :page ] ) . per ( options [ :per_page ] ) . tap ( &block )
18
- elsif ApiPagination . will_paginate?
15
+ when : will_paginate
19
16
collection . paginate ( :page => options [ :page ] , :per_page => options [ :per_page ] ) . tap ( &block )
20
17
end
21
18
end
Original file line number Diff line number Diff line change @@ -26,12 +26,12 @@ def first_page?() !previous_page end
26
26
def last_page? ( ) !next_page end
27
27
end
28
28
29
- ApiPagination . will_paginate = true
29
+ ApiPagination . instance_variable_set ( :@paginator , :will_paginate )
30
30
end
31
31
32
32
begin ; require 'kaminari' ; rescue LoadError ; end
33
33
if defined? ( Kaminari )
34
- ApiPagination . kaminari = true
34
+ ApiPagination . instance_variable_set ( :@paginator , :kaminari )
35
35
end
36
36
37
37
STDERR . puts <<-EOC unless defined? ( Kaminari ) || defined? ( WillPaginate )
Original file line number Diff line number Diff line change @@ -26,8 +26,12 @@ def paginate(options = {})
26
26
end
27
27
end
28
28
29
- ApiPagination . kaminari = ENV [ 'PAGINATOR' ] == 'kaminari'
30
- ApiPagination . will_paginate = ENV [ 'PAGINATOR' ] == 'will_paginate'
29
+ if ENV [ 'PAGINATOR' ]
30
+ ApiPagination . instance_variable_set ( :@paginator , ENV [ 'PAGINATOR' ] . to_sym )
31
+ else
32
+ warn 'No PAGINATOR set. Defaulting to kaminari. To test against will_paginate, run `PAGINATOR=will_paginate bundle exec rspec`'
33
+ ApiPagination . instance_variable_set ( :@paginator , :kaminari )
34
+ end
31
35
32
36
RSpec . configure do |config |
33
37
config . include Rack ::Test ::Methods
You can’t perform that action at this time.
0 commit comments