jekyll-github-metadata 2.12.0 → 2.14.0

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: 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