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.
Files changed (159) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +60 -0
  3. data/Manifest.txt +12 -3
  4. data/bundler/CHANGELOG.md +50 -1
  5. data/bundler/README.md +1 -1
  6. data/bundler/lib/bundler/build_metadata.rb +2 -2
  7. data/bundler/lib/bundler/cli/check.rb +1 -1
  8. data/bundler/lib/bundler/cli/gem.rb +19 -2
  9. data/bundler/lib/bundler/cli/info.rb +11 -4
  10. data/bundler/lib/bundler/cli/issue.rb +4 -3
  11. data/bundler/lib/bundler/cli/remove.rb +1 -2
  12. data/bundler/lib/bundler/cli.rb +1 -0
  13. data/bundler/lib/bundler/compact_index_client.rb +2 -2
  14. data/bundler/lib/bundler/definition.rb +16 -6
  15. data/bundler/lib/bundler/digest.rb +71 -0
  16. data/bundler/lib/bundler/errors.rb +18 -2
  17. data/bundler/lib/bundler/fetcher.rb +2 -1
  18. data/bundler/lib/bundler/friendly_errors.rb +5 -30
  19. data/bundler/lib/bundler/gem_helper.rb +6 -17
  20. data/bundler/lib/bundler/installer.rb +0 -1
  21. data/bundler/lib/bundler/plugin/installer.rb +2 -0
  22. data/bundler/lib/bundler/plugin.rb +23 -6
  23. data/bundler/lib/bundler/rubygems_ext.rb +4 -0
  24. data/bundler/lib/bundler/rubygems_gem_installer.rb +20 -4
  25. data/bundler/lib/bundler/rubygems_integration.rb +28 -9
  26. data/bundler/lib/bundler/runtime.rb +1 -1
  27. data/bundler/lib/bundler/settings.rb +9 -1
  28. data/bundler/lib/bundler/source/git.rb +22 -4
  29. data/bundler/lib/bundler/source/rubygems.rb +43 -72
  30. data/bundler/lib/bundler/source.rb +2 -0
  31. data/bundler/lib/bundler/source_list.rb +4 -0
  32. data/bundler/lib/bundler/spec_set.rb +1 -1
  33. data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +2 -1
  34. data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +1 -1
  35. data/bundler/lib/bundler/vendor/connection_pool/LICENSE +20 -0
  36. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +19 -21
  37. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +1 -1
  38. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +57 -0
  39. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +39 -74
  40. data/bundler/lib/bundler/vendor/fileutils/LICENSE.txt +22 -0
  41. data/bundler/lib/bundler/vendor/molinillo/LICENSE +9 -0
  42. data/bundler/lib/bundler/vendor/net-http-persistent/README.rdoc +82 -0
  43. data/bundler/lib/bundler/vendor/thor/LICENSE.md +20 -0
  44. data/bundler/lib/bundler/vendor/uri/LICENSE.txt +22 -0
  45. data/bundler/lib/bundler/version.rb +1 -1
  46. data/bundler/lib/bundler/worker.rb +2 -2
  47. data/bundler/lib/bundler.rb +13 -18
  48. data/lib/rubygems/command_manager.rb +3 -3
  49. data/lib/rubygems/commands/build_command.rb +3 -3
  50. data/lib/rubygems/commands/cert_command.rb +15 -8
  51. data/lib/rubygems/commands/check_command.rb +4 -4
  52. data/lib/rubygems/commands/cleanup_command.rb +3 -3
  53. data/lib/rubygems/commands/contents_command.rb +2 -2
  54. data/lib/rubygems/commands/dependency_command.rb +3 -3
  55. data/lib/rubygems/commands/environment_command.rb +1 -1
  56. data/lib/rubygems/commands/fetch_command.rb +3 -3
  57. data/lib/rubygems/commands/generate_index_command.rb +2 -2
  58. data/lib/rubygems/commands/help_command.rb +1 -1
  59. data/lib/rubygems/commands/info_command.rb +2 -2
  60. data/lib/rubygems/commands/install_command.rb +12 -11
  61. data/lib/rubygems/commands/list_command.rb +2 -2
  62. data/lib/rubygems/commands/lock_command.rb +1 -1
  63. data/lib/rubygems/commands/mirror_command.rb +1 -1
  64. data/lib/rubygems/commands/open_command.rb +2 -2
  65. data/lib/rubygems/commands/outdated_command.rb +4 -4
  66. data/lib/rubygems/commands/owner_command.rb +4 -4
  67. data/lib/rubygems/commands/pristine_command.rb +5 -5
  68. data/lib/rubygems/commands/push_command.rb +4 -4
  69. data/lib/rubygems/commands/query_command.rb +3 -3
  70. data/lib/rubygems/commands/rdoc_command.rb +3 -3
  71. data/lib/rubygems/commands/search_command.rb +2 -2
  72. data/lib/rubygems/commands/server_command.rb +3 -3
  73. data/lib/rubygems/commands/setup_command.rb +6 -6
  74. data/lib/rubygems/commands/signin_command.rb +2 -2
  75. data/lib/rubygems/commands/signout_command.rb +1 -1
  76. data/lib/rubygems/commands/sources_command.rb +4 -4
  77. data/lib/rubygems/commands/specification_command.rb +4 -4
  78. data/lib/rubygems/commands/stale_command.rb +1 -1
  79. data/lib/rubygems/commands/uninstall_command.rb +3 -3
  80. data/lib/rubygems/commands/unpack_command.rb +5 -5
  81. data/lib/rubygems/commands/update_command.rb +9 -9
  82. data/lib/rubygems/commands/which_command.rb +1 -1
  83. data/lib/rubygems/commands/yank_command.rb +4 -4
  84. data/lib/rubygems/config_file.rb +1 -1
  85. data/lib/rubygems/core_ext/tcpsocket_init.rb +2 -2
  86. data/lib/rubygems/defaults.rb +1 -1
  87. data/lib/rubygems/dependency_installer.rb +8 -8
  88. data/lib/rubygems/dependency_list.rb +1 -1
  89. data/lib/rubygems/doctor.rb +2 -2
  90. data/lib/rubygems/errors.rb +1 -2
  91. data/lib/rubygems/exceptions.rb +1 -1
  92. data/lib/rubygems/gem_runner.rb +3 -3
  93. data/lib/rubygems/gemcutter_utilities.rb +2 -2
  94. data/lib/rubygems/indexer.rb +2 -2
  95. data/lib/rubygems/install_default_message.rb +2 -2
  96. data/lib/rubygems/install_message.rb +2 -2
  97. data/lib/rubygems/install_update_options.rb +2 -2
  98. data/lib/rubygems/installer.rb +8 -8
  99. data/lib/rubygems/local_remote_options.rb +1 -1
  100. data/lib/rubygems/mock_gem_ui.rb +1 -1
  101. data/lib/rubygems/package/tar_reader.rb +1 -1
  102. data/lib/rubygems/package.rb +36 -46
  103. data/lib/rubygems/package_task.rb +2 -2
  104. data/lib/rubygems/platform.rb +2 -1
  105. data/lib/rubygems/query_utils.rb +4 -4
  106. data/lib/rubygems/rdoc.rb +1 -1
  107. data/lib/rubygems/remote_fetcher.rb +16 -22
  108. data/lib/rubygems/request/connection_pools.rb +1 -1
  109. data/lib/rubygems/request/http_pool.rb +1 -1
  110. data/lib/rubygems/request.rb +7 -5
  111. data/lib/rubygems/request_set/lockfile/tokenizer.rb +1 -1
  112. data/lib/rubygems/request_set/lockfile.rb +1 -1
  113. data/lib/rubygems/request_set.rb +5 -5
  114. data/lib/rubygems/requirement.rb +1 -1
  115. data/lib/rubygems/resolver/git_specification.rb +1 -1
  116. data/lib/rubygems/resolver/installer_set.rb +3 -3
  117. data/lib/rubygems/resolver/molinillo/LICENSE +9 -0
  118. data/lib/rubygems/resolver/molinillo.rb +1 -1
  119. data/lib/rubygems/resolver/set.rb +0 -1
  120. data/lib/rubygems/resolver/specification.rb +1 -1
  121. data/lib/rubygems/resolver.rb +31 -31
  122. data/lib/rubygems/s3_uri_signer.rb +4 -5
  123. data/lib/rubygems/security/policy.rb +6 -4
  124. data/lib/rubygems/security/signer.rb +4 -5
  125. data/lib/rubygems/security.rb +54 -20
  126. data/lib/rubygems/security_option.rb +2 -2
  127. data/lib/rubygems/server.rb +2 -2
  128. data/lib/rubygems/source/git.rb +2 -2
  129. data/lib/rubygems/source.rb +7 -7
  130. data/lib/rubygems/spec_fetcher.rb +5 -5
  131. data/lib/rubygems/specification.rb +12 -12
  132. data/lib/rubygems/specification_policy.rb +2 -2
  133. data/lib/rubygems/uninstaller.rb +6 -6
  134. data/lib/rubygems/uri.rb +111 -0
  135. data/lib/rubygems/user_interaction.rb +3 -3
  136. data/lib/rubygems/util/licenses.rb +1 -1
  137. data/lib/rubygems/util.rb +1 -1
  138. data/lib/rubygems/validator.rb +2 -2
  139. data/lib/rubygems/version_option.rb +1 -1
  140. data/lib/rubygems.rb +16 -16
  141. data/rubygems-update.gemspec +1 -1
  142. data/test/rubygems/helper.rb +4 -12
  143. data/test/rubygems/private_ec_key.pem +9 -0
  144. data/test/rubygems/test_gem.rb +59 -71
  145. data/test/rubygems/test_gem_commands_cert_command.rb +63 -4
  146. data/test/rubygems/test_gem_commands_install_command.rb +25 -0
  147. data/test/rubygems/test_gem_package.rb +27 -26
  148. data/test/rubygems/test_gem_platform.rb +1 -0
  149. data/test/rubygems/test_gem_remote_fetcher.rb +30 -0
  150. data/test/rubygems/test_gem_request.rb +35 -9
  151. data/test/rubygems/test_gem_resolver_installer_set.rb +18 -0
  152. data/test/rubygems/test_gem_security.rb +32 -4
  153. data/test/rubygems/test_gem_source_fetch_problem.rb +10 -0
  154. data/test/rubygems/test_gem_specification.rb +228 -232
  155. data/test/rubygems/test_gem_uri.rb +39 -0
  156. metadata +18 -9
  157. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/monotonic_time.rb +0 -66
  158. data/lib/rubygems/uri_parser.rb +0 -34
  159. 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
