next_page 0.1.7 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +2 -0
- data/lib/next_page/exceptions/invalid_nested_sort.rb +1 -4
- data/lib/next_page/exceptions/invalid_sort_parameter.rb +1 -4
- data/lib/next_page/pagination.rb +2 -2
- data/lib/next_page/pagination_attributes.rb +8 -4
- data/lib/next_page/sort/segment_parser.rb +1 -1
- data/lib/next_page/version.rb +1 -1
- metadata +30 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 816ed22df71f4838cfe99457bec6a62c2b0e01318436a1fa8f03eb927dfb8939
|
4
|
+
data.tar.gz: 170578dcc7f6ee852c461fb43597bc0d3a64231016c74498ad674da847296690
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 47b95e0134da9e2ff7032e35ca485d0da63fd2c84c8959833e7e1f6338879968d20458ed244553d60d9406a5880f4f8216ad8e5a218b047fcb27fdf113d65a51
|
7
|
+
data.tar.gz: 5860bb0ce08448a20625d051bdae952c45a04310a46b10de82d0a758cc0812b4b14e688a9d2732f68a2c11b973d99f08eaf59a7a8da283bf91788c96830fbf9c
|
data/README.md
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
[](https://badge.fury.io/rb/next_page)
|
2
|
+
[](https://github.com/RockSolt/next_page/actions/workflows/rspec.yml)
|
2
3
|
[](https://github.com/RockSolt/next_page/actions?query=workflow%3ARuboCop)
|
4
|
+
[](https://codeclimate.com/github/RockSolt/next_page/maintainability)
|
3
5
|
|
4
6
|
# NextPage
|
5
7
|
Basic pagination for Rails controllers.
|
@@ -7,10 +7,7 @@ module NextPage
|
|
7
7
|
def initialize(model, association)
|
8
8
|
@model = model
|
9
9
|
@association = association
|
10
|
-
|
11
|
-
|
12
|
-
def message
|
13
|
-
"Invalid nested sort: Unable to find association #{@association} on model #{@model}"
|
10
|
+
super("Invalid nested sort: Unable to find association #{@association} on model #{@model}")
|
14
11
|
end
|
15
12
|
end
|
16
13
|
end
|
@@ -6,10 +6,7 @@ module NextPage
|
|
6
6
|
class InvalidSortParameter < NextPage::Exceptions::NextPageError
|
7
7
|
def initialize(segment)
|
8
8
|
@segment = segment
|
9
|
-
|
10
|
-
|
11
|
-
def message
|
12
|
-
"Invalid sort parameter (#{@segment}). Must be an attribute or scope."
|
9
|
+
super("Invalid sort parameter (#{@segment}). Must be an attribute or scope.")
|
13
10
|
end
|
14
11
|
end
|
15
12
|
end
|
data/lib/next_page/pagination.rb
CHANGED
@@ -44,7 +44,7 @@ module NextPage
|
|
44
44
|
extend ActiveSupport::Concern
|
45
45
|
|
46
46
|
class_methods do
|
47
|
-
def next_page_paginator
|
47
|
+
def next_page_paginator # :nodoc:
|
48
48
|
@next_page_paginator ||= NextPage::Paginator.new(controller_name, controller_path)
|
49
49
|
end
|
50
50
|
|
@@ -68,7 +68,7 @@ module NextPage
|
|
68
68
|
self.class.next_page_paginator.paginate_resource(resource, params.slice(:page, :sort))
|
69
69
|
end
|
70
70
|
|
71
|
-
def render(*args)
|
71
|
+
def render(*args) # :nodoc:
|
72
72
|
return super unless action_name == 'index' && request.headers[:Accept] == 'application/vnd.api+json'
|
73
73
|
|
74
74
|
self.class.next_page_paginator.decorate_meta!(args.first)
|
@@ -3,8 +3,8 @@
|
|
3
3
|
module NextPage
|
4
4
|
# = Pagination Attributes
|
5
5
|
#
|
6
|
-
# Module PaginationAttributes adds in methods required for pagination links: current_page, next_page,
|
7
|
-
# It reads the offset and limit on the query to determine the values.
|
6
|
+
# Module PaginationAttributes adds in methods required for pagination links: previous_page, current_page, next_page,
|
7
|
+
# and total_pages. It reads the offset and limit on the query to determine the values.
|
8
8
|
#
|
9
9
|
# In some cases the query will not support count. In that case, there are two ways to override the default behavior:
|
10
10
|
# - provide a count_query that can resolve the attributes
|
@@ -12,12 +12,16 @@ module NextPage
|
|
12
12
|
module PaginationAttributes
|
13
13
|
attr_writer :count_query, :current_page, :total_count, :per_page
|
14
14
|
|
15
|
+
def previous_page
|
16
|
+
current_page > 1 ? current_page - 1 : nil
|
17
|
+
end
|
18
|
+
|
15
19
|
def current_page
|
16
|
-
@current_page ||= count_query.offset_value + 1
|
20
|
+
@current_page ||= (count_query.offset_value || 0) + 1
|
17
21
|
end
|
18
22
|
|
19
23
|
def next_page
|
20
|
-
current_page + 1
|
24
|
+
total_pages > current_page ? current_page + 1 : nil
|
21
25
|
end
|
22
26
|
|
23
27
|
def total_count
|
data/lib/next_page/version.rb
CHANGED
metadata
CHANGED
@@ -1,119 +1,127 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: next_page
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Todd Kummer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-01-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: 6.0.2
|
20
17
|
- - ">="
|
21
18
|
- !ruby/object:Gem::Version
|
22
|
-
version: 6.
|
19
|
+
version: 6.1.7
|
23
20
|
type: :runtime
|
24
21
|
prerelease: false
|
25
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 6.1.7
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: appraisal
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
26
30
|
requirements:
|
27
31
|
- - "~>"
|
28
32
|
- !ruby/object:Gem::Version
|
29
|
-
version:
|
30
|
-
|
33
|
+
version: 2.5.0
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
31
39
|
- !ruby/object:Gem::Version
|
32
|
-
version:
|
40
|
+
version: 2.5.0
|
33
41
|
- !ruby/object:Gem::Dependency
|
34
42
|
name: guard
|
35
43
|
requirement: !ruby/object:Gem::Requirement
|
36
44
|
requirements:
|
37
45
|
- - "~>"
|
38
46
|
- !ruby/object:Gem::Version
|
39
|
-
version:
|
47
|
+
version: 2.18.0
|
40
48
|
type: :development
|
41
49
|
prerelease: false
|
42
50
|
version_requirements: !ruby/object:Gem::Requirement
|
43
51
|
requirements:
|
44
52
|
- - "~>"
|
45
53
|
- !ruby/object:Gem::Version
|
46
|
-
version:
|
54
|
+
version: 2.18.0
|
47
55
|
- !ruby/object:Gem::Dependency
|
48
56
|
name: guard-rspec
|
49
57
|
requirement: !ruby/object:Gem::Requirement
|
50
58
|
requirements:
|
51
59
|
- - "~>"
|
52
60
|
- !ruby/object:Gem::Version
|
53
|
-
version:
|
61
|
+
version: 4.7.3
|
54
62
|
type: :development
|
55
63
|
prerelease: false
|
56
64
|
version_requirements: !ruby/object:Gem::Requirement
|
57
65
|
requirements:
|
58
66
|
- - "~>"
|
59
67
|
- !ruby/object:Gem::Version
|
60
|
-
version:
|
68
|
+
version: 4.7.3
|
61
69
|
- !ruby/object:Gem::Dependency
|
62
70
|
name: guard-rubocop
|
63
71
|
requirement: !ruby/object:Gem::Requirement
|
64
72
|
requirements:
|
65
73
|
- - "~>"
|
66
74
|
- !ruby/object:Gem::Version
|
67
|
-
version: 1.
|
75
|
+
version: 1.5.0
|
68
76
|
type: :development
|
69
77
|
prerelease: false
|
70
78
|
version_requirements: !ruby/object:Gem::Requirement
|
71
79
|
requirements:
|
72
80
|
- - "~>"
|
73
81
|
- !ruby/object:Gem::Version
|
74
|
-
version: 1.
|
82
|
+
version: 1.5.0
|
75
83
|
- !ruby/object:Gem::Dependency
|
76
84
|
name: pg
|
77
85
|
requirement: !ruby/object:Gem::Requirement
|
78
86
|
requirements:
|
79
87
|
- - "~>"
|
80
88
|
- !ruby/object:Gem::Version
|
81
|
-
version: 1.
|
89
|
+
version: 1.5.4
|
82
90
|
type: :development
|
83
91
|
prerelease: false
|
84
92
|
version_requirements: !ruby/object:Gem::Requirement
|
85
93
|
requirements:
|
86
94
|
- - "~>"
|
87
95
|
- !ruby/object:Gem::Version
|
88
|
-
version: 1.
|
96
|
+
version: 1.5.4
|
89
97
|
- !ruby/object:Gem::Dependency
|
90
98
|
name: rspec-rails
|
91
99
|
requirement: !ruby/object:Gem::Requirement
|
92
100
|
requirements:
|
93
101
|
- - "~>"
|
94
102
|
- !ruby/object:Gem::Version
|
95
|
-
version:
|
103
|
+
version: 5.1.2
|
96
104
|
type: :development
|
97
105
|
prerelease: false
|
98
106
|
version_requirements: !ruby/object:Gem::Requirement
|
99
107
|
requirements:
|
100
108
|
- - "~>"
|
101
109
|
- !ruby/object:Gem::Version
|
102
|
-
version:
|
110
|
+
version: 5.1.2
|
103
111
|
- !ruby/object:Gem::Dependency
|
104
112
|
name: rubocop
|
105
113
|
requirement: !ruby/object:Gem::Requirement
|
106
114
|
requirements:
|
107
115
|
- - "~>"
|
108
116
|
- !ruby/object:Gem::Version
|
109
|
-
version:
|
117
|
+
version: 1.60.1
|
110
118
|
type: :development
|
111
119
|
prerelease: false
|
112
120
|
version_requirements: !ruby/object:Gem::Requirement
|
113
121
|
requirements:
|
114
122
|
- - "~>"
|
115
123
|
- !ruby/object:Gem::Version
|
116
|
-
version:
|
124
|
+
version: 1.60.1
|
117
125
|
- !ruby/object:Gem::Dependency
|
118
126
|
name: simplecov
|
119
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -172,7 +180,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
172
180
|
- !ruby/object:Gem::Version
|
173
181
|
version: '0'
|
174
182
|
requirements: []
|
175
|
-
rubygems_version: 3.
|
183
|
+
rubygems_version: 3.4.17
|
176
184
|
signing_key:
|
177
185
|
specification_version: 4
|
178
186
|
summary: Pagination for Rails Controllers
|