bridgetown-paginate 0.21.1 → 1.0.0.alpha1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 73658b671ce99dcb98aaac7ed5cae7b2d00be40cba39cdfb5c2736a802028c05
4
- data.tar.gz: 49a274756b395c33b7645420de58d1bf9ae2192021937b8b47253d295d231d09
3
+ metadata.gz: 1503605e813afc4d2b3fa331033a8a2f6a41066a88cf83432eb065e93c5fbdb0
4
+ data.tar.gz: e8078cbed32a2d3b6af6044dae34944d4019935865edda9d222fb03779296c79
5
5
  SHA512:
6
- metadata.gz: 0cc12d7f28da3ebe4fd35564d747e5d0c23ab85e5694bfd62e813448207824cf37de3a9c2180ea5430975e3df7ff2de94b65b9d36246fb070ae63c82fa5ef1db
7
- data.tar.gz: 83e2e18c1b007f730fc8e8e984ed9b831f84866a413672c6c2986be4cd34af754acb32d2cbda78188aee29ceafd42a283f14c7c6cc5b82cf763b167b6dd36378
6
+ metadata.gz: 3e5fd22e0b2f291ea3be6921134fce48d384b39163b08dfc5f8b63ddc8ba0ca531e44db48b7919bce5c2db2c7799240f5dd19eea309e7962cb83d106be0d9282
7
+ data.tar.gz: 5fefc5e0d4384942edaabac5b26fa97abd260e47b42abc61c0ec6686f92624dceb802e0833058a4208e4470d3383a8ab5914d6c3e5a9018fa0c8f77c238762ca
@@ -8,7 +8,7 @@ Gem::Specification.new do |spec|
8
8
  spec.author = "Bridgetown Team"
9
9
  spec.email = "maintainers@bridgetownrb.com"
10
10
  spec.summary = "A Bridgetown plugin to add pagination support for posts and collection indices."
11
- spec.homepage = "https://github.com/bridgetownrb/bridgetown/tree/master/bridgetown-paginate"
11
+ spec.homepage = "https://github.com/bridgetownrb/bridgetown/tree/main/bridgetown-paginate"
12
12
  spec.license = "MIT"
13
13
 
14
14
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r!^(test|script|spec|features)/!) }
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  # Handles Generated Pages
4
- Bridgetown::Hooks.register :pages, :post_init, reloadable: false do |page|
4
+ Bridgetown::Hooks.register :generated_pages, :post_init, reloadable: false do |page|
5
5
  if page.class != Bridgetown::Paginate::PaginationPage &&
6
6
  page.site.config.dig("pagination", "enabled")
7
7
  data = page.data.with_dot_access
@@ -32,7 +32,6 @@ module Bridgetown
32
32
  DEFAULT,
33
33
  site.config["pagination"] || {}
34
34
  )
35
- default_config["collection"] = "posts" unless site.uses_resource?
36
35
 
37
36
  # If disabled then simply quit
38
37
  unless default_config["enabled"]
@@ -44,7 +43,7 @@ module Bridgetown
44
43
  Bridgetown.logger.debug "Pagination:", "Starting"
45
44
 
46
45
  # Get all matching pages in the site found by the init hooks, and ensure they're
47
- # still in the site.pages array
46
+ # still in the site.generated_pages array
48
47
  templates = self.class.matching_templates.select do |page|
49
48
  site.generated_pages.include?(page) || site.resources.include?(page)
50
49
  end
@@ -96,7 +95,7 @@ module Bridgetown
96
95
  if page_to_remove.is_a?(Bridgetown::Resource::Base)
97
96
  page_to_remove.collection.resources.delete(page_to_remove)
98
97
  else
99
- site.pages.delete(page_to_remove)
98
+ site.generated_pages.delete(page_to_remove)
100
99
  end
101
100
  end
102
101
 
@@ -12,7 +12,7 @@ module Bridgetown
12
12
  @logging_lambda = nil
13
13
  # The lambda used to create pages and add them to the site
14
14
  @page_add_lambda = nil
15
- # Lambda to remove a page from the site.pages collection
15
+ # Lambda to remove a page
16
16
  @page_remove_lambda = nil
17
17
  # Lambda to get all documents/posts in a particular collection (by name)
18
18
  @collection_by_name_lambda = nil
@@ -50,13 +50,18 @@ module Bridgetown
50
50
  template_config = Bridgetown::Utils.deep_merge_hashes(
51
51
  default_config,
52
52
  template.data["pagination"] || template.data["paginate"] || {}
53
- )
53
+ ).tap do |config|
54
+ config["collection"] = config["collection"].to_s if config["collection"].is_a?(Symbol)
55
+ config["category"] = config["category"].to_s if config["category"].is_a?(Symbol)
56
+ config["tag"] = config["tag"].to_s if config["tag"].is_a?(Symbol)
57
+ config["locale"] = config["locale"].to_s if config["locale"].is_a?(Symbol)
58
+ end
54
59
 
55
60
  # Is debugging enabled on the page level
56
61
  @debug = template_config["debug"]
57
62
  _debug_print_config_info(template_config, template.path)
58
63
 
59
- next if template_config["enabled"] == false
64
+ next unless template_config["enabled"]
60
65
 
61
66
  @logging_lambda.call "found page: " + template.path, "debug" unless @debug
62
67
 
