rubygems-update 3.2.26 → 3.2.30
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +60 -0
- data/Manifest.txt +12 -3
- data/bundler/CHANGELOG.md +50 -1
- data/bundler/README.md +1 -1
- data/bundler/lib/bundler/build_metadata.rb +2 -2
- data/bundler/lib/bundler/cli/check.rb +1 -1
- data/bundler/lib/bundler/cli/gem.rb +19 -2
- data/bundler/lib/bundler/cli/info.rb +11 -4
- data/bundler/lib/bundler/cli/issue.rb +4 -3
- data/bundler/lib/bundler/cli/remove.rb +1 -2
- data/bundler/lib/bundler/cli.rb +1 -0
- data/bundler/lib/bundler/compact_index_client.rb +2 -2
- data/bundler/lib/bundler/definition.rb +16 -6
- data/bundler/lib/bundler/digest.rb +71 -0
- data/bundler/lib/bundler/errors.rb +18 -2
- data/bundler/lib/bundler/fetcher.rb +2 -1
- data/bundler/lib/bundler/friendly_errors.rb +5 -30
- data/bundler/lib/bundler/gem_helper.rb +6 -17
- data/bundler/lib/bundler/installer.rb +0 -1
- data/bundler/lib/bundler/plugin/installer.rb +2 -0
- data/bundler/lib/bundler/plugin.rb +23 -6
- data/bundler/lib/bundler/rubygems_ext.rb +4 -0
- data/bundler/lib/bundler/rubygems_gem_installer.rb +20 -4
- data/bundler/lib/bundler/rubygems_integration.rb +28 -9
- data/bundler/lib/bundler/runtime.rb +1 -1
- data/bundler/lib/bundler/settings.rb +9 -1
- data/bundler/lib/bundler/source/git.rb +22 -4
- data/bundler/lib/bundler/source/rubygems.rb +43 -72
- data/bundler/lib/bundler/source.rb +2 -0
- data/bundler/lib/bundler/source_list.rb +4 -0
- data/bundler/lib/bundler/spec_set.rb +1 -1
- data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +2 -1
- data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +1 -1
- data/bundler/lib/bundler/vendor/connection_pool/LICENSE +20 -0
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +19 -21
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +1 -1
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +57 -0
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +39 -74
- data/bundler/lib/bundler/vendor/fileutils/LICENSE.txt +22 -0
- data/bundler/lib/bundler/vendor/molinillo/LICENSE +9 -0
- data/bundler/lib/bundler/vendor/net-http-persistent/README.rdoc +82 -0
- data/bundler/lib/bundler/vendor/thor/LICENSE.md +20 -0
- data/bundler/lib/bundler/vendor/uri/LICENSE.txt +22 -0
- data/bundler/lib/bundler/version.rb +1 -1
- data/bundler/lib/bundler/worker.rb +2 -2
- data/bundler/lib/bundler.rb +13 -18
- data/lib/rubygems/command_manager.rb +3 -3
- data/lib/rubygems/commands/build_command.rb +3 -3
- data/lib/rubygems/commands/cert_command.rb +15 -8
- data/lib/rubygems/commands/check_command.rb +4 -4
- data/lib/rubygems/commands/cleanup_command.rb +3 -3
- data/lib/rubygems/commands/contents_command.rb +2 -2
- data/lib/rubygems/commands/dependency_command.rb +3 -3
- data/lib/rubygems/commands/environment_command.rb +1 -1
- data/lib/rubygems/commands/fetch_command.rb +3 -3
- data/lib/rubygems/commands/generate_index_command.rb +2 -2
- data/lib/rubygems/commands/help_command.rb +1 -1
- data/lib/rubygems/commands/info_command.rb +2 -2
- data/lib/rubygems/commands/install_command.rb +12 -11
- data/lib/rubygems/commands/list_command.rb +2 -2
- data/lib/rubygems/commands/lock_command.rb +1 -1
- data/lib/rubygems/commands/mirror_command.rb +1 -1
- data/lib/rubygems/commands/open_command.rb +2 -2
- data/lib/rubygems/commands/outdated_command.rb +4 -4
- data/lib/rubygems/commands/owner_command.rb +4 -4
- data/lib/rubygems/commands/pristine_command.rb +5 -5
- data/lib/rubygems/commands/push_command.rb +4 -4
- data/lib/rubygems/commands/query_command.rb +3 -3
- data/lib/rubygems/commands/rdoc_command.rb +3 -3
- data/lib/rubygems/commands/search_command.rb +2 -2
- data/lib/rubygems/commands/server_command.rb +3 -3
- data/lib/rubygems/commands/setup_command.rb +6 -6
- data/lib/rubygems/commands/signin_command.rb +2 -2
- data/lib/rubygems/commands/signout_command.rb +1 -1
- data/lib/rubygems/commands/sources_command.rb +4 -4
- data/lib/rubygems/commands/specification_command.rb +4 -4
- data/lib/rubygems/commands/stale_command.rb +1 -1
- data/lib/rubygems/commands/uninstall_command.rb +3 -3
- data/lib/rubygems/commands/unpack_command.rb +5 -5
- data/lib/rubygems/commands/update_command.rb +9 -9
- data/lib/rubygems/commands/which_command.rb +1 -1
- data/lib/rubygems/commands/yank_command.rb +4 -4
- data/lib/rubygems/config_file.rb +1 -1
- data/lib/rubygems/core_ext/tcpsocket_init.rb +2 -2
- data/lib/rubygems/defaults.rb +1 -1
- data/lib/rubygems/dependency_installer.rb +8 -8
- data/lib/rubygems/dependency_list.rb +1 -1
- data/lib/rubygems/doctor.rb +2 -2
- data/lib/rubygems/errors.rb +1 -2
- data/lib/rubygems/exceptions.rb +1 -1
- data/lib/rubygems/gem_runner.rb +3 -3
- data/lib/rubygems/gemcutter_utilities.rb +2 -2
- data/lib/rubygems/indexer.rb +2 -2
- data/lib/rubygems/install_default_message.rb +2 -2
- data/lib/rubygems/install_message.rb +2 -2
- data/lib/rubygems/install_update_options.rb +2 -2
- data/lib/rubygems/installer.rb +8 -8
- data/lib/rubygems/local_remote_options.rb +1 -1
- data/lib/rubygems/mock_gem_ui.rb +1 -1
- data/lib/rubygems/package/tar_reader.rb +1 -1
- data/lib/rubygems/package.rb +36 -46
- data/lib/rubygems/package_task.rb +2 -2
- data/lib/rubygems/platform.rb +2 -1
- data/lib/rubygems/query_utils.rb +4 -4
- data/lib/rubygems/rdoc.rb +1 -1
- data/lib/rubygems/remote_fetcher.rb +16 -22
- data/lib/rubygems/request/connection_pools.rb +1 -1
- data/lib/rubygems/request/http_pool.rb +1 -1
- data/lib/rubygems/request.rb +7 -5
- data/lib/rubygems/request_set/lockfile/tokenizer.rb +1 -1
- data/lib/rubygems/request_set/lockfile.rb +1 -1
- data/lib/rubygems/request_set.rb +5 -5
- data/lib/rubygems/requirement.rb +1 -1
- data/lib/rubygems/resolver/git_specification.rb +1 -1
- data/lib/rubygems/resolver/installer_set.rb +3 -3
- data/lib/rubygems/resolver/molinillo/LICENSE +9 -0
- data/lib/rubygems/resolver/molinillo.rb +1 -1
- data/lib/rubygems/resolver/set.rb +0 -1
- data/lib/rubygems/resolver/specification.rb +1 -1
- data/lib/rubygems/resolver.rb +31 -31
- data/lib/rubygems/s3_uri_signer.rb +4 -5
- data/lib/rubygems/security/policy.rb +6 -4
- data/lib/rubygems/security/signer.rb +4 -5
- data/lib/rubygems/security.rb +54 -20
- data/lib/rubygems/security_option.rb +2 -2
- data/lib/rubygems/server.rb +2 -2
- data/lib/rubygems/source/git.rb +2 -2
- data/lib/rubygems/source.rb +7 -7
- data/lib/rubygems/spec_fetcher.rb +5 -5
- data/lib/rubygems/specification.rb +12 -12
- data/lib/rubygems/specification_policy.rb +2 -2
- data/lib/rubygems/uninstaller.rb +6 -6
- data/lib/rubygems/uri.rb +111 -0
- data/lib/rubygems/user_interaction.rb +3 -3
- data/lib/rubygems/util/licenses.rb +1 -1
- data/lib/rubygems/util.rb +1 -1
- data/lib/rubygems/validator.rb +2 -2
- data/lib/rubygems/version_option.rb +1 -1
- data/lib/rubygems.rb +16 -16
- data/rubygems-update.gemspec +1 -1
- data/test/rubygems/helper.rb +4 -12
- data/test/rubygems/private_ec_key.pem +9 -0
- data/test/rubygems/test_gem.rb +59 -71
- data/test/rubygems/test_gem_commands_cert_command.rb +63 -4
- data/test/rubygems/test_gem_commands_install_command.rb +25 -0
- data/test/rubygems/test_gem_package.rb +27 -26
- data/test/rubygems/test_gem_platform.rb +1 -0
- data/test/rubygems/test_gem_remote_fetcher.rb +30 -0
- data/test/rubygems/test_gem_request.rb +35 -9
- data/test/rubygems/test_gem_resolver_installer_set.rb +18 -0
- data/test/rubygems/test_gem_security.rb +32 -4
- data/test/rubygems/test_gem_source_fetch_problem.rb +10 -0
- data/test/rubygems/test_gem_specification.rb +228 -232
- data/test/rubygems/test_gem_uri.rb +39 -0
- metadata +18 -9
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/monotonic_time.rb +0 -66
- data/lib/rubygems/uri_parser.rb +0 -34
- data/lib/rubygems/uri_parsing.rb +0 -23
@@ -127,265 +127,241 @@ end
|
|
127
127
|
end
|
128
128
|
|
129
129
|
def test_self_activate_ambiguous_direct
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
c2 = util_spec "c", "2"
|
130
|
+
a1 = util_spec "a", "1", "b" => "> 0"
|
131
|
+
b1 = util_spec("b", "1", { "c" => ">= 1" }, "lib/d#{$$}.rb")
|
132
|
+
b2 = util_spec("b", "2", { "c" => ">= 2" }, "lib/d#{$$}.rb")
|
133
|
+
c1 = util_spec "c", "1"
|
134
|
+
c2 = util_spec "c", "2"
|
136
135
|
|
137
|
-
|
138
|
-
|
136
|
+
Gem::Specification.reset
|
137
|
+
install_specs c1, c2, b1, b2, a1
|
139
138
|
|
140
|
-
|
141
|
-
|
142
|
-
|
139
|
+
a1.activate
|
140
|
+
assert_equal %w[a-1], loaded_spec_names
|
141
|
+
assert_equal ["b (> 0)"], unresolved_names
|
143
142
|
|
144
|
-
|
143
|
+
require "d#{$$}"
|
145
144
|
|
146
|
-
|
147
|
-
|
148
|
-
end
|
145
|
+
assert_equal %w[a-1 b-2 c-2], loaded_spec_names
|
146
|
+
assert_equal [], unresolved_names
|
149
147
|
end
|
150
148
|
|
151
149
|
def test_find_in_unresolved_tree_is_not_exponentiental
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
(
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
util_spec "pkg#{pkgi}", pkg_version.to_s, deps
|
161
|
-
end
|
150
|
+
num_of_pkg = 7
|
151
|
+
num_of_version_per_pkg = 3
|
152
|
+
packages = (0..num_of_pkg).map do |pkgi|
|
153
|
+
(0..num_of_version_per_pkg).map do |pkg_version|
|
154
|
+
deps = Hash[((pkgi + 1)..num_of_pkg).map do |deppkgi|
|
155
|
+
["pkg#{deppkgi}", ">= 0"]
|
156
|
+
end]
|
157
|
+
util_spec "pkg#{pkgi}", pkg_version.to_s, deps
|
162
158
|
end
|
163
|
-
|
159
|
+
end
|
160
|
+
base = util_spec "pkg_base", "1", {"pkg0" => ">= 0"}
|
164
161
|
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
162
|
+
Gem::Specification.reset
|
163
|
+
install_specs(*packages.flatten.reverse)
|
164
|
+
install_specs base
|
165
|
+
base.activate
|
169
166
|
|
170
|
-
|
171
|
-
|
172
|
-
end
|
173
|
-
assert_operator tms.total, :<=, 10
|
167
|
+
tms = Benchmark.measure do
|
168
|
+
assert_raise(LoadError) { require 'no_such_file_foo' }
|
174
169
|
end
|
170
|
+
assert_operator tms.total, :<=, 10
|
175
171
|
end
|
176
172
|
|
177
173
|
def test_self_activate_ambiguous_indirect
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
c2 = util_spec "c", "2", nil, "lib/d#{$$}.rb"
|
174
|
+
a1 = util_spec "a", "1", "b" => "> 0"
|
175
|
+
b1 = util_spec "b", "1", "c" => ">= 1"
|
176
|
+
b2 = util_spec "b", "2", "c" => ">= 2"
|
177
|
+
c1 = util_spec "c", "1", nil, "lib/d#{$$}.rb"
|
178
|
+
c2 = util_spec "c", "2", nil, "lib/d#{$$}.rb"
|
184
179
|
|
185
|
-
|
180
|
+
install_specs c1, c2, b1, b2, a1
|
186
181
|
|
187
|
-
|
188
|
-
|
189
|
-
|
182
|
+
a1.activate
|
183
|
+
assert_equal %w[a-1], loaded_spec_names
|
184
|
+
assert_equal ["b (> 0)"], unresolved_names
|
190
185
|
|
191
|
-
|
186
|
+
require "d#{$$}"
|
192
187
|
|
193
|
-
|
194
|
-
|
195
|
-
end
|
188
|
+
assert_equal %w[a-1 b-2 c-2], loaded_spec_names
|
189
|
+
assert_equal [], unresolved_names
|
196
190
|
end
|
197
191
|
|
198
192
|
def test_self_activate_ambiguous_indirect_conflict
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
c2 = util_spec("c", "2", { "a" => "1" }, "lib/d#{$$}.rb") # conflicts with a-2
|
193
|
+
a1 = util_spec "a", "1", "b" => "> 0"
|
194
|
+
a2 = util_spec "a", "2", "b" => "> 0"
|
195
|
+
b1 = util_spec "b", "1", "c" => ">= 1"
|
196
|
+
b2 = util_spec "b", "2", "c" => ">= 2"
|
197
|
+
c1 = util_spec "c", "1", nil, "lib/d#{$$}.rb"
|
198
|
+
c2 = util_spec("c", "2", { "a" => "1" }, "lib/d#{$$}.rb") # conflicts with a-2
|
206
199
|
|
207
|
-
|
200
|
+
install_specs c1, b1, a1, a2, c2, b2
|
208
201
|
|
209
|
-
|
210
|
-
|
211
|
-
|
202
|
+
a2.activate
|
203
|
+
assert_equal %w[a-2], loaded_spec_names
|
204
|
+
assert_equal ["b (> 0)"], unresolved_names
|
212
205
|
|
213
|
-
|
206
|
+
require "d#{$$}"
|
214
207
|
|
215
|
-
|
216
|
-
|
217
|
-
end
|
208
|
+
assert_equal %w[a-2 b-1 c-1], loaded_spec_names
|
209
|
+
assert_equal [], unresolved_names
|
218
210
|
end
|
219
211
|
|
220
212
|
def test_self_activate_ambiguous_unrelated
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
d1 = util_spec "d", "1", nil, "lib/d#{$$}.rb"
|
213
|
+
a1 = util_spec "a", "1", "b" => "> 0"
|
214
|
+
b1 = util_spec "b", "1", "c" => ">= 1"
|
215
|
+
b2 = util_spec "b", "2", "c" => ">= 2"
|
216
|
+
c1 = util_spec "c", "1"
|
217
|
+
c2 = util_spec "c", "2"
|
218
|
+
d1 = util_spec "d", "1", nil, "lib/d#{$$}.rb"
|
228
219
|
|
229
|
-
|
220
|
+
install_specs d1, c1, c2, b1, b2, a1
|
230
221
|
|
231
|
-
|
232
|
-
|
233
|
-
|
222
|
+
a1.activate
|
223
|
+
assert_equal %w[a-1], loaded_spec_names
|
224
|
+
assert_equal ["b (> 0)"], unresolved_names
|
234
225
|
|
235
|
-
|
226
|
+
require "d#{$$}"
|
236
227
|
|
237
|
-
|
238
|
-
|
239
|
-
end
|
228
|
+
assert_equal %w[a-1 d-1], loaded_spec_names
|
229
|
+
assert_equal ["b (> 0)"], unresolved_names
|
240
230
|
end
|
241
231
|
|
242
232
|
def test_require_should_prefer_latest_gem_level1
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
c2 = util_spec "c", "2", nil, "lib/c#{$$}.rb"
|
233
|
+
a1 = util_spec "a", "1", "b" => "> 0"
|
234
|
+
b1 = util_spec "b", "1", "c" => ">= 0" # unresolved
|
235
|
+
b2 = util_spec "b", "2", "c" => ">= 0"
|
236
|
+
c1 = util_spec "c", "1", nil, "lib/c#{$$}.rb" # 1st level
|
237
|
+
c2 = util_spec "c", "2", nil, "lib/c#{$$}.rb"
|
249
238
|
|
250
|
-
|
239
|
+
install_specs c1, c2, b1, b2, a1
|
251
240
|
|
252
|
-
|
241
|
+
a1.activate
|
253
242
|
|
254
|
-
|
243
|
+
require "c#{$$}"
|
255
244
|
|
256
|
-
|
257
|
-
end
|
245
|
+
assert_equal %w[a-1 b-2 c-2], loaded_spec_names
|
258
246
|
end
|
259
247
|
|
260
248
|
def test_require_should_prefer_latest_gem_level2
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
d2 = util_spec "d", "2", nil, "lib/d#{$$}.rb"
|
249
|
+
a1 = util_spec "a", "1", "b" => "> 0"
|
250
|
+
b1 = util_spec "b", "1", "c" => ">= 0" # unresolved
|
251
|
+
b2 = util_spec "b", "2", "c" => ">= 0"
|
252
|
+
c1 = util_spec "c", "1", "d" => ">= 0" # 1st level
|
253
|
+
c2 = util_spec "c", "2", "d" => ">= 0"
|
254
|
+
d1 = util_spec "d", "1", nil, "lib/d#{$$}.rb" # 2nd level
|
255
|
+
d2 = util_spec "d", "2", nil, "lib/d#{$$}.rb"
|
269
256
|
|
270
|
-
|
257
|
+
install_specs d1, d2, c1, c2, b1, b2, a1
|
271
258
|
|
272
|
-
|
259
|
+
a1.activate
|
273
260
|
|
274
|
-
|
261
|
+
require "d#{$$}"
|
275
262
|
|
276
|
-
|
277
|
-
end
|
263
|
+
assert_equal %w[a-1 b-2 c-2 d-2], loaded_spec_names
|
278
264
|
end
|
279
265
|
|
280
266
|
def test_require_finds_in_2nd_level_indirect
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
d3 = util_spec "d", "3", nil, "lib/d#{$$}.rb"
|
267
|
+
a1 = util_spec "a", "1", "b" => "> 0"
|
268
|
+
b1 = util_spec "b", "1", "c" => ">= 0" # unresolved
|
269
|
+
b2 = util_spec "b", "2", "c" => ">= 0"
|
270
|
+
c1 = util_spec "c", "1", "d" => "<= 2" # 1st level
|
271
|
+
c2 = util_spec "c", "2", "d" => "<= 2"
|
272
|
+
d1 = util_spec "d", "1", nil, "lib/d#{$$}.rb" # 2nd level
|
273
|
+
d2 = util_spec "d", "2", nil, "lib/d#{$$}.rb"
|
274
|
+
d3 = util_spec "d", "3", nil, "lib/d#{$$}.rb"
|
290
275
|
|
291
|
-
|
276
|
+
install_specs d1, d2, d3, c1, c2, b1, b2, a1
|
292
277
|
|
293
|
-
|
278
|
+
a1.activate
|
294
279
|
|
295
|
-
|
280
|
+
require "d#{$$}"
|
296
281
|
|
297
|
-
|
298
|
-
end
|
282
|
+
assert_equal %w[a-1 b-2 c-2 d-2], loaded_spec_names
|
299
283
|
end
|
300
284
|
|
301
285
|
def test_require_should_prefer_reachable_gems
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
install_specs d1, d2, d3, e, c1, c2, b1, b2, a1
|
286
|
+
a1 = util_spec "a", "1", "b" => "> 0"
|
287
|
+
b1 = util_spec "b", "1", "c" => ">= 0" # unresolved
|
288
|
+
b2 = util_spec "b", "2", "c" => ">= 0"
|
289
|
+
c1 = util_spec "c", "1", "d" => "<= 2" # 1st level
|
290
|
+
c2 = util_spec "c", "2", "d" => "<= 2"
|
291
|
+
d1 = util_spec "d", "1", nil, "lib/d#{$$}.rb" # 2nd level
|
292
|
+
d2 = util_spec "d", "2", nil, "lib/d#{$$}.rb"
|
293
|
+
d3 = util_spec "d", "3", nil, "lib/d#{$$}.rb"
|
294
|
+
e = util_spec "anti_d", "1", nil, "lib/d#{$$}.rb"
|
295
|
+
|
296
|
+
install_specs d1, d2, d3, e, c1, c2, b1, b2, a1
|
314
297
|
|
315
|
-
|
298
|
+
a1.activate
|
316
299
|
|
317
|
-
|
300
|
+
require "d#{$$}"
|
318
301
|
|
319
|
-
|
320
|
-
end
|
302
|
+
assert_equal %w[a-1 b-2 c-2 d-2], loaded_spec_names
|
321
303
|
end
|
322
304
|
|
323
305
|
def test_require_should_not_conflict
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
c3 = util_spec "c", "3", {}, "lib/c.rb"
|
333
|
-
|
334
|
-
install_specs c1, c2, c3, b1, b2, a1, a2, base
|
335
|
-
|
336
|
-
base.activate
|
337
|
-
assert_equal %w[0-1], loaded_spec_names
|
338
|
-
assert_equal ["A (>= 1)"], unresolved_names
|
306
|
+
base = util_spec "0", "1", "A" => ">= 1"
|
307
|
+
a1 = util_spec "A", "1", {"c" => ">= 2", "b" => "> 0"}, "lib/a.rb"
|
308
|
+
a2 = util_spec "A", "2", {"c" => ">= 2", "b" => "> 0"}, "lib/a.rb"
|
309
|
+
b1 = util_spec "b", "1", {"c" => "= 1"}, "lib/d#{$$}.rb"
|
310
|
+
b2 = util_spec "b", "2", {"c" => "= 2"}, "lib/d#{$$}.rb"
|
311
|
+
c1 = util_spec "c", "1", {}, "lib/c.rb"
|
312
|
+
c2 = util_spec "c", "2", {}, "lib/c.rb"
|
313
|
+
c3 = util_spec "c", "3", {}, "lib/c.rb"
|
339
314
|
|
340
|
-
|
315
|
+
install_specs c1, c2, c3, b1, b2, a1, a2, base
|
341
316
|
|
342
|
-
|
343
|
-
|
344
|
-
|
317
|
+
base.activate
|
318
|
+
assert_equal %w[0-1], loaded_spec_names
|
319
|
+
assert_equal ["A (>= 1)"], unresolved_names
|
320
|
+
|
321
|
+
require "d#{$$}"
|
322
|
+
|
323
|
+
assert_equal %w[0-1 A-2 b-2 c-2], loaded_spec_names
|
324
|
+
assert_equal [], unresolved_names
|
345
325
|
end
|
346
326
|
|
347
327
|
def test_inner_clonflict_in_indirect_gems
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
328
|
+
a1 = util_spec "a", "1", "b" => "> 0"
|
329
|
+
b1 = util_spec "b", "1", "c" => ">= 1" # unresolved
|
330
|
+
b2 = util_spec "b", "2", "c" => ">= 1", "d" => "< 3"
|
331
|
+
c1 = util_spec "c", "1", "d" => "<= 2" # 1st level
|
332
|
+
c2 = util_spec "c", "2", "d" => "<= 2"
|
333
|
+
c3 = util_spec "c", "3", "d" => "<= 3"
|
334
|
+
d1 = util_spec "d", "1", nil, "lib/d#{$$}.rb" # 2nd level
|
335
|
+
d2 = util_spec "d", "2", nil, "lib/d#{$$}.rb"
|
336
|
+
d3 = util_spec "d", "3", nil, "lib/d#{$$}.rb"
|
337
|
+
|
338
|
+
install_specs d1, d2, d3, c1, c2, c3, b1, b2, a1
|
358
339
|
|
359
|
-
|
340
|
+
a1.activate
|
360
341
|
|
361
|
-
|
342
|
+
require "d#{$$}"
|
362
343
|
|
363
|
-
|
364
|
-
|
365
|
-
assert_includes [%w[a-1 b-2 c-3 d-2],%w[a-1 b-2 d-2]], loaded_spec_names
|
366
|
-
end
|
344
|
+
assert_includes [%w[a-1 b-2 c-3 d-2],%w[a-1 b-2 d-2]], loaded_spec_names
|
367
345
|
end
|
368
346
|
|
369
347
|
def test_inner_clonflict_in_indirect_gems_reversed
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
348
|
+
a1 = util_spec "a", "1", "b" => "> 0"
|
349
|
+
b1 = util_spec "b", "1", "xc" => ">= 1" # unresolved
|
350
|
+
b2 = util_spec "b", "2", "xc" => ">= 1", "d" => "< 3"
|
351
|
+
c1 = util_spec "xc", "1", "d" => "<= 3" # 1st level
|
352
|
+
c2 = util_spec "xc", "2", "d" => "<= 2"
|
353
|
+
c3 = util_spec "xc", "3", "d" => "<= 3"
|
354
|
+
d1 = util_spec "d", "1", nil, "lib/d#{$$}.rb" # 2nd level
|
355
|
+
d2 = util_spec "d", "2", nil, "lib/d#{$$}.rb"
|
356
|
+
d3 = util_spec "d", "3", nil, "lib/d#{$$}.rb"
|
357
|
+
|
358
|
+
install_specs d1, d2, d3, c1, c2, c3, b1, b2, a1
|
380
359
|
|
381
|
-
|
382
|
-
|
383
|
-
a1.activate
|
360
|
+
a1.activate
|
384
361
|
|
385
|
-
|
362
|
+
require "d#{$$}"
|
386
363
|
|
387
|
-
|
388
|
-
end
|
364
|
+
assert_includes [%w[a-1 b-2 d-2 xc-3], %w[a-1 b-2 d-2]], loaded_spec_names
|
389
365
|
end
|
390
366
|
|
391
367
|
##
|
@@ -509,41 +485,37 @@ end
|
|
509
485
|
install_specs b1, b2, a1
|
510
486
|
|
511
487
|
a1.activate
|
512
|
-
|
513
|
-
require "b/c"
|
514
|
-
end
|
488
|
+
require "b/c"
|
515
489
|
|
516
490
|
assert_equal %w[a-1 b-1], loaded_spec_names
|
517
491
|
end
|
518
492
|
|
519
493
|
def test_self_activate_via_require_wtf
|
520
|
-
|
521
|
-
|
522
|
-
|
523
|
-
|
524
|
-
|
525
|
-
|
526
|
-
|
527
|
-
d2 = util_spec "d", "2", { "c" => "< 2" }, "lib/d#{$$}.rb" # this
|
494
|
+
a1 = util_spec "a", "1", "b" => "> 0", "d" => "> 0" # this
|
495
|
+
b1 = util_spec "b", "1", { "c" => ">= 1" }, "lib/b#{$$}.rb"
|
496
|
+
b2 = util_spec "b", "2", { "c" => ">= 2" }, "lib/b#{$$}.rb" # this
|
497
|
+
c1 = util_spec "c", "1"
|
498
|
+
c2 = util_spec "c", "2" # this
|
499
|
+
d1 = util_spec "d", "1", { "c" => "< 2" }, "lib/d#{$$}.rb"
|
500
|
+
d2 = util_spec "d", "2", { "c" => "< 2" }, "lib/d#{$$}.rb" # this
|
528
501
|
|
529
|
-
|
502
|
+
install_specs c1, c2, b1, b2, d1, d2, a1
|
530
503
|
|
531
|
-
|
504
|
+
a1.activate
|
532
505
|
|
533
|
-
|
534
|
-
|
506
|
+
assert_equal %w[a-1], loaded_spec_names
|
507
|
+
assert_equal ["b (> 0)", "d (> 0)"], unresolved_names
|
535
508
|
|
536
|
-
|
509
|
+
require "b#{$$}"
|
537
510
|
|
538
|
-
|
539
|
-
|
540
|
-
|
511
|
+
e = assert_raise Gem::LoadError do
|
512
|
+
require "d#{$$}"
|
513
|
+
end
|
541
514
|
|
542
|
-
|
515
|
+
assert_equal "unable to find a version of 'd' to activate", e.message
|
543
516
|
|
544
|
-
|
545
|
-
|
546
|
-
end
|
517
|
+
assert_equal %w[a-1 b-2 c-2], loaded_spec_names
|
518
|
+
assert_equal ["d (> 0)"], unresolved_names
|
547
519
|
end
|
548
520
|
|
549
521
|
def test_self_activate_deep_unambiguous
|
@@ -2146,43 +2118,39 @@ dependencies: []
|
|
2146
2118
|
end
|
2147
2119
|
|
2148
2120
|
def test_require_already_activated
|
2149
|
-
|
2150
|
-
a1 = util_spec "a", "1", nil, "lib/d#{$$}.rb"
|
2121
|
+
a1 = util_spec "a", "1", nil, "lib/d#{$$}.rb"
|
2151
2122
|
|
2152
|
-
|
2123
|
+
install_specs a1 # , a2, b1, b2, c1, c2
|
2153
2124
|
|
2154
|
-
|
2155
|
-
|
2156
|
-
|
2125
|
+
a1.activate
|
2126
|
+
assert_equal %w[a-1], loaded_spec_names
|
2127
|
+
assert_equal [], unresolved_names
|
2157
2128
|
|
2158
|
-
|
2129
|
+
assert require "d#{$$}"
|
2159
2130
|
|
2160
|
-
|
2161
|
-
|
2162
|
-
end
|
2131
|
+
assert_equal %w[a-1], loaded_spec_names
|
2132
|
+
assert_equal [], unresolved_names
|
2163
2133
|
end
|
2164
2134
|
|
2165
2135
|
def test_require_already_activated_indirect_conflict
|
2166
|
-
|
2167
|
-
|
2168
|
-
|
2169
|
-
|
2170
|
-
|
2171
|
-
|
2172
|
-
c2 = util_spec("c", "2", { "a" => "1" }, "lib/d#{$$}.rb") # conflicts with a-2
|
2136
|
+
a1 = util_spec "a", "1", "b" => "> 0"
|
2137
|
+
a2 = util_spec "a", "2", "b" => "> 0"
|
2138
|
+
b1 = util_spec "b", "1", "c" => ">= 1"
|
2139
|
+
b2 = util_spec "b", "2", "c" => ">= 2"
|
2140
|
+
c1 = util_spec "c", "1", nil, "lib/d#{$$}.rb"
|
2141
|
+
c2 = util_spec("c", "2", { "a" => "1" }, "lib/d#{$$}.rb") # conflicts with a-2
|
2173
2142
|
|
2174
|
-
|
2143
|
+
install_specs c1, b1, a1, a2, c2, b2
|
2175
2144
|
|
2176
|
-
|
2177
|
-
|
2178
|
-
|
2179
|
-
|
2145
|
+
a1.activate
|
2146
|
+
c1.activate
|
2147
|
+
assert_equal %w[a-1 c-1], loaded_spec_names
|
2148
|
+
assert_equal ["b (> 0)"], unresolved_names
|
2180
2149
|
|
2181
|
-
|
2150
|
+
assert require "d#{$$}"
|
2182
2151
|
|
2183
|
-
|
2184
|
-
|
2185
|
-
end
|
2152
|
+
assert_equal %w[a-1 c-1], loaded_spec_names
|
2153
|
+
assert_equal ["b (> 0)"], unresolved_names
|
2186
2154
|
end
|
2187
2155
|
|
2188
2156
|
def test_requirements
|
@@ -2781,6 +2749,34 @@ duplicate dependency on c (>= 1.2.3, development), (~> 1.2) use:
|
|
2781
2749
|
end
|
2782
2750
|
|
2783
2751
|
assert_equal %("#{f}" or "#{t}" is not a description), e.message
|
2752
|
+
|
2753
|
+
# Adding #{f} anywhere after the start of the description should be fine.
|
2754
|
+
@a1.description = "(some description) #{f}"
|
2755
|
+
|
2756
|
+
assert_nothing_raised do
|
2757
|
+
@a1.validate
|
2758
|
+
end
|
2759
|
+
|
2760
|
+
# Adding #{t} anywhere after the start of the description should be fine.
|
2761
|
+
@a1.description = "(some description) #{t}"
|
2762
|
+
|
2763
|
+
assert_nothing_raised do
|
2764
|
+
@a1.validate
|
2765
|
+
end
|
2766
|
+
|
2767
|
+
# Adding #{f} at the start of the second or later line should be fine.
|
2768
|
+
@a1.description = "(some description)\n#{f}"
|
2769
|
+
|
2770
|
+
assert_nothing_raised do
|
2771
|
+
@a1.validate
|
2772
|
+
end
|
2773
|
+
|
2774
|
+
# Adding #{t} at the start of the second or later line should be fine.
|
2775
|
+
@a1.description = "(some description)\n#{t}"
|
2776
|
+
|
2777
|
+
assert_nothing_raised do
|
2778
|
+
@a1.validate
|
2779
|
+
end
|
2784
2780
|
end
|
2785
2781
|
end
|
2786
2782
|
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require_relative 'helper'
|
2
|
+
require 'rubygems/uri'
|
3
|
+
|
4
|
+
class TestUri < Gem::TestCase
|
5
|
+
def test_to_s_not_string
|
6
|
+
assert_equal "not_a_uri", Gem::Uri.new(:not_a_uri).to_s
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_to_s_invalid_uri
|
10
|
+
assert_equal "https://www.example.com:80index", Gem::Uri.new("https://www.example.com:80index").to_s
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_redacted_with_user_pass
|
14
|
+
assert_equal "https://user:REDACTED@example.com", Gem::Uri.new("https://user:pass@example.com").redacted.to_s
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_redacted_with_token
|
18
|
+
assert_equal "https://REDACTED@example.com", Gem::Uri.new("https://token@example.com").redacted.to_s
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_redacted_with_user_x_oauth_basic
|
22
|
+
assert_equal "https://REDACTED:x-oauth-basic@example.com", Gem::Uri.new("https://token:x-oauth-basic@example.com").redacted.to_s
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_redacted_without_credential
|
26
|
+
assert_equal "https://www.example.com", Gem::Uri.new("https://www.example.com").redacted.to_s
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_redacted_with_invalid_uri
|
30
|
+
assert_equal "https://www.example.com:80index", Gem::Uri.new("https://www.example.com:80index").redacted.to_s
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_redacted_does_not_modify_uri
|
34
|
+
url = 'https://user:password@example.com'
|
35
|
+
uri = Gem::Uri.new(url)
|
36
|
+
assert_equal 'https://user:REDACTED@example.com', uri.redacted.to_s
|
37
|
+
assert_equal url, uri.to_s
|
38
|
+
end
|
39
|
+
end
|