gem_updater 4.4.0 → 5.0.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: 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