- save_loaded_features do
131
- a1 = util_spec "a", "1", "b" => "> 0"
132
- b1 = util_spec("b", "1", { "c" => ">= 1" }, "lib/d#{$$}.rb")
133
- b2 = util_spec("b", "2", { "c" => ">= 2" }, "lib/d#{$$}.rb")
134
- c1 = util_spec "c", "1"
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
- Gem::Specification.reset
138
- install_specs c1, c2, b1, b2, a1
136
+ Gem::Specification.reset
137
+ install_specs c1, c2, b1, b2, a1
139
138
 
140
- a1.activate
141
- assert_equal %w[a-1], loaded_spec_names
142
- assert_equal ["b (> 0)"], unresolved_names
139
+ a1.activate
140
+ assert_equal %w[a-1], loaded_spec_names
141
+ assert_equal ["b (> 0)"], unresolved_names
143
142
 
144
- require "d#{$$}"
143
+ require "d#{$$}"
145
144
 
146
- assert_equal %w[a-1 b-2 c-2], loaded_spec_names
147
- assert_equal [], unresolved_names
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
- save_loaded_features do
153
- num_of_pkg = 7
154
- num_of_version_per_pkg = 3
155
- packages = (0..num_of_pkg).map do |pkgi|
156
- (0..num_of_version_per_pkg).map do |pkg_version|
157
- deps = Hash[((pkgi + 1)..num_of_pkg).map do |deppkgi|
158
- ["pkg#{deppkgi}", ">= 0"]
159
- end]
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
- base = util_spec "pkg_base", "1", {"pkg0" => ">= 0"}
159
+ end
160
+ base = util_spec "pkg_base", "1", {"pkg0" => ">= 0"}
164
161
 
