krunaldo-dm-pagination 0.2.0.0 → 0.3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/dm-pagination/pagination.rb +11 -4
- metadata +1 -1
@@ -3,20 +3,27 @@ module DmPagination
|
|
3
3
|
def initialize(collection, options)
|
4
4
|
@page = (options[:page] || 1).to_i
|
5
5
|
@per_page = (options[:per_page] || 10).to_i
|
6
|
+
@reverse = true if options[:reverse]
|
6
7
|
@proxy_collection = collection
|
8
|
+
@offset = offset
|
9
|
+
@num_pages = (@proxy_collection.count + @per_page - 1) / @per_page
|
7
10
|
@collection = collection.all(
|
8
|
-
:offset =>
|
9
|
-
@num_pages = num_pages
|
11
|
+
:offset => @offset , :limit => @per_page)
|
10
12
|
end
|
11
13
|
|
12
14
|
def page
|
13
15
|
@page
|
14
16
|
end
|
15
17
|
|
16
|
-
def
|
17
|
-
|
18
|
+
def offset
|
19
|
+
if @reverse
|
20
|
+
(@page - @numpages)*@per_page
|
21
|
+
else
|
22
|
+
(@page - 1)*@per_page
|
23
|
+
end
|
18
24
|
end
|
19
25
|
|
26
|
+
|
20
27
|
def pages(window = 5, left = 2, right = 2)
|
21
28
|
return [] if @num_pages <= 1
|
22
29
|
(1..@num_pages).inject([]) do |result, i|
|