gem_updater 4.4.0 → 5.0.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: 2a04f3bf2dd4e041cd932e126d162e4a95b7ea2a2a2690a00e97f8a5f62ef6e3
4
- data.tar.gz: 72af5a2dd171dd37b6281a92c9e6508c6bc6020eb5aa46b218158f4cfcb449ec
3
+ metadata.gz: 857bbae1f21fbafb9e5f1bcb82950426f79ec65cd5b4a51c977f101dc3264ff5
4
+ data.tar.gz: c3352bbc2124a23ca8a60210fa026adbba3a2c24f0642b9bddf5898219be92be
5
5
  SHA512:
6
- metadata.gz: 62ccd70ebba5c0d6ea04a47f3cf8e6fd9df7b3c170e09e0af48c238468248e4f241bf17ff6028e31ef078efbf20901869d9c64f6ca64046dd616a9cc5dce94b9
7
- data.tar.gz: 3e027d0ff378017f0206edab9216eec81d1baa18a8d5b7a6babc287524d917973d8a2127f15df9ea6eb7e00fd575497c10e7b96c20f5c2db233b5140b8054333
6
+ metadata.gz: ed9f731500f109d3eb40051c1d9c0749f9de19f35c3451bc1f12eba5eea43497a56c1aab11cdf343d20cec195e480d7bdb6c40bc7742a701e12f52016c2f7091
7
+ data.tar.gz: f22936794f697086b58ed775ce0383e2a7e6f273bc3a5fc542b374fa34b844650bb96e42699a2df7e68486737fef225d976e0c65e5e54a4e44ccc129f0f7c615
@@ -53,8 +53,8 @@ module GemUpdater
53
53
  # will return the same result.
54
54
  # Use a hacky way to tell bundle we want to parse the new `Gemfile.lock`
55
55
  def reinitialize_spec_set!
56
- Bundler.remove_instance_variable('@locked_gems')
57
- Bundler.remove_instance_variable('@definition')
56
+ Bundler.remove_instance_variable(:@locked_gems)
57
+ Bundler.remove_instance_variable(:@definition)
58
58
  end
59
59
 
60
60
  # Add changes to between two versions of a gem
@@ -34,7 +34,7 @@ module GemUpdater
34
34
  # @param url [String] remote url
35
35
  # @return [Hash] parsed JSON
36
36
  def parse_remote_json(url)
37
- JSON.parse(URI.open(url).read)
37
+ JSON.parse(URI.parse(url).open.read)
38
38
  end
39
39
 
40
40
  # Ask rubygems.org for source uri of gem.
@@ -67,25 +67,18 @@ module GemUpdater
67
67
  # Look if gem can be found in another remote
68
68
  #
69
69
  # @return [String|nil] uri of source code
70
- # rubocop:disable Metrics/MethodLength
71
70
  def uri_from_other_sources
72
- uri = nil
73
- source.remotes.each do |remote|
74
- break if uri
75
-
76
- uri = case remote.host
77
- when 'rubygems.org' then next # already checked
78
- when 'rails-assets.org'
79
- uri_from_railsassets
80
- else
81
- Bundler.ui.error "Source #{remote} is not supported, ' \
82
- 'feel free to open a PR or an issue on https://github.com/MaximeD/gem_updater"
83
- end
71
+ source.remotes.find do |remote|
72
+ case remote.host
73
+ when 'rubygems.org' then next # already checked
74
+ when 'rails-assets.org'
75
+ return uri_from_railsassets
76
+ else
77
+ Bundler.ui.error "Source #{remote} is not supported, ' \
78
+ 'feel free to open a PR or an issue on https://github.com/MaximeD/gem_updater"
79
+ end
84
80
  end
85
-
86
- uri
87
81
  end
88
- # rubocop:enable Metrics/MethodLength
89
82
 
90
83
  # Ask rails-assets.org for source uri of gem.
91
84
  # API is at : https://rails-assets.org/packages/package_name
@@ -33,7 +33,7 @@ module GemUpdater
33
33
  return unless uri
34
34
 