165
- Gem::Specification.reset
166
- install_specs(*packages.flatten.reverse)
167
- install_specs base
168
- base.activate
162
+ Gem::Specification.reset
163
+ install_specs(*packages.flatten.reverse)
164
+ install_specs base
165
+ base.activate
169
166
 
170
- tms = Benchmark.measure do
171
- assert_raise(LoadError) { require 'no_such_file_foo' }
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
- save_loaded_features do
179
- a1 = util_spec "a", "1", "b" => "> 0"
180
- b1 = util_spec "b", "1", "c" => ">= 1"
181
- b2 = util_spec "b", "2", "c" => ">= 2"
182
- c1 = util_spec "c", "1", nil, "lib/d#{$$}.rb"
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
- install_specs c1, c2, b1, b2, a1
180
+ install_specs c1, c2, b1, b2, a1
186
181
 
187
- a1.activate
188
- assert_equal %w[a-1], loaded_spec_names
189
- assert_equal ["b (> 0)"], unresolved_names
182
+ a1.activate
183
+ assert_equal %w[a-1], loaded_spec_names
184
+ assert_equal ["b (> 0)"], unresolved_names
190
185
 
191
- require "d#{$$}"
186
+ require "d#{$$}"
192
187
 
193
- assert_equal %w[a-1 b-2 c-2], loaded_spec_names
194
- assert_equal [], unresolved_names
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
- save_loaded_features do
200
- a1 = util_spec "a", "1", "b" => "> 0"
201
- a2 = util_spec "a", "2", "b" => "> 0"
202
- b1 = util_spec "b", "1", "c" => ">= 1"
203
- b2 = util_spec "b", "2", "c" => ">= 2"
204
- c1 = util_spec "c", "1", nil, "lib/d#{$$}.rb"
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
- install_specs c1, b1, a1, a2, c2, b2
200
+ install_specs c1, b1, a1, a2, c2, b2
208
201
 
