pagy 3.4.0 → 3.4.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/config/pagy.rb +1 -1
- data/lib/javascripts/pagy.js +2 -0
- data/lib/pagy.rb +1 -1
- data/lib/pagy/extras/elasticsearch_rails.rb +8 -8
- data/lib/pagy/extras/pagy_search.rb +4 -2
- data/lib/pagy/extras/searchkick.rb +8 -8
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6623351e17c1612e6a27f72491dc2dc3402550295f1d58b41f222de35195577a
|
4
|
+
data.tar.gz: 51127de303671a68cc3c219f4fa4423ae461a5281eca74e4aec71fa78aa53d3e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8385841d14b773eba91ee9bff068765698fa6b09736dc1dfdbfbd5bb8b6c022db58d495c8e0d7fc423ca5837f2543f9672c2594a7d8f271eb0fa4bbcfa6400aa
|
7
|
+
data.tar.gz: 7889d3d82b6928ed58c4a095e540d5c227619a0ab102eff77afb0ac93f481af25fe5513cba0d1cd54beda7a23cceb97ab83a17792f9610800edb53605cda7c70
|
data/lib/config/pagy.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
|
-
# Pagy initializer file (3.4.
|
4
|
+
# Pagy initializer file (3.4.1)
|
5
5
|
# Customize only what you really need and notice that Pagy works also without any of the following lines.
|
6
6
|
# Should you just cherry pick part of this file, please maintain the require-order of the extras
|
7
7
|
|
data/lib/javascripts/pagy.js
CHANGED
data/lib/pagy.rb
CHANGED
@@ -21,17 +21,17 @@ class Pagy
|
|
21
21
|
module Backend ; private
|
22
22
|
|
23
23
|
# Return Pagy object and items
|
24
|
-
def pagy_elasticsearch_rails(
|
25
|
-
model,
|
26
|
-
vars
|
27
|
-
|
28
|
-
|
29
|
-
response
|
30
|
-
vars[:count]
|
24
|
+
def pagy_elasticsearch_rails(pagy_search_args, vars={})
|
25
|
+
model, search_args, _block, *called = pagy_search_args
|
26
|
+
vars = pagy_elasticsearch_rails_get_vars(nil, vars)
|
27
|
+
search_args[-1][:size] = vars[:items]
|
28
|
+
search_args[-1][:from] = vars[:items] * (vars[:page] - 1)
|
29
|
+
response = model.search(*search_args)
|
30
|
+
vars[:count] = response.raw_response['hits']['total']
|
31
31
|
pagy = Pagy.new(vars)
|
32
32
|
# with :last_page overflow we need to re-run the method in order to get the hits
|
33
33
|
if defined?(OVERFLOW) && pagy.overflow? && pagy.vars[:overflow] == :last_page
|
34
|
-
return pagy_elasticsearch_rails(
|
34
|
+
return pagy_elasticsearch_rails(pagy_search_args, vars.merge(page: pagy.page))
|
35
35
|
end
|
36
36
|
return pagy, called.empty? ? response : response.send(*called)
|
37
37
|
end
|
@@ -7,8 +7,10 @@ class Pagy
|
|
7
7
|
# returns an array used to delay the call of #search
|
8
8
|
# after the pagination variables are merged to the options
|
9
9
|
# it also pushes to the same array an eventually called method and arguments
|
10
|
-
|
11
|
-
|
10
|
+
# the last search argument must be a hash option
|
11
|
+
def pagy_search(*search_args, &block)
|
12
|
+
search_args << {} unless search_args[-1].is_a?(Hash)
|
13
|
+
[self, search_args, block].tap do |args|
|
12
14
|
args.define_singleton_method(:method_missing){|*a| args += a}
|
13
15
|
end
|
14
16
|
end
|
@@ -21,17 +21,17 @@ class Pagy
|
|
21
21
|
module Backend ; private
|
22
22
|
|
23
23
|
# Return Pagy object and results
|
24
|
-
def pagy_searchkick(
|
25
|
-
model,
|
26
|
-
vars
|
27
|
-
|
28
|
-
|
29
|
-
results
|
30
|
-
vars[:count]
|
24
|
+
def pagy_searchkick(pagy_search_args, vars={})
|
25
|
+
model, search_args, block, *called = pagy_search_args
|
26
|
+
vars = pagy_searchkick_get_vars(nil, vars)
|
27
|
+
search_args[-1][:per_page] = vars[:items]
|
28
|
+
search_args[-1][:page] = vars[:page]
|
29
|
+
results = model.search(*search_args, &block)
|
30
|
+
vars[:count] = results.total_count
|
31
31
|
pagy = Pagy.new(vars)
|
32
32
|
# with :last_page overflow we need to re-run the method in order to get the hits
|
33
33
|
if defined?(OVERFLOW) && pagy.overflow? && pagy.vars[:overflow] == :last_page
|
34
|
-
return pagy_searchkick(
|
34
|
+
return pagy_searchkick(pagy_search_args, vars.merge(page: pagy.page))
|
35
35
|
end
|
36
36
|
return pagy, called.empty? ? results : results.send(*called)
|
37
37
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pagy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.4.
|
4
|
+
version: 3.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Domizio Demichelis
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-07-
|
11
|
+
date: 2019-07-23 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: 'Agnostic pagination in plain ruby: it works with any framework, ORM
|
14
14
|
and DB type, with all kinds of collections, even pre-paginated, scopes, Arrays,
|