@@ -340,13 +345,14 @@ module Bridgetown
340
345
  else
341
346
  template.dir
342
347
  end
343
- first_index_page_url = Utils.ensure_trailing_slash(first_index_page_url)
348
+ first_index_page_url = Utils.ensure_trailing_slash(
349
+ Utils.remove_double_slash(first_index_page_url)
350
+ )
344
351
  paginated_page_url = File.join(first_index_page_url, paginated_page_url)
345
352
 
346
353
  # 3. Create the paginator logic for this page, pass in the prev and next
347
354
  # page numbers, assign paginator to in-memory page
348
- # TODO: remove .pager by v1.0, deprecated
349
- newpage.paginator = newpage.pager = Paginator.new(
355
+ newpage.paginator = Paginator.new(
350
356
  config["per_page"],
351
357
  first_index_page_url,
352
358
  paginated_page_url,
@@ -17,9 +17,8 @@ module Bridgetown
17
17
  @url = ""
18
18
  @name = index_pageandext.nil? ? "index#{template_ext}" : index_pageandext
19
19
  @path = page_to_copy.path
20
-
21
- # Creates the basename and ext member values
22
- process(@name)
20
+ @basename = File.basename(@path, ".*")
21
+ @ext = File.extname(@name)
23
22
 
24
23
  # Only need to copy the data part of the page as it already contains the
25
24
  # layout information
@@ -29,11 +28,7 @@ module Bridgetown
29
28
  # Store the current page and total page numbers in the pagination_info construct
30
29
  data["pagination_info"] = { "curr_page" => cur_page_nr, "total_pages" => total_pages }
31
30
 
32
- # Perform some validation that is also performed in Bridgetown::Page
33
- validate_data! page_to_copy.path
34
- validate_permalink! page_to_copy.path
35
-
36
- Bridgetown::Hooks.trigger :pages, :post_init, self
31
+ Bridgetown::Hooks.trigger :generated_pages, :post_init, self
37
32
  end
38
33
 
39
34
  # rubocop:disable Naming/AccessorMethodName
@@ -36,9 +36,8 @@ module Bridgetown
36
36
  # If the input already has a dot in position zero, it will be
37
37
  # returned unchanged.
38
38
  #
39
- # path - a String path
40
- #
41
- # Returns the path with a leading slash
39
+ # @param path [String]
40
+ # @return [String] the path with a leading slash
42
41
  def self.ensure_leading_dot(path)
43
42
  path[0..0] == "." ? path : ".#{path}"
44
43
  end
@@ -47,29 +46,26 @@ module Bridgetown
47
46
  # If the input already has a forward slash in position zero, it will be
48
47
  # returned unchanged.
49
48
  #
50
- # path - a String path
51
- #
52
- # Returns the path with a leading slash
49
+ # @param path [String]
50
+ # @return [String] the path with a leading slash
53
51
  def self.ensure_leading_slash(path)
54
52
  path[0..0] == "/" ? path : "/#{path}"
55
53
  end
56
54
 
57
- # Static: Return a String version of the input without a leading slash.
55
+ # Static: Return a String version of the input with only one leading slash.
58
56
  #
59
- # path - a String path
60
- #
61
- # Returns the input without the leading slash
62
- def self.remove_leading_slash(path)
63
- path[0..0] == "/" ? path[1..-1] : path
57
+ # @param path [String]
58
+ # @return [String] the input without the leading slash
59
+ def self.remove_double_slash(path)
60
+ path[0..1] == "//" ? path[1..-1] : path
64
61
  end
65
62
 
66
63
  # Static: Return a String version of the input which has a trailing slash.
67
64
  # If the input already has a forward slash at the end, it will be
68
65
  # returned unchanged.
69
66
  #
70
- # path - a String path
71
- #
72
- # Returns the path with a trailing slash
67
+ # @param path [String]
68
+ # @return [String] the path with a trailing slash
73
69
  def self.ensure_trailing_slash(path)
74
70
  path[-1] == "/" ? path : "#{path}/"
75
71
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bridgetown-paginate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.21.1
4
+ version: 1.0.0.alpha1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bridgetown Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-07-19 00:00:00.000000000 Z
11
+ date: 2021-10-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bridgetown-core
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 0.21.1
19
+ version: 1.0.0.alpha1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 0.21.1
26
+ version: 1.0.0.alpha1
27
27
  description:
28
28
  email: maintainers@bridgetownrb.com
29
29
  executables: []
@@ -42,7 +42,7 @@ files:
42
42
  - lib/bridgetown-paginate/pagination_page.rb
43
43
  - lib/bridgetown-paginate/paginator.rb
44
44
  - lib/bridgetown-paginate/utils.rb
45
- homepage: https://github.com/bridgetownrb/bridgetown/tree/master/bridgetown-paginate
45
+ homepage: https://github.com/bridgetownrb/bridgetown/tree/main/bridgetown-paginate
46
46
  licenses:
47
47
  - MIT
48
48
  metadata: {}
@@ -57,9 +57,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
57
57
  version: '0'
58
58
  required_rubygems_version: !ruby/object:Gem::Requirement
59
59
  requirements:
60
- - - ">="
60
+ - - ">"
61
61
  - !ruby/object:Gem::Version
62
- version: '0'
62
+ version: 1.3.1
63
63
  requirements: []
64
64
  rubygems_version: 3.1.4
65
65
  signing_key: