pagy 3.4.0 → 3.4.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a00174d5d8af0760d883355ba8e77f9f9118954a7c6dec7e5e6e7ab503dcfde9
4
- data.tar.gz: 64a379d944f3b013e6b17ec8f899661346ac837780c028295e1916e796a1930e
3
+ metadata.gz: 6623351e17c1612e6a27f72491dc2dc3402550295f1d58b41f222de35195577a
4
+ data.tar.gz: 51127de303671a68cc3c219f4fa4423ae461a5281eca74e4aec71fa78aa53d3e
5
5
  SHA512:
6
- metadata.gz: 4d2d2d25d9df71c80de2786165ed678b82744ba617bad804beb8a56eb41011a239ad3d7ce96abfef80a4e6313f483edab43e9f9d331a161a4fead6f07675013d
7
- data.tar.gz: e4dba23f4e9fd2ccc1d77c1f8e0bcb00c3a3ba7b770126afd57eb7247a51168e0bcb2ba4ec4ebfb30e34eac97913099e79e2409225ddbcd72ba618f77fa20597
6
+ metadata.gz: 8385841d14b773eba91ee9bff068765698fa6b09736dc1dfdbfbd5bb8b6c022db58d495c8e0d7fc423ca5837f2543f9672c2594a7d8f271eb0fa4bbcfa6400aa
7
+ data.tar.gz: 7889d3d82b6928ed58c4a095e540d5c227619a0ab102eff77afb0ac93f481af25fe5513cba0d1cd54beda7a23cceb97ab83a17792f9610800edb53605cda7c70
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
  # frozen_string_literal: true
3
3
 
4
- # Pagy initializer file (3.4.0)
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
 
@@ -2,6 +2,8 @@
2
2
 
3
3
  function Pagy(){}
4
4
 
5
+ Pagy.version = '3.4.1';
6
+
5
7
  Pagy.init = function(arg){
6
8
  var target = arg instanceof Event || arg === undefined ? document : arg,
7
9
  jsonTags = target.getElementsByClassName('pagy-json');
@@ -4,7 +4,7 @@
4
4
 
5
5
  require 'pathname'
6
6
 
7
- class Pagy ; VERSION = '3.4.0'
7
+ class Pagy ; VERSION = '3.4.1'
8
8
 
9
9
  # Root pathname to get the path of Pagy files like templates or dictionaries
10
10
  def self.root; @root ||= Pathname.new(__FILE__).dirname.freeze end
@@ -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(search_args, vars={})
25
- model, query_or_payload, options, _block, *called = search_args
26
- vars = pagy_elasticsearch_rails_get_vars(nil, vars)
27
- options[:size] = vars[:items]
28
- options[:from] = vars[:items] * (vars[:page] - 1)
29
- response = model.search(query_or_payload, options)
30
- vars[:count] = response.raw_response['hits']['total']
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(search_args, vars.merge(page: pagy.page))
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
- def pagy_search(arg, options={}, &block)
11
- [self, arg, options, block].tap do |args|
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(search_args, vars={})
25
- model, term, options, block, *called = search_args
26
- vars = pagy_searchkick_get_vars(nil, vars)
27
- options[:per_page] = vars[:items]
28
- options[:page] = vars[:page]
29
- results = model.search(term, options, &block)
30
- vars[:count] = results.total_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(search_args, vars.merge(page: pagy.page))
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.0
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-15 00:00:00.000000000 Z
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,