35
35
  Bundler.ui.warn "Looking for a changelog in #{uri}"
36
- find_changelog(Nokogiri::HTML(URI.open(uri)))
36
+ find_changelog(Nokogiri::HTML(uri.open))
37
37
  rescue OpenURI::HTTPError # Uri points to nothing
38
38
  log_error("Cannot find #{uri}")
39
39
  rescue Errno::ETIMEDOUT # timeout
@@ -53,7 +53,7 @@ module GemUpdater
53
53
  def correct_uri(url)
54
54
  return unless url.is_a?(String) && !url.empty?
55
55
 
56
- uri = URI(url)
56
+ uri = URI.parse(url)
57
57
  uri.scheme == 'http' ? known_https(uri) : uri
58
58
  end
59
59
 
@@ -68,9 +68,7 @@ module GemUpdater
68
68
  when HOSTS[:github]
69
69
  # remove possible subdomain like 'wiki.github.com'
70
70
  URI "https://github.com#{uri.path}"
71
- when HOSTS[:bitbucket]
72
- URI "https://#{uri.host}#{uri.path}"
73
- when HOSTS[:rubygems]
71
+ when HOSTS[:bitbucket], HOSTS[:rubygems]
74
72
  URI "https://#{uri.host}#{uri.path}"
75
73
  else
76
74
  uri
@@ -147,14 +145,14 @@ module GemUpdater
147
145
  private
148
146
 
149
147
  # Find which link corresponds to changelog.
148
+ # Last one is taken as files come after directories. So if there is a directory plus a file
149
+ # matching a changelog name, we ensure file is preferred.
150
150
  #
151
151
  # @return [String, nil] url of changelog
152
152
  def find_changelog_link
153
- changelog_names.find do |name|
154
- node = doc.at_css(%([aria-labelledby="files"] a[title^="#{name}"]))
155
-
156
- break node.attr('href') if node
157
- end
153
+ changelog_names.filter_map do |name|
154
+ doc.at_css(%([aria-labelledby="files"] a[title^="#{name}"]))
155
+ end.last&.attr('href')
158
156
  end
159
157
 
160
158
  # Looks into document to find it there is an anchor to new gem version.
@@ -162,12 +160,10 @@ module GemUpdater
162
160
  # @param url [String] url of changelog
163
161
  # @return [String, nil] anchor's href
164
162
  def find_anchor(url)
165
- changelog_page = Nokogiri::HTML(URI.open(url))
166
- anchor = changelog_page.css(%(a.anchor)).find do |element|
163
+ changelog_page = Nokogiri::HTML(URI.parse(url).open)
164
+ changelog_page.css(%(a.anchor)).find do |element|
167
165
  element.attr('href').match(version.delete('.'))
168
- end
169
-
170
- anchor&.attr('href')
166
+ end&.attr('href')
171
167
  end
172
168
  end
173
169
  end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GemUpdater
4
+ VERSION = '5.0.0'
5
+ end
data/lib/gem_updater.rb CHANGED
@@ -40,8 +40,10 @@ module GemUpdater
40
40
  # Format the diff to get human readable information
41
41
  # on the gems that were updated.
42
42
  def format_diff
43
+ erb = ERB.new(template, trim_mode: '<>')
44
+
43
45
  gemfile.changes.map do |gem, details|
44
- ERB.new(template, nil, '<>').result(binding)
46
+ erb.result(binding)
45
47
  end
46
48
  end
47
49
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gem_updater
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.4.0
4
+ version: 5.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Maxime Demolin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-01-17 00:00:00.000000000 Z
11
+ date: 2022-03-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -30,112 +30,126 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '2.1'
33
+ version: '2.6'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '2.1'
40
+ version: '2.6'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: memoist
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.16.0
47
+ version: 0.16.2
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 0.16.0
54
+ version: 0.16.2
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: nokogiri
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '1.8'
61
+ version: 1.13.3
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '1.8'
68
+ version: 1.13.3
69
+ - !ruby/object:Gem::Dependency
70
+ name: pry
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 0.14.1
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 0.14.1
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: rspec
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
87
  - - "~>"