209
- a2.activate
210
- assert_equal %w[a-2], loaded_spec_names
211
- assert_equal ["b (> 0)"], unresolved_names
202
+ a2.activate
203
+ assert_equal %w[a-2], loaded_spec_names
204
+ assert_equal ["b (> 0)"], unresolved_names
212
205
 
213
- require "d#{$$}"
206
+ require "d#{$$}"
214
207
 
215
- assert_equal %w[a-2 b-1 c-1], loaded_spec_names
216
- assert_equal [], unresolved_names
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
- save_loaded_features do
222
- a1 = util_spec "a", "1", "b" => "> 0"
223
- b1 = util_spec "b", "1", "c" => ">= 1"
224
- b2 = util_spec "b", "2", "c" => ">= 2"
225
- c1 = util_spec "c", "1"
226
- c2 = util_spec "c", "2"
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
- install_specs d1, c1, c2, b1, b2, a1
220
+ install_specs d1, c1, c2, b1, b2, a1
230
221
 
231
- a1.activate
232
- assert_equal %w[a-1], loaded_spec_names
233
- assert_equal ["b (> 0)"], unresolved_names
222
+ a1.activate
223
+ assert_equal %w[a-1], loaded_spec_names
224
+ assert_equal ["b (> 0)"], unresolved_names
234
225
 
235
- require "d#{$$}"
226
+ require "d#{$$}"
236
227
 
237
- assert_equal %w[a-1 d-1], loaded_spec_names
238
- assert_equal ["b (> 0)"], unresolved_names
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
- save_loaded_features do
244
- a1 = util_spec "a", "1", "b" => "> 0"
245
- b1 = util_spec "b", "1", "c" => ">= 0" # unresolved
246
- b2 = util_spec "b", "2", "c" => ">= 0"
247
- c1 = util_spec "c", "1", nil, "lib/c#{$$}.rb" # 1st level
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
- install_specs c1, c2, b1, b2, a1
239
+ install_specs c1, c2, b1, b2, a1
251
240
 
252
- a1.activate
241
+ a1.activate
253
242
 
254
- require "c#{$$}"
243
+ require "c#{$$}"
255
244
 
256
- assert_equal %w[a-1 b-2 c-2], loaded_spec_names
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
- save_loaded_features do
262
- a1 = util_spec "a", "1", "b" => "> 0"
263
- b1 = util_spec "b", "1", "c" => ">= 0" # unresolved
264
- b2 = util_spec "b", "2", "c" => ">= 0"
265
- c1 = util_spec "c", "1", "d" => ">= 0" # 1st level
266
- c2 = util_spec "c", "2", "d" => ">= 0"
267
- d1 = util_spec "d", "1", nil, "lib/d#{$$}.rb" # 2nd level
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
- install_specs d1, d2, c1, c2, b1, b2, a1
257
+ install_specs d1, d2, c1, c2, b1, b2, a1
271
258
 
272
- a1.activate
259
+ a1.activate
273
260
 
274
- require "d#{$$}"
261
+ require "d#{$$}"
275
262
 
