wor-paginate 0.1.6 → 0.1.7
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 +5 -5
- data/CHANGELOG.md +6 -0
- data/Gemfile +1 -1
- data/README.md +12 -0
- data/lib/wor/paginate/adapters/active_record.rb +6 -4
- data/lib/wor/paginate/adapters/enumerable.rb +1 -1
- data/lib/wor/paginate/adapters/helpers/total_count.rb +17 -0
- data/lib/wor/paginate/adapters/will_paginate.rb +4 -4
- data/lib/wor/paginate/paginate.rb +5 -1
- data/lib/wor/paginate/version.rb +1 -1
- data/wor-paginate.gemspec +1 -1
- metadata +9 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 8dd511971868270eef7127d6f538cc172293f668
|
4
|
+
data.tar.gz: bf95f5b82639f6ebfc7fcfedf678d282e5156676
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 35e3fab61135534b3503248ea77a5a3ba42e1e98d738acda1fefb88c61ca030e05f18e7d0b617cd5282290cc0ee8e99135d75f38bb9b4e90e314ba111db36e33
|
7
|
+
data.tar.gz: d092291dba845fce0f0a21b1a5088124cc19f334fb84d21f6153433853c2ad8823df05ef4d94351047053fdd61de38a95230ceb9b27bda832a3bf09447851c39
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
## Change log
|
2
2
|
|
3
|
+
### V0.1.7
|
4
|
+
* [#61](https://github.com/Wolox/wor-paginate/pull/61) Allows requests on offset pages for enumerables - [@mtejedorwolox](https://github.com/mtejedorwolox).
|
5
|
+
* [#63](https://github.com/Wolox/wor-paginate/pull/63) Add max_limit with optional parameter - [@blacksam07](https://github.com/blacksam07).
|
6
|
+
* [#71](https://github.com/Wolox/wor-paginate/pull/71) Group by fix - [@mnmallea](https://github.com/mnmallea).
|
7
|
+
* [#82](https://github.com/Wolox/wor-paginate/pull/71) Rails 6 support - [@mnmallea](https://github.com/mnmallea).
|
8
|
+
|
3
9
|
### V0.1.6
|
4
10
|
* [#62](https://github.com/Wolox/wor-paginate/pull/62): Add options in active model serializer - [@blacksam07](https://github.com/blacksam07).
|
5
11
|
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -12,6 +12,7 @@ Wor::Paginate
|
|
12
12
|
- [Basic usage](#basic-usage)
|
13
13
|
- [Customizing output](#customizing-output)
|
14
14
|
- [Custom serializers](#custom-serializers)
|
15
|
+
- [Custom options](#custom-options)
|
15
16
|
- [Custom formatters](#custom-formatters)
|
16
17
|
- [Working with Kaminari or will_paginate](#working-with-kaminari-or-will_paginate)
|
17
18
|
- [Test helpers](#test-helpers)
|
@@ -105,11 +106,22 @@ render_paginated DummyModel, each_serializer: CustomDummyModelSerializer
|
|
105
106
|
where the serializer is just an [`ActiveModel::Serializer`](https://github.com/rails-api/active_model_serializers).
|
106
107
|
|
107
108
|
#### Custom options
|
109
|
+
##### max_limit
|
110
|
+
The max amount of items is passed through the `max_limit` option, You can set the value in the initializer or in the `render_paginated` method, (If none is supplied, take the default value configured in the initializer). Default is 50.
|
111
|
+
|
112
|
+
```ruby
|
113
|
+
render_paginated DummyModel, max_limit: 100
|
114
|
+
```
|
115
|
+
|
116
|
+
##### current_user
|
108
117
|
Using custom options in serializer, example method `current_user`
|
118
|
+
|
109
119
|
```ruby
|
110
120
|
render_paginated DummyModel, each_serializer: CustomDummyModelSerializer, current_user: current_user
|
111
121
|
```
|
122
|
+
|
112
123
|
In serializer
|
124
|
+
|
113
125
|
```ruby
|
114
126
|
class CustomSerializer < ActiveModel::Serializer
|
115
127
|
def method
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require_relative 'helpers/total_count'
|
2
|
+
|
1
3
|
# Used when render_paginated is called with an ActiveRecord directly, without a
|
2
4
|
# pagination gem like kaminari or will_paginate
|
3
5
|
### render_paginated DummyModel
|
@@ -5,6 +7,8 @@ module Wor
|
|
5
7
|
module Paginate
|
6
8
|
module Adapters
|
7
9
|
class ActiveRecord < Base
|
10
|
+
include Helpers::TotalCount
|
11
|
+
|
8
12
|
attr_reader :page
|
9
13
|
|
10
14
|
def required_methods
|
@@ -15,10 +19,8 @@ module Wor
|
|
15
19
|
@paginated_content ||= @content.offset(offset).limit(@limit)
|
16
20
|
end
|
17
21
|
|
18
|
-
|
19
|
-
|
20
|
-
def total_count
|
21
|
-
@content.count
|
22
|
+
def count
|
23
|
+
paginated_content.size
|
22
24
|
end
|
23
25
|
|
24
26
|
def total_pages
|
@@ -13,7 +13,7 @@ module Wor
|
|
13
13
|
def paginated_content
|
14
14
|
return @paginated_content if @paginated_content
|
15
15
|
content_array = @content.to_a
|
16
|
-
@paginated_content = content_array.slice((page - 1) * @limit, @limit)
|
16
|
+
@paginated_content = content_array.slice((page - 1) * @limit, @limit) || []
|
17
17
|
end
|
18
18
|
|
19
19
|
delegate :count, to: :paginated_content
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Wor
|
2
|
+
module Paginate
|
3
|
+
module Adapters
|
4
|
+
module Helpers
|
5
|
+
module TotalCount
|
6
|
+
def total_count
|
7
|
+
content = @content.reorder(nil)
|
8
|
+
content_size = content.size
|
9
|
+
return content.to_a.size if content_size.is_a? Hash
|
10
|
+
|
11
|
+
content_size
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require_relative 'helpers/total_count'
|
2
|
+
|
1
3
|
# Used when render_paginated is called with an ActiveModel directly, with will_paginate
|
2
4
|
# already required. Something like
|
3
5
|
### render_paginated DummyModel
|
@@ -5,6 +7,8 @@ module Wor
|
|
5
7
|
module Paginate
|
6
8
|
module Adapters
|
7
9
|
class WillPaginate < Base
|
10
|
+
include Helpers::TotalCount
|
11
|
+
|
8
12
|
attr_reader :page
|
9
13
|
|
10
14
|
def required_methods
|
@@ -19,10 +23,6 @@ module Wor
|
|
19
23
|
paginated_content.to_a.size
|
20
24
|
end
|
21
25
|
|
22
|
-
def total_count
|
23
|
-
paginated_content.count
|
24
|
-
end
|
25
|
-
|
26
26
|
delegate :total_pages, :next_page, to: :paginated_content
|
27
27
|
end
|
28
28
|
end
|
@@ -44,6 +44,10 @@ module Wor
|
|
44
44
|
options[:limit].to_i unless options[:limit].nil?
|
45
45
|
end
|
46
46
|
|
47
|
+
def option_max_limit(options)
|
48
|
+
options[:max_limit].to_i unless options[:max_limit].nil?
|
49
|
+
end
|
50
|
+
|
47
51
|
def param_limit
|
48
52
|
params[Config.per_page_param].to_i unless params[Config.per_page_param].nil?
|
49
53
|
end
|
@@ -54,7 +58,7 @@ module Wor
|
|
54
58
|
|
55
59
|
def limit(options)
|
56
60
|
[
|
57
|
-
Config.max_limit,
|
61
|
+
option_max_limit(options) || Config.max_limit,
|
58
62
|
option_limit(options) || param_limit || Config.default_per_page
|
59
63
|
].min
|
60
64
|
end
|
data/lib/wor/paginate/version.rb
CHANGED
data/wor-paginate.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wor-paginate
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- icoluccio
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2019-
|
14
|
+
date: 2019-10-31 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: railties
|
@@ -20,9 +20,9 @@ dependencies:
|
|
20
20
|
- - ">="
|
21
21
|
- !ruby/object:Gem::Version
|
22
22
|
version: 4.1.0
|
23
|
-
- - "
|
23
|
+
- - "<="
|
24
24
|
- !ruby/object:Gem::Version
|
25
|
-
version:
|
25
|
+
version: 6.0.0
|
26
26
|
type: :runtime
|
27
27
|
prerelease: false
|
28
28
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -30,9 +30,9 @@ dependencies:
|
|
30
30
|
- - ">="
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: 4.1.0
|
33
|
-
- - "
|
33
|
+
- - "<="
|
34
34
|
- !ruby/object:Gem::Version
|
35
|
-
version:
|
35
|
+
version: 6.0.0
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rails
|
38
38
|
requirement: !ruby/object:Gem::Requirement
|
@@ -74,6 +74,7 @@ files:
|
|
74
74
|
- lib/wor/paginate/adapters/active_record.rb
|
75
75
|
- lib/wor/paginate/adapters/base.rb
|
76
76
|
- lib/wor/paginate/adapters/enumerable.rb
|
77
|
+
- lib/wor/paginate/adapters/helpers/total_count.rb
|
77
78
|
- lib/wor/paginate/adapters/kaminari.rb
|
78
79
|
- lib/wor/paginate/adapters/kaminari_already_paginated.rb
|
79
80
|
- lib/wor/paginate/adapters/will_paginate.rb
|
@@ -107,7 +108,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
107
108
|
- !ruby/object:Gem::Version
|
108
109
|
version: '0'
|
109
110
|
requirements: []
|
110
|
-
|
111
|
+
rubyforge_project:
|
112
|
+
rubygems_version: 2.5.2.1
|
111
113
|
signing_key:
|
112
114
|
specification_version: 4
|
113
115
|
summary: Simplified pagination for Rails API controllers
|