74
88
  - !ruby/object:Gem::Version
75
- version: '3.7'
89
+ version: 3.11.0
76
90
  type: :development
77
91
  prerelease: false
78
92
  version_requirements: !ruby/object:Gem::Requirement
79
93
  requirements:
80
94
  - - "~>"
81
95
  - !ruby/object:Gem::Version
82
- version: '3.7'
96
+ version: 3.11.0
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: rubocop
85
99
  requirement: !ruby/object:Gem::Requirement
86
100
  requirements:
87
101
  - - "~>"
88
102
  - !ruby/object:Gem::Version
89
- version: '0.78'
103
+ version: 1.26.1
90
104
  type: :development
91
105
  prerelease: false
92
106
  version_requirements: !ruby/object:Gem::Requirement
93
107
  requirements:
94
108
  - - "~>"
95
109
  - !ruby/object:Gem::Version
96
- version: '0.78'
110
+ version: 1.26.1
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: rubocop-performance
99
113
  requirement: !ruby/object:Gem::Requirement
100
114
  requirements:
101
115
  - - "~>"
102
116
  - !ruby/object:Gem::Version
103
- version: 1.5.2
117
+ version: 1.13.3
104
118
  type: :development
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
107
121
  requirements:
108
122
  - - "~>"
109
123
  - !ruby/object:Gem::Version
110
- version: 1.5.2
124
+ version: 1.13.3
111
125
  - !ruby/object:Gem::Dependency
112
126
  name: vcr
113
127
  requirement: !ruby/object:Gem::Requirement
114
128
  requirements:
115
129
  - - "~>"
116
130
  - !ruby/object:Gem::Version
117
- version: '6.0'
131
+ version: 6.1.0
118
132
  type: :development
119
133
  prerelease: false
120
134
  version_requirements: !ruby/object:Gem::Requirement
121
135
  requirements:
122
136
  - - "~>"
123
137
  - !ruby/object:Gem::Version
124
- version: '6.0'
138
+ version: 6.1.0
125
139
  - !ruby/object:Gem::Dependency
126
140
  name: webmock
127
141
  requirement: !ruby/object:Gem::Requirement
128
142
  requirements:
129
143
  - - "~>"
130
144
  - !ruby/object:Gem::Version
131
- version: '3.8'
145
+ version: 3.14.0
132
146
  type: :development
133
147
  prerelease: false
134
148
  version_requirements: !ruby/object:Gem::Requirement
135
149
  requirements:
136
150
  - - "~>"
137
151
  - !ruby/object:Gem::Version
138
- version: '3.8'
152
+ version: 3.14.0
139
153
  description: Updates the gems of your Gemfile and fetches the links pointing to where
140
154
  their changelogs are
141
155
  email: maxime_dev@demol.in
@@ -149,11 +163,13 @@ files:
149
163
  - lib/gem_updater/gem_file.rb
150
164
  - lib/gem_updater/ruby_gems_fetcher.rb
151
165
  - lib/gem_updater/source_page_parser.rb
166
+ - lib/gem_updater/version.rb
152
167
  - lib/gem_updater_template.erb
153
168
  homepage: https://github.com/MaximeD/gem_updater
154
169
  licenses:
155
170
  - MIT
156
- metadata: {}
171
+ metadata:
172
+ rubygems_mfa_required: 'true'
157
173
  post_install_message:
158
174
  rdoc_options: []
159
175
  require_paths:
@@ -162,14 +178,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
162
178
  requirements:
163
179
  - - ">="
164
180
  - !ruby/object:Gem::Version
165
- version: 2.5.0
181
+ version: 2.7.0
166
182
  required_rubygems_version: !ruby/object:Gem::Requirement
167
183
  requirements:
168
184
  - - ">="
169
185
  - !ruby/object:Gem::Version
170
186
  version: '0'
171
187
  requirements: []
172
- rubygems_version: 3.2.3
188
+ rubygems_version: 3.3.7
173
189
  signing_key:
174
190
  specification_version: 4
175
191
  summary: Update your gems and find their changelogs