276
- assert_equal %w[a-1 b-2 c-2 d-2], loaded_spec_names
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
- save_loaded_features do
282
- a1 = util_spec "a", "1", "b" => "> 0"
283
- b1 = util_spec "b", "1", "c" => ">= 0" # unresolved
284
- b2 = util_spec "b", "2", "c" => ">= 0"
285
- c1 = util_spec "c", "1", "d" => "<= 2" # 1st level
286
- c2 = util_spec "c", "2", "d" => "<= 2"
287
- d1 = util_spec "d", "1", nil, "lib/d#{$$}.rb" # 2nd level
288
- d2 = util_spec "d", "2", nil, "lib/d#{$$}.rb"
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
- install_specs d1, d2, d3, c1, c2, b1, b2, a1
276
+ install_specs d1, d2, d3, c1, c2, b1, b2, a1
292
277
 
293
- a1.activate
278
+ a1.activate
294
279
 
295
- require "d#{$$}"
280
+ require "d#{$$}"
296
281
 
297
- assert_equal %w[a-1 b-2 c-2 d-2], loaded_spec_names
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
- save_loaded_features do
303
- a1 = util_spec "a", "1", "b" => "> 0"
304
- b1 = util_spec "b", "1", "c" => ">= 0" # unresolved
305
- b2 = util_spec "b", "2", "c" => ">= 0"
306
- c1 = util_spec "c", "1", "d" => "<= 2" # 1st level
307
- c2 = util_spec "c", "2", "d" => "<= 2"
308
- d1 = util_spec "d", "1", nil, "lib/d#{$$}.rb" # 2nd level
309
- d2 = util_spec "d", "2", nil, "lib/d#{$$}.rb"
310
- d3 = util_spec "d", "3", nil, "lib/d#{$$}.rb"
311
- e = util_spec "anti_d", "1", nil, "lib/d#{$$}.rb"
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
- a1.activate
298
+ a1.activate
316
299
 
317
- require "d#{$$}"
300
+ require "d#{$$}"
318
301
 
319
- assert_equal %w[a-1 b-2 c-2 d-2], loaded_spec_names
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
- save_loaded_features do
325
- base = util_spec "0", "1", "A" => ">= 1"
326
- a1 = util_spec "A", "1", {"c" => ">= 2", "b" => "> 0"}, "lib/a.rb"
327
- a2 = util_spec "A", "2", {"c" => ">= 2", "b" => "> 0"}, "lib/a.rb"
328
- b1 = util_spec "b", "1", {"c" => "= 1"}, "lib/d#{$$}.rb"
329
- b2 = util_spec "b", "2", {"c" => "= 2"}, "lib/d#{$$}.rb"
330
- c1 = util_spec "c", "1", {}, "lib/c.rb"
331
- c2 = util_spec "c", "2", {}, "lib/c.rb"
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
- require "d#{$$}"
315
+ install_specs c1, c2, c3, b1, b2, a1, a2, base
341
316
 
342
- assert_equal %w[0-1 A-2 b-2 c-2], loaded_spec_names
343
- assert_equal [], unresolved_names
344
- end
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
- save_loaded_features do
349
- a1 = util_spec "a", "1", "b" => "> 0"
350
- b1 = util_spec "b", "1", "c" => ">= 1" # unresolved
351
- b2 = util_spec "b", "2", "c" => ">= 1", "d" => "< 3"
352
- c1 = util_spec "c", "1", "d" => "<= 2" # 1st level
353
- c2 = util_spec "c", "2", "d" => "<= 2"
354
- c3 = util_spec "c", "3", "d" => "<= 3"
355
- d1 = util_spec "d", "1", nil, "lib/d#{$$}.rb" # 2nd level
356
- d2 = util_spec "d", "2", nil, "lib/d#{$$}.rb"
357
- d3 = util_spec "d", "3", nil, "lib/d#{$$}.rb"
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
- install_specs d1, d2, d3, c1, c2, c3, b1, b2, a1
340
+ a1.activate
360
341
 
361
- a1.activate
342
+ require "d#{$$}"
362
343
 
