jekyll-github-metadata 2.12.0 → 2.14.0

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: db796ded361fa761e1733d72440324b1d87ca74026fff300dd8b7322735e6529
4
- data.tar.gz: fa94f023f861ce9daf7af80b60d78c25f2aa14ef488694d1f53ebf0dcdd487c5
3
+ metadata.gz: 0aa9b80b06e98d57d4a18a9952b633e26bdd18743300b2a060fdf49ab9fd76a5
4
+ data.tar.gz: 750dc7e1fd1da0527ffe369bc6abd3b12170900ae3a7db30e041b35712ebe163
5
5
  SHA512:
6
- metadata.gz: 1982de628a9bf0c1282ab53fec061bfbd9b32e234cddec0b4029a0c968b0a5b3becf9023e5e649be747e6fe6d6bc89ef081720dfd89797146116676ed6784c7d
7
- data.tar.gz: 30038f99fd37bb5cbccf2ec6b64faababba9d8695c6bbf1f11a3e573fc488adc90275ea6d07d336477e1f376e81b81c3244d9be3eb099767e08710603c64d379
6
+ metadata.gz: 3768bf00efd6d4455c739cc84fe0e553c5569eb2548f1608845dd3cf8ca203bb83d47be001987152acd64d63962587c8d4748fa4bae9006b5a2a98963210c092
7
+ data.tar.gz: 62bfca12e088100b09b0343391cf2750778415062a9b2ef1da7cc4390ef56fa8b13ac60347bc37a891d504738ac6bce6a160b5ba5f680bd09bb792ce5dbe92bf
@@ -68,6 +68,15 @@ module Jekyll
68
68
  end
69
69
  end
70
70
 
71
+ # NOTE: Faraday's error classes has been promoted to under Faraday module from v1.0.0.
72
+ # This patch aims to prevent on locking specific version of Faraday.
73
+ FARADAY_FAILED_CONNECTION =
74
+ begin
75
+ Faraday::Error::ConnectionFailed
76
+ rescue NameError
77
+ Faraday::ConnectionFailed
78
+ end
79
+
71
80
  def save_from_errors(default = false)
72
81
  unless internet_connected?
73
82
  GitHubMetadata.log :warn, "No internet connection. GitHub metadata may be missing or incorrect."
@@ -77,7 +86,7 @@ module Jekyll
77
86
  yield @client
78
87
  rescue Octokit::Unauthorized
79
88
  raise BadCredentialsError, "The GitHub API credentials you provided aren't valid."
80
- rescue Faraday::Error::ConnectionFailed, Octokit::TooManyRequests => e
89
+ rescue FARADAY_FAILED_CONNECTION, Octokit::TooManyRequests => e
81
90
  GitHubMetadata.log :warn, e.message
82
91
  default
83
92
  rescue Octokit::NotFound
@@ -69,19 +69,40 @@ module Jekyll
69
69
  end
70
70
 
71
71
  def parts
72
- @parts ||= [repository_url, "edit/", branch, source_path, page_path]
72
+ memoize_conditionally { [repository_url, "edit/", branch, source_path, page_path] }
73
73
  end
74
74
 
75
75
  def parts_normalized
76
- @parts_normalized ||= parts.map.with_index do |part, index|
77
- part = remove_leading_slash(part.to_s)
78
- part = ensure_trailing_slash(part) unless index == parts.length - 1
79
- ensure_not_just_a_slash(part)
76
+ memoize_conditionally do
77
+ parts.map.with_index do |part, index|
78
+ part = remove_leading_slash(part.to_s)
79
+ part = ensure_trailing_slash(part) unless index == parts.length - 1
80
+ ensure_not_just_a_slash(part)
81
+ end
80
82
  end
81
83
  end
82
84
 
83
85
  def page
84
- @page ||= context.registers[:page]
86
+ memoize_conditionally { context.registers[:page] }
87
+ end
88
+
89
+ # Utility function for compatibility with Jekyll 4.0
90
+ def memoize_conditionally
91
+ if renderer_cached?
92
+ yield
93
+ else
94
+ dispatcher = "@#{caller_locations(1..1).first.label}".to_sym
95
+ if instance_variable_defined?(dispatcher)
96
+ instance_variable_get(dispatcher)
97
+ else
98
+ instance_variable_set(dispatcher, yield)
99
+ end
100
+ end
101
+ end
102
+
103
+ # Utility function to detect Jekyll 4.0
104
+ def renderer_cached?
105
+ @renderer_cached ||= context.registers[:site].liquid_renderer.respond_to?(:cache)
85
106
  end
