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 +4 -4
- data/lib/gem_updater/gem_file.rb +2 -2
- data/lib/gem_updater/ruby_gems_fetcher.rb +10 -17
- data/lib/gem_updater/source_page_parser.rb +11 -15
- data/lib/gem_updater/version.rb +5 -0
- data/lib/gem_updater.rb +3 -1
- metadata +37 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 857bbae1f21fbafb9e5f1bcb82950426f79ec65cd5b4a51c977f101dc3264ff5
|
4
|
+
data.tar.gz: c3352bbc2124a23ca8a60210fa026adbba3a2c24f0642b9bddf5898219be92be
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ed9f731500f109d3eb40051c1d9c0749f9de19f35c3451bc1f12eba5eea43497a56c1aab11cdf343d20cec195e480d7bdb6c40bc7742a701e12f52016c2f7091
|
7
|
+
data.tar.gz: f22936794f697086b58ed775ce0383e2a7e6f273bc3a5fc542b374fa34b844650bb96e42699a2df7e68486737fef225d976e0c65e5e54a4e44ccc129f0f7c615
|
data/lib/gem_updater/gem_file.rb
CHANGED
@@ -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(
|
57
|
-
Bundler.remove_instance_variable(
|
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.
|
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
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
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(
|
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.
|
154
|
-
|
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.
|
166
|
-
|
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
|
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
|
-
|
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
|
+
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:
|
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.
|
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.
|
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.
|
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.
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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.
|
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.
|
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:
|
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:
|
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:
|
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:
|
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.
|
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.
|
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
|