363
- require "d#{$$}"
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
- save_loaded_features do
371
- a1 = util_spec "a", "1", "b" => "> 0"
372
- b1 = util_spec "b", "1", "xc" => ">= 1" # unresolved
373
- b2 = util_spec "b", "2", "xc" => ">= 1", "d" => "< 3"
374
- c1 = util_spec "xc", "1", "d" => "<= 3" # 1st level
375
- c2 = util_spec "xc", "2", "d" => "<= 2"
376
- c3 = util_spec "xc", "3", "d" => "<= 3"
377
- d1 = util_spec "d", "1", nil, "lib/d#{$$}.rb" # 2nd level
378
- d2 = util_spec "d", "2", nil, "lib/d#{$$}.rb"
379
- d3 = util_spec "d", "3", nil, "lib/d#{$$}.rb"
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
- install_specs d1, d2, d3, c1, c2, c3, b1, b2, a1
382
-
383
- a1.activate
360
+ a1.activate
384
361
 
385
- require "d#{$$}"
362
+ require "d#{$$}"
386
363
 
387
- assert_includes [%w[a-1 b-2 d-2 xc-3], %w[a-1 b-2 d-2]], loaded_spec_names
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
- save_loaded_features do
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
- save_loaded_features do
521
- a1 = util_spec "a", "1", "b" => "> 0", "d" => "> 0" # this
522
- b1 = util_spec "b", "1", { "c" => ">= 1" }, "lib/b#{$$}.rb"
523
- b2 = util_spec "b", "2", { "c" => ">= 2" }, "lib/b#{$$}.rb" # this
524
- c1 = util_spec "c", "1"
525
- c2 = util_spec "c", "2" # this
526
- d1 = util_spec "d", "1", { "c" => "< 2" }, "lib/d#{$$}.rb"
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
- install_specs c1, c2, b1, b2, d1, d2, a1
502
+ install_specs c1, c2, b1, b2, d1, d2, a1
530
503
 
531
- a1.activate
504
+ a1.activate
532
505
 
533
- assert_equal %w[a-1], loaded_spec_names
534
- assert_equal ["b (> 0)", "d (> 0)"], unresolved_names
506
+ assert_equal %w[a-1], loaded_spec_names
507
+ assert_equal ["b (> 0)", "d (> 0)"], unresolved_names
535
508
 
536
- require "b#{$$}"
509
+ require "b#{$$}"
537
510
 
538
- e = assert_raise Gem::LoadError do
539
- require "d#{$$}"
540
- end
511
+ e = assert_raise Gem::LoadError do
512
+ require "d#{$$}"
513
+ end
541
514
 
542
- assert_equal "unable to find a version of 'd' to activate", e.message
515
+ assert_equal "unable to find a version of 'd' to activate", e.message
543
516
 
544
- assert_equal %w[a-1 b-2 c-2], loaded_spec_names
545
- assert_equal ["d (> 0)"], unresolved_names
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
- save_loaded_features do
2150
- a1 = util_spec "a", "1", nil, "lib/d#{$$}.rb"
2121
+ a1 = util_spec "a", "1", nil, "lib/d#{$$}.rb"
2151
2122
 
2152
- install_specs a1 # , a2, b1, b2, c1, c2
2123
+ install_specs a1 # , a2, b1, b2, c1, c2
2153
2124
 
2154
- a1.activate
2155
- assert_equal %w[a-1], loaded_spec_names
2156
- assert_equal [], unresolved_names
2125
+ a1.activate
2126
+ assert_equal %w[a-1], loaded_spec_names
2127
+ assert_equal [], unresolved_names
2157
2128
 
2158
- assert require "d#{$$}"
2129
+ assert require "d#{$$}"
2159
2130
 
2160
- assert_equal %w[a-1], loaded_spec_names
2161
- assert_equal [], unresolved_names
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
- save_loaded_features do
2167
- a1 = util_spec "a", "1", "b" => "> 0"
2168
- a2 = util_spec "a", "2", "b" => "> 0"
2169
- b1 = util_spec "b", "1", "c" => ">= 1"
2170
- b2 = util_spec "b", "2", "c" => ">= 2"
2171
- c1 = util_spec "c", "1", nil, "lib/d#{$$}.rb"
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
- install_specs c1, b1, a1, a2, c2, b2
2143
+ install_specs c1, b1, a1, a2, c2, b2
2175
2144
 
2176
- a1.activate
2177
- c1.activate
2178
- assert_equal %w[a-1 c-1], loaded_spec_names
2179
- assert_equal ["b (> 0)"], unresolved_names
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
- assert require "d#{$$}"
2150
+ assert require "d#{$$}"
2182
2151
 
2183
- assert_equal %w[a-1 c-1], loaded_spec_names
2184
- assert_equal ["b (> 0)"], unresolved_names
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