86
107
 
87
108
  def site
@@ -14,7 +14,7 @@ module Jekyll
14
14
  alias_method :invoke_drop, :[]
15
15
  def key?(key)
16
16
  return false if key.nil?
17
- return true if self.class.mutable? && @mutations.key?(key)
17
+ return true if self.class.mutable? && mutations.key?(key)
18
18
 
19
19
  respond_to?(key) || fallback_data.key?(key)
20
20
  end
@@ -48,6 +48,7 @@ module Jekyll
48
48
  def_delegator :repository, :tagline, :project_tagline
49
49
  def_delegator :repository, :owner_metadata, :owner
50
50
  def_delegator :repository, :owner, :owner_name
51
+ def_delegator :repository, :owner_display_name, :owner_display_name
51
52
  def_delegator :repository, :owner_url, :owner_url
52
53
  def_delegator :repository, :owner_gravatar_url, :owner_gravatar_url
53
54
  def_delegator :repository, :repository_url, :repository_url
@@ -69,6 +70,8 @@ module Jekyll
69
70
  def_delegator :repository, :releases, :releases
70
71
  def_delegator :repository, :latest_release, :latest_release
71
72
  def_delegator :repository, :private?, :private
73
+ def_delegator :repository, :archived?, :archived
74
+ def_delegator :repository, :disabled?, :disabled
72
75
  def_delegator :repository, :license, :license
73
76
  def_delegator :repository, :source, :source
74
77
 
@@ -95,6 +98,10 @@ module Jekyll
95
98
  def fallback_data
96
99
  @fallback_data ||= {}
97
100
  end
101
+
102
+ def mutations
103
+ @mutations ||= {}
104
+ end
98
105
  end
99
106
  end
100
107
  end
@@ -68,6 +68,7 @@ module Jekyll
68
68
  end
69
69
  alias_method :to_hash, :to_h
70
70
  def_delegator :to_h, :to_json, :to_json
71
+ def_delegator :to_h, :to_liquid, :to_liquid
71
72
 
72
73
  def_delegator :to_h, :to_s, :to_s
73
74
  alias_method :to_str, :to_s
@@ -26,6 +26,8 @@ module Jekyll
26
26
  def_hash_delegator :repo_info, :description, :tagline
27
27
  def_hash_delegator :repo_info, :has_downloads, :show_downloads?
28
28
  def_hash_delegator :repo_info, :private, :private?
29
+ def_hash_delegator :repo_info, :archived, :archived?
30
+ def_hash_delegator :repo_info, :disabled, :disabled?
29
31
  def_hash_delegator :latest_release, :url, :latest_release_url
30
32
  def_hash_delegator :source, :branch, :git_ref
31
33
 
@@ -62,6 +64,10 @@ module Jekyll
62
64
  end
63
65
  end
64
66
 
67
+ def owner_display_name
68
+ owner_metadata.name
69
+ end
70
+
65
71
  def owner_metadata
66
72
  @owner_metadata ||= Jekyll::GitHubMetadata::Owner.new(owner)
67
73
  end
@@ -107,7 +113,17 @@ module Jekyll
107
113
  end
108
114
 
109
115
  def owner_public_repositories
110
- memoize_value :@owner_public_repositories, Value.new("owner_public_repositories", proc { |c| c.list_repos(owner, "type" => "public") })
116
+ options = {
117
+ :type => "public",
118
+ :accept => "application/vnd.github.mercy-preview+json",
119
+ }
120
+ memoize_value :@owner_public_repositories, Value.new("owner_public_repositories", proc do |c|
121
+ c.list_repos(owner, options).map do |r|
122
+ r[:releases] = Value.new("owner_public_repositories_releases", proc { c.releases(r[:full_name]) })
123
+ r[:contributors] = Value.new("owner_public_repositories_contributors", proc { c.contributors(r[:full_name]) })
124
+ r
125
+ end
126
+ end)
111
127
  end
112
128
 
113
129
  def organization_public_members
