gem_updater 4.4.0 → 4.4.1
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/ruby_gems_fetcher.rb +10 -17
- data/lib/gem_updater/source_page_parser.rb +9 -11
- metadata +18 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 10e740d324e4bd91b5e7b8d6c7d2c4272b84eedf0cabcab2e5244c55779a4a2c
|
4
|
+
data.tar.gz: d7050c27a7791a3b185c08e088e29c9cf645908106d352027d3ddb02f826bdae
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 26be9e96400f04d892de240c28af03f02d5e5d23ec33d51bdbce015883df6bc4de2a1631da3ab42b1bada40384868a095f1b1e2c1a82fe1f6ca7cbd231656864
|
7
|
+
data.tar.gz: 55a53a16a210ef6380ca2bc3febafaf01ecd42de0693fa88fcabfe7302e195d9fe0ba69989bcc37b9638f085cb06a42fe33a3c78e1e691bb4557f291b043e90a
|
@@ -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.map do |name|
|
154
|
+
doc.at_css(%([aria-labelledby="files"] a[title^="#{name}"]))
|
155
|
+
end.compact.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,7 +160,7 @@ 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.
|
163
|
+
changelog_page = Nokogiri::HTML(URI.parse(url).open)
|
166
164
|
anchor = changelog_page.css(%(a.anchor)).find do |element|
|
167
165
|
element.attr('href').match(version.delete('.'))
|
168
166
|
end
|
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.
|
4
|
+
version: 4.4.1
|
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-
|
11
|
+
date: 2021-02-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '1.8'
|
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'
|
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'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: rspec
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -86,14 +100,14 @@ dependencies:
|
|
86
100
|
requirements:
|
87
101
|
- - "~>"
|
88
102
|
- !ruby/object:Gem::Version
|
89
|
-
version: '0
|
103
|
+
version: '1.0'
|
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
|
110
|
+
version: '1.0'
|
97
111
|
- !ruby/object:Gem::Dependency
|
98
112
|
name: rubocop-performance
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|