pagy 43.2.3 → 43.2.5

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.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/apps/calendar.ru +5 -6
  3. data/apps/demo.ru +1 -1
  4. data/apps/enable_rails_page_segment.rb +6 -2
  5. data/apps/keynav+root_key.ru +4 -5
  6. data/apps/keynav.ru +6 -7
  7. data/apps/keyset.ru +3 -5
  8. data/apps/keyset_sequel.ru +3 -5
  9. data/apps/rails.ru +3 -4
  10. data/apps/repro.ru +5 -6
  11. data/config/pagy.rb +1 -1
  12. data/javascripts/pagy.js +2 -2
  13. data/javascripts/pagy.js.map +2 -2
  14. data/javascripts/pagy.min.js +1 -1
  15. data/javascripts/pagy.mjs +1 -1
  16. data/lib/pagy/classes/calendar/calendar.rb +31 -25
  17. data/lib/pagy/classes/calendar/unit.rb +7 -4
  18. data/lib/pagy/classes/exceptions.rb +1 -0
  19. data/lib/pagy/classes/keyset/adapters/active_record.rb +3 -1
  20. data/lib/pagy/classes/keyset/adapters/sequel.rb +3 -1
  21. data/lib/pagy/classes/keyset/keynav.rb +3 -0
  22. data/lib/pagy/classes/keyset/keyset.rb +13 -17
  23. data/lib/pagy/classes/offset/countless.rb +10 -3
  24. data/lib/pagy/classes/offset/offset.rb +6 -1
  25. data/lib/pagy/classes/request.rb +10 -7
  26. data/lib/pagy/modules/abilities/configurable.rb +1 -1
  27. data/lib/pagy/modules/abilities/countable.rb +1 -0
  28. data/lib/pagy/modules/abilities/linkable.rb +19 -12
  29. data/lib/pagy/modules/abilities/rangeable.rb +0 -1
  30. data/lib/pagy/modules/b64.rb +8 -2
  31. data/lib/pagy/modules/console.rb +15 -6
  32. data/lib/pagy/modules/i18n/i18n.rb +11 -4
  33. data/lib/pagy/modules/searcher.rb +8 -4
  34. data/lib/pagy/toolbox/helpers/data_hash.rb +1 -0
  35. data/lib/pagy/toolbox/helpers/headers_hash.rb +2 -1
  36. data/lib/pagy/toolbox/helpers/info_tag.rb +2 -0
  37. data/lib/pagy/toolbox/helpers/input_nav_js.rb +1 -0
  38. data/lib/pagy/toolbox/helpers/page_url.rb +1 -0
  39. data/lib/pagy/toolbox/helpers/series_nav.rb +1 -0
  40. data/lib/pagy/toolbox/helpers/series_nav_js.rb +1 -0
  41. data/lib/pagy/toolbox/helpers/support/a_lambda.rb +1 -1
  42. data/lib/pagy/toolbox/paginators/calendar.rb +9 -6
  43. data/lib/pagy/toolbox/paginators/countish.rb +6 -3
  44. data/lib/pagy/toolbox/paginators/countless.rb +5 -2
  45. data/lib/pagy/toolbox/paginators/elasticsearch_rails.rb +12 -6
  46. data/lib/pagy/toolbox/paginators/keynav_js.rb +5 -3
  47. data/lib/pagy/toolbox/paginators/keyset.rb +2 -1
  48. data/lib/pagy/toolbox/paginators/meilisearch.rb +10 -7
  49. data/lib/pagy/toolbox/paginators/method.rb +7 -5
  50. data/lib/pagy/toolbox/paginators/offset.rb +9 -2
  51. data/lib/pagy/toolbox/paginators/searchkick.rb +12 -9
  52. data/lib/pagy.rb +1 -1
  53. metadata +1 -1
@@ -11,8 +11,15 @@ class Pagy
11
11
  options[:page] ||= options[:request].resolve_page
12
12
  options[:limit] = options[:request].resolve_limit
13
13
  options[:count] ||= Countable.get_count(collection, options)
14
- pagy = Offset.new(**options)
15
- [pagy, collection.instance_of?(Array) ? collection[pagy.offset, pagy.limit] : pagy.records(collection)]
14
+
15
+ pagy = Offset.new(**options)
16
+ records = if collection.instance_of?(Array)
17
+ collection[pagy.offset, pagy.limit]
18
+ else
19
+ pagy.records(collection)
20
+ end
21
+
22
+ [pagy, records]
16
23
  end
17
24
  end
18
25
  end
@@ -8,22 +8,25 @@ class Pagy
8
8
 
9
9
  # Paginate from the search object
10
10
  def paginate(search, options)
11
- if search.is_a?(Search::Arguments)
12
- # The search is the array of pagy_search arguments
11
+ if search.is_a?(Search::Arguments) # Active mode
12
+
13
13
  Searcher.wrap(search, options) do
14
14
  model, term, search_options, block = search
15
- search_options[:per_page] = options[:limit]
16
- search_options[:page] = options[:page]
17
- results = model.send(options[:search_method] || Searchkick::DEFAULT[:search_method],
18
- term || '*', **search_options, &block)
19
- options[:count] = results.total_count
15
+ search_options[:per_page] = options[:limit]
16
+ search_options[:page] = options[:page]
17
+
18
+ method = options[:search_method] || Searchkick::DEFAULT[:search_method]
19
+ results = model.send(method, term || '*', **search_options, &block)
20
+ options[:count] = results.total_count
21
+
20
22
  [Searchkick.new(**options), results]
21
23
  end
22
- else
23
- # The search is a searchkick results object
24
+
25
+ else # Passive mode
24
26
  options[:limit] = search.respond_to?(:options) ? search.options[:per_page] : search.per_page
25
27
  options[:page] = search.respond_to?(:options) ? search.options[:page] : search.current_page
26
28
  options[:count] = search.total_count
29
+
27
30
  Searchkick.new(**options)
28
31
  end
29
32
  end
data/lib/pagy.rb CHANGED
@@ -8,7 +8,7 @@ require_relative 'pagy/toolbox/helpers/loader'
8
8
 
9
9
  # Top superclass: it defines only what's common to all the subclasses
10
10
  class Pagy
11
- VERSION = '43.2.3'
11
+ VERSION = '43.2.5'
12
12
  ROOT = Pathname.new(__dir__).parent.freeze
13
13
  DEFAULT = { limit: 20, limit_key: 'limit', page_key: 'page' }.freeze
14
14
  PAGE_TOKEN = EscapedValue.new('P ')
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pagy
3
3
  version: !ruby/object:Gem::Version
4
- version: 43.2.3
4
+ version: 43.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Domizio Demichelis