@@ -16,7 +16,7 @@ module Jekyll
16
16
  # resource - an Object
17
17
  #
18
18
  # Returns the sanitized resource.
19
- # rubocop:disable Metrics/CyclomaticComplexity
19
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/MethodLength
20
20
  def sanitize(resource)
21
21
  case resource
22
22
  when Array
@@ -31,6 +31,8 @@ module Jekyll
31
31
  nil
32
32
  when String
33
33
  resource
34
+ when Value
35
+ resource.render
34
36
  else
35
37
  if resource.respond_to?(:to_hash)
36
38
  sanitize_resource(resource)
@@ -39,7 +41,7 @@ module Jekyll
39
41
  end
40
42
  end
41
43
  end
42
- # rubocop:enable Metrics/CyclomaticComplexity
44
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/MethodLength
43
45
 
44
46
  # Sanitize the Sawyer Resource or Hash
45
47
  # Note: the object must respond to :to_hash for this to work.
@@ -55,7 +55,13 @@ module Jekyll
55
55
  msg << "Jekyll GitHub Metadata will not set site.title to the repository's name."
56
56
  Jekyll::GitHubMetadata.log :warn, msg
57
57
  else
58
- site.config["title"] ||= Value.new("title", proc { |_c, r| r.name })
58
+ site.config["title"] ||= Value.new("title", proc { |_context, repository|
59
+ if repository.project_page?
60
+ repository.name
61
+ else
62
+ repository.owner_display_name || repository.owner
63
+ end
64
+ })
59
65
  end
60
66
  site.config["description"] ||= Value.new("description", proc { |_c, r| r.tagline })
61
67
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Jekyll
4
4
  module GitHubMetadata
5
- VERSION = "2.12.0"
5
+ VERSION = "2.14.0"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,29 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-github-metadata
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.12.0
4
+ version: 2.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Parker Moore
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-02-11 00:00:00.000000000 Z
11
+ date: 2022-05-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '3.4'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '5.0'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
25
28
  - !ruby/object:Gem::Version
26
29
  version: '3.4'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '5.0'
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: octokit
29
35
  requirement: !ruby/object:Gem::Requirement
@@ -104,30 +110,30 @@ dependencies:
104
110
  name: rspec
105
111
  requirement: !ruby/object:Gem::Requirement
106
112
  requirements:
107
- - - ">="
113
+ - - "~>"
108
114
  - !ruby/object:Gem::Version
109
- version: '0'
115
+ version: 3.11.0
110
116
  type: :development
111
117
  prerelease: false
112
118
  version_requirements: !ruby/object:Gem::Requirement
113
119
  requirements:
114
- - - ">="
120
+ - - "~>"
115
121
  - !ruby/object:Gem::Version
116
- version: '0'
122
+ version: 3.11.0
117
123
  - !ruby/object:Gem::Dependency
118
124
  name: rubocop-jekyll
119
125
  requirement: !ruby/object:Gem::Requirement
120
126
  requirements:
121
127
  - - "~>"
122
128
  - !ruby/object:Gem::Version
123
- version: 0.5.0
129
+ version: 0.12.0
124
130
  type: :development
125
131
  prerelease: false
126
132
  version_requirements: !ruby/object:Gem::Requirement
127
133
  requirements:
128
134
  - - "~>"
129
135
  - !ruby/object:Gem::Version
130
- version: 0.5.0
136
+ version: 0.12.0
131
137
  description:
132
138
  email:
133
139
  - parkrmoore@gmail.com
@@ -148,7 +154,7 @@ files:
148
154
  - lib/jekyll-github-metadata/site_github_munger.rb
149
155
  - lib/jekyll-github-metadata/value.rb
150
156
  - lib/jekyll-github-metadata/version.rb
151
- homepage: https://github.com/parkr/github-metadata
157
+ homepage: https://github.com/jekyll/github-metadata
152
158
  licenses:
153
159
  - MIT
154
160
  metadata: {}
@@ -167,7 +173,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
167
173
  - !ruby/object:Gem::Version
168
174
  version: '0'
169
175
  requirements: []
170
- rubygems_version: 3.0.1
176
+ rubygems_version: 3.1.6
171
177
  signing_key:
172
178
  specification_version: 4
173
179
  summary: The site.github namespace