upfluence-utils 0.5.3 → 0.5.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/upfluence/mixin/pagination.rb +49 -0
- data/lib/upfluence/utils/version.rb +1 -1
- data/lib/upfluence.rb +1 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b42ff65b79072c564698ec7f15c5cc694c1a4be2
|
4
|
+
data.tar.gz: bb62cd9764342fa00af912495619ead34146f1af
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 93c6a64b85019e0580d087e73cbd1652d6de4a57f0e8d79726081a46565543a060dff9fac09014d30e6346e42e1275ebb46da5fa4f56d7ef022c5165284c2a88
|
7
|
+
data.tar.gz: 6446cd0f0ba8fd2bac641f805f57d8f8432614766ed2ee2f46bbde04dde5dd3647c89e1607d5a16619b40621f25677e4493d5808cba1424f015dcc264fcf0a6c
|
@@ -0,0 +1,49 @@
|
|
1
|
+
module Upfluence
|
2
|
+
module Mixin
|
3
|
+
module Pagination
|
4
|
+
DEFAULT_PAGE = 1
|
5
|
+
DEFAULT_PER_PAGE = 12
|
6
|
+
|
7
|
+
def paginated_model
|
8
|
+
raise NotImplementedError
|
9
|
+
end
|
10
|
+
|
11
|
+
def paginated_entities
|
12
|
+
@paginated_entities ||= paginated_model.limit(per_page).offset(
|
13
|
+
(page - 1) * per_page
|
14
|
+
).to_a
|
15
|
+
end
|
16
|
+
|
17
|
+
def paginated_entities=(v)
|
18
|
+
@paginated_entities = v
|
19
|
+
end
|
20
|
+
|
21
|
+
def paginated_total
|
22
|
+
paginated_model.count
|
23
|
+
end
|
24
|
+
|
25
|
+
def page
|
26
|
+
[params[:page].to_i, DEFAULT_PAGE].max
|
27
|
+
end
|
28
|
+
|
29
|
+
def per_page
|
30
|
+
[
|
31
|
+
params[:per_page].to_i,
|
32
|
+
methods.include?(:default_per_page) ? default_per_page : DEFAULT_PER_PAGE
|
33
|
+
].max
|
34
|
+
end
|
35
|
+
|
36
|
+
def respond_with_pagination(args = {})
|
37
|
+
respond_with(
|
38
|
+
args[:payload] || paginated_entities,
|
39
|
+
args.merge(
|
40
|
+
meta: {
|
41
|
+
total: paginated_total,
|
42
|
+
total_pages: (paginated_total.to_f / per_page.to_f).ceil
|
43
|
+
}
|
44
|
+
) { |_, x, y| x.merge(y) }
|
45
|
+
)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
data/lib/upfluence.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: upfluence-utils
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Upfluence
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-05-
|
11
|
+
date: 2018-05-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -259,6 +259,7 @@ files:
|
|
259
259
|
- lib/upfluence/http/middleware/prometheus.rb
|
260
260
|
- lib/upfluence/http/server.rb
|
261
261
|
- lib/upfluence/logger.rb
|
262
|
+
- lib/upfluence/mixin/pagination.rb
|
262
263
|
- lib/upfluence/mixin/strong_parameters.rb
|
263
264
|
- lib/upfluence/pool.rb
|
264
265
|
- lib/upfluence/utils.rb
|