rubygems-update 3.3.18 → 3.4.19

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.
Files changed (615) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1429 -1064
  3. data/CONTRIBUTING.md +31 -8
  4. data/Manifest.txt +61 -36
  5. data/POLICIES.md +55 -20
  6. data/README.md +19 -6
  7. data/bundler/CHANGELOG.md +457 -1
  8. data/bundler/README.md +3 -6
  9. data/bundler/UPGRADING.md +11 -4
  10. data/bundler/bundler.gemspec +8 -10
  11. data/bundler/exe/bundle +5 -16
  12. data/bundler/lib/bundler/build_metadata.rb +2 -2
  13. data/bundler/lib/bundler/cli/add.rb +1 -1
  14. data/bundler/lib/bundler/cli/binstubs.rb +6 -2
  15. data/bundler/lib/bundler/cli/check.rb +1 -1
  16. data/bundler/lib/bundler/cli/common.rb +2 -0
  17. data/bundler/lib/bundler/cli/console.rb +2 -2
  18. data/bundler/lib/bundler/cli/doctor.rb +4 -6
  19. data/bundler/lib/bundler/cli/gem.rb +62 -40
  20. data/bundler/lib/bundler/cli/info.rb +1 -1
  21. data/bundler/lib/bundler/cli/init.rb +6 -2
  22. data/bundler/lib/bundler/cli/install.rb +8 -6
  23. data/bundler/lib/bundler/cli/lock.rb +8 -5
  24. data/bundler/lib/bundler/cli/open.rb +6 -4
  25. data/bundler/lib/bundler/cli/outdated.rb +14 -7
  26. data/bundler/lib/bundler/cli/platform.rb +7 -5
  27. data/bundler/lib/bundler/cli/viz.rb +1 -1
  28. data/bundler/lib/bundler/cli.rb +53 -7
  29. data/bundler/lib/bundler/compact_index_client/cache.rb +1 -1
  30. data/bundler/lib/bundler/compact_index_client/updater.rb +40 -39
  31. data/bundler/lib/bundler/constants.rb +1 -1
  32. data/bundler/lib/bundler/current_ruby.rb +16 -5
  33. data/bundler/lib/bundler/definition.rb +262 -133
  34. data/bundler/lib/bundler/dependency.rb +20 -86
  35. data/bundler/lib/bundler/digest.rb +1 -1
  36. data/bundler/lib/bundler/dsl.rb +6 -7
  37. data/bundler/lib/bundler/endpoint_specification.rb +2 -13
  38. data/bundler/lib/bundler/env.rb +2 -2
  39. data/bundler/lib/bundler/environment_preserver.rb +3 -2
  40. data/bundler/lib/bundler/errors.rb +1 -11
  41. data/bundler/lib/bundler/feature_flag.rb +0 -2
  42. data/bundler/lib/bundler/fetcher/compact_index.rb +11 -13
  43. data/bundler/lib/bundler/fetcher/dependency.rb +2 -6
  44. data/bundler/lib/bundler/fetcher/downloader.rb +4 -5
  45. data/bundler/lib/bundler/fetcher/index.rb +1 -2
  46. data/bundler/lib/bundler/fetcher.rb +21 -15
  47. data/bundler/lib/bundler/force_platform.rb +18 -0
  48. data/bundler/lib/bundler/friendly_errors.rb +1 -4
  49. data/bundler/lib/bundler/gem_helper.rb +3 -4
  50. data/bundler/lib/bundler/gem_helpers.rb +7 -2
  51. data/bundler/lib/bundler/gem_version_promoter.rb +53 -98
  52. data/bundler/lib/bundler/graph.rb +3 -3
  53. data/bundler/lib/bundler/index.rb +13 -47
  54. data/bundler/lib/bundler/injector.rb +5 -4
  55. data/bundler/lib/bundler/inline.rb +9 -11
  56. data/bundler/lib/bundler/installer/parallel_installer.rb +4 -34
  57. data/bundler/lib/bundler/installer/standalone.rb +13 -9
  58. data/bundler/lib/bundler/installer.rb +17 -29
  59. data/bundler/lib/bundler/lazy_specification.rb +54 -53
  60. data/bundler/lib/bundler/lockfile_generator.rb +3 -3
  61. data/bundler/lib/bundler/lockfile_parser.rb +17 -16
  62. data/bundler/lib/bundler/man/bundle-add.1 +6 -2
  63. data/bundler/lib/bundler/man/bundle-add.1.ronn +4 -1
  64. data/bundler/lib/bundler/man/bundle-binstubs.1 +1 -1
  65. data/bundler/lib/bundler/man/bundle-cache.1 +9 -3
  66. data/bundler/lib/bundler/man/bundle-cache.1.ronn +9 -2
  67. data/bundler/lib/bundler/man/bundle-check.1 +1 -1
  68. data/bundler/lib/bundler/man/bundle-clean.1 +2 -2
  69. data/bundler/lib/bundler/man/bundle-clean.1.ronn +1 -1
  70. data/bundler/lib/bundler/man/bundle-config.1 +26 -10
  71. data/bundler/lib/bundler/man/bundle-config.1.ronn +17 -10
  72. data/bundler/lib/bundler/man/bundle-console.1 +53 -0
  73. data/bundler/lib/bundler/man/bundle-console.1.ronn +44 -0
  74. data/bundler/lib/bundler/man/bundle-doctor.1 +1 -1
  75. data/bundler/lib/bundler/man/bundle-exec.1 +6 -6
  76. data/bundler/lib/bundler/man/bundle-exec.1.ronn +6 -6
  77. data/bundler/lib/bundler/man/bundle-gem.1 +27 -37
  78. data/bundler/lib/bundler/man/bundle-gem.1.ronn +5 -5
  79. data/bundler/lib/bundler/man/bundle-help.1 +13 -0
  80. data/bundler/lib/bundler/man/bundle-help.1.ronn +12 -0
  81. data/bundler/lib/bundler/man/bundle-info.1 +3 -3
  82. data/bundler/lib/bundler/man/bundle-info.1.ronn +3 -3
  83. data/bundler/lib/bundler/man/bundle-init.1 +5 -1
  84. data/bundler/lib/bundler/man/bundle-init.1.ronn +2 -0
  85. data/bundler/lib/bundler/man/bundle-inject.1 +5 -2
  86. data/bundler/lib/bundler/man/bundle-inject.1.ronn +3 -1
  87. data/bundler/lib/bundler/man/bundle-install.1 +5 -30
  88. data/bundler/lib/bundler/man/bundle-install.1.ronn +6 -29
  89. data/bundler/lib/bundler/man/bundle-list.1 +1 -1
  90. data/bundler/lib/bundler/man/bundle-lock.1 +1 -1
  91. data/bundler/lib/bundler/man/bundle-open.1 +22 -2
  92. data/bundler/lib/bundler/man/bundle-open.1.ronn +9 -1
  93. data/bundler/lib/bundler/man/bundle-outdated.1 +13 -9
  94. data/bundler/lib/bundler/man/bundle-outdated.1.ronn +12 -9
  95. data/bundler/lib/bundler/man/bundle-platform.1 +16 -6
  96. data/bundler/lib/bundler/man/bundle-platform.1.ronn +14 -7
  97. data/bundler/lib/bundler/man/bundle-plugin.1 +81 -0
  98. data/bundler/lib/bundler/man/bundle-plugin.1.ronn +59 -0
  99. data/bundler/lib/bundler/man/bundle-pristine.1 +1 -1
  100. data/bundler/lib/bundler/man/bundle-remove.1 +1 -1
  101. data/bundler/lib/bundler/man/bundle-show.1 +1 -1
  102. data/bundler/lib/bundler/man/bundle-update.1 +1 -1
  103. data/bundler/lib/bundler/man/bundle-version.1 +35 -0
  104. data/bundler/lib/bundler/man/bundle-version.1.ronn +24 -0
  105. data/bundler/lib/bundler/man/bundle-viz.1 +4 -1
  106. data/bundler/lib/bundler/man/bundle-viz.1.ronn +2 -0
  107. data/bundler/lib/bundler/man/bundle.1 +15 -10
  108. data/bundler/lib/bundler/man/bundle.1.ronn +12 -7
  109. data/bundler/lib/bundler/man/gemfile.5 +55 -55
  110. data/bundler/lib/bundler/man/gemfile.5.ronn +57 -53
  111. data/bundler/lib/bundler/man/index.txt +4 -0
  112. data/bundler/lib/bundler/match_metadata.rb +13 -0
  113. data/bundler/lib/bundler/match_remote_metadata.rb +29 -0
  114. data/bundler/lib/bundler/mirror.rb +5 -7
  115. data/bundler/lib/bundler/plugin/index.rb +5 -5
  116. data/bundler/lib/bundler/plugin/installer/rubygems.rb +0 -4
  117. data/bundler/lib/bundler/plugin/installer.rb +5 -2
  118. data/bundler/lib/bundler/plugin.rb +3 -1
  119. data/bundler/lib/bundler/remote_specification.rb +7 -12
  120. data/bundler/lib/bundler/resolver/base.rb +107 -0
  121. data/bundler/lib/bundler/resolver/candidate.rb +94 -0
  122. data/bundler/lib/bundler/resolver/incompatibility.rb +15 -0
  123. data/bundler/lib/bundler/resolver/package.rb +72 -0
  124. data/bundler/lib/bundler/resolver/root.rb +25 -0
  125. data/bundler/lib/bundler/resolver/spec_group.rb +42 -71
  126. data/bundler/lib/bundler/resolver.rb +335 -328
  127. data/bundler/lib/bundler/ruby_dsl.rb +7 -1
  128. data/bundler/lib/bundler/ruby_version.rb +8 -8
  129. data/bundler/lib/bundler/rubygems_ext.rb +100 -9
  130. data/bundler/lib/bundler/rubygems_gem_installer.rb +23 -14
  131. data/bundler/lib/bundler/rubygems_integration.rb +11 -15
  132. data/bundler/lib/bundler/runtime.rb +2 -6
  133. data/bundler/lib/bundler/safe_marshal.rb +31 -0
  134. data/bundler/lib/bundler/settings.rb +5 -11
  135. data/bundler/lib/bundler/setup.rb +4 -1
  136. data/bundler/lib/bundler/shared_helpers.rb +3 -3
  137. data/bundler/lib/bundler/source/git/git_proxy.rb +237 -74
  138. data/bundler/lib/bundler/source/git.rb +55 -30
  139. data/bundler/lib/bundler/source/metadata.rb +1 -2
  140. data/bundler/lib/bundler/source/path/installer.rb +1 -22
  141. data/bundler/lib/bundler/source/path.rb +6 -6
  142. data/bundler/lib/bundler/source/rubygems.rb +26 -81
  143. data/bundler/lib/bundler/source.rb +1 -1
  144. data/bundler/lib/bundler/source_list.rb +8 -2
  145. data/bundler/lib/bundler/spec_set.rb +60 -37
  146. data/bundler/lib/bundler/templates/Executable +1 -1
  147. data/bundler/lib/bundler/templates/Executable.bundler +5 -10
  148. data/bundler/lib/bundler/templates/Executable.standalone +2 -0
  149. data/bundler/lib/bundler/templates/newgem/Cargo.toml.tt +7 -0
  150. data/bundler/lib/bundler/templates/newgem/Gemfile.tt +3 -0
  151. data/bundler/lib/bundler/templates/newgem/README.md.tt +6 -4
  152. data/bundler/lib/bundler/templates/newgem/Rakefile.tt +12 -1
  153. data/bundler/lib/bundler/templates/newgem/bin/console.tt +0 -4
  154. data/bundler/lib/bundler/templates/newgem/circleci/config.yml.tt +12 -0
  155. data/bundler/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +15 -0
  156. data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf-c.rb.tt +10 -0
  157. data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt +6 -0
  158. data/bundler/lib/bundler/templates/newgem/ext/newgem/newgem.c.tt +1 -1
  159. data/bundler/lib/bundler/templates/newgem/ext/newgem/src/lib.rs.tt +12 -0
  160. data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +10 -0
  161. data/bundler/lib/bundler/templates/newgem/gitignore.tt +3 -0
  162. data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +13 -4
  163. data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +9 -2
  164. data/bundler/lib/bundler/ui/rg_proxy.rb +1 -1
  165. data/bundler/lib/bundler/ui/shell.rb +35 -12
  166. data/bundler/lib/bundler/ui/silent.rb +21 -5
  167. data/bundler/lib/bundler/uri_normalizer.rb +23 -0
  168. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +3 -3
  169. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +0 -1
  170. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +3 -1
  171. data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +1351 -409
  172. data/bundler/lib/bundler/vendor/net-http-persistent/README.rdoc +1 -1
  173. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +1 -1
  174. data/bundler/lib/bundler/vendor/pub_grub/LICENSE.txt +21 -0
  175. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/assignment.rb +20 -0
  176. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb +189 -0
  177. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/failure_writer.rb +182 -0
  178. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb +150 -0
  179. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/package.rb +43 -0
  180. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/partial_solution.rb +121 -0
  181. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb +45 -0
  182. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/solve_failure.rb +19 -0
  183. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb +60 -0
  184. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/term.rb +105 -0
  185. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb +3 -0
  186. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb +129 -0
  187. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb +411 -0
  188. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb +248 -0
  189. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_union.rb +178 -0
  190. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub.rb +31 -0
  191. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +1 -1
  192. data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +64 -16
  193. data/bundler/lib/bundler/vendor/uri/lib/uri/file.rb +7 -1
  194. data/bundler/lib/bundler/vendor/uri/lib/uri/ftp.rb +2 -1
  195. data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +27 -7
  196. data/bundler/lib/bundler/vendor/uri/lib/uri/http.rb +40 -2
  197. data/bundler/lib/bundler/vendor/uri/lib/uri/https.rb +2 -1
  198. data/bundler/lib/bundler/vendor/uri/lib/uri/ldap.rb +1 -1
  199. data/bundler/lib/bundler/vendor/uri/lib/uri/ldaps.rb +2 -1
  200. data/bundler/lib/bundler/vendor/uri/lib/uri/mailto.rb +2 -2
  201. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +15 -9
  202. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +11 -6
  203. data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
  204. data/bundler/lib/bundler/vendor/uri/lib/uri/ws.rb +1 -2
  205. data/bundler/lib/bundler/vendor/uri/lib/uri/wss.rb +2 -1
  206. data/bundler/lib/bundler/vendor/uri/lib/uri.rb +3 -2
  207. data/bundler/lib/bundler/vendored_persistent.rb +1 -33
  208. data/bundler/lib/bundler/{vendored_tmpdir.rb → vendored_pub_grub.rb} +1 -1
  209. data/bundler/lib/bundler/version.rb +5 -1
  210. data/bundler/lib/bundler/worker.rb +5 -7
  211. data/bundler/lib/bundler.rb +25 -77
  212. data/{bin → exe}/gem +4 -5
  213. data/{bin → exe}/update_rubygems +12 -10
  214. data/lib/rubygems/available_set.rb +4 -3
  215. data/lib/rubygems/basic_specification.rb +5 -4
  216. data/lib/rubygems/bundler_version_finder.rb +2 -2
  217. data/lib/rubygems/command.rb +41 -32
  218. data/lib/rubygems/command_manager.rb +30 -15
  219. data/lib/rubygems/commands/build_command.rb +12 -8
  220. data/lib/rubygems/commands/cert_command.rb +34 -33
  221. data/lib/rubygems/commands/check_command.rb +21 -20
  222. data/lib/rubygems/commands/cleanup_command.rb +18 -17
  223. data/lib/rubygems/commands/contents_command.rb +14 -13
  224. data/lib/rubygems/commands/dependency_command.rb +17 -16
  225. data/lib/rubygems/commands/environment_command.rb +6 -5
  226. data/lib/rubygems/commands/exec_command.rb +249 -0
  227. data/lib/rubygems/commands/fetch_command.rb +10 -9
  228. data/lib/rubygems/commands/generate_index_command.rb +18 -17
  229. data/lib/rubygems/commands/help_command.rb +7 -6
  230. data/lib/rubygems/commands/info_command.rb +3 -3
  231. data/lib/rubygems/commands/install_command.rb +28 -23
  232. data/lib/rubygems/commands/list_command.rb +4 -3
  233. data/lib/rubygems/commands/lock_command.rb +5 -4
  234. data/lib/rubygems/commands/mirror_command.rb +4 -3
  235. data/lib/rubygems/commands/open_command.rb +10 -9
  236. data/lib/rubygems/commands/outdated_command.rb +6 -5
  237. data/lib/rubygems/commands/owner_command.rb +17 -14
  238. data/lib/rubygems/commands/pristine_command.rb +46 -36
  239. data/lib/rubygems/commands/push_command.rb +9 -8
  240. data/lib/rubygems/commands/query_command.rb +9 -8
  241. data/lib/rubygems/commands/rdoc_command.rb +21 -19
  242. data/lib/rubygems/commands/search_command.rb +4 -3
  243. data/lib/rubygems/commands/server_command.rb +4 -3
  244. data/lib/rubygems/commands/setup_command.rb +97 -106
  245. data/lib/rubygems/commands/signin_command.rb +10 -9
  246. data/lib/rubygems/commands/signout_command.rb +8 -7
  247. data/lib/rubygems/commands/sources_command.rb +22 -21
  248. data/lib/rubygems/commands/specification_command.rb +14 -13
  249. data/lib/rubygems/commands/stale_command.rb +3 -2
  250. data/lib/rubygems/commands/uninstall_command.rb +44 -40
  251. data/lib/rubygems/commands/unpack_command.rb +14 -13
  252. data/lib/rubygems/commands/update_command.rb +42 -63
  253. data/lib/rubygems/commands/which_command.rb +8 -7
  254. data/lib/rubygems/commands/yank_command.rb +12 -11
  255. data/lib/rubygems/config_file.rb +55 -21
  256. data/lib/rubygems/core_ext/kernel_gem.rb +1 -6
  257. data/lib/rubygems/core_ext/kernel_require.rb +109 -115
  258. data/lib/rubygems/core_ext/kernel_warn.rb +33 -37
  259. data/lib/rubygems/core_ext/tcpsocket_init.rb +3 -1
  260. data/lib/rubygems/defaults.rb +33 -18
  261. data/lib/rubygems/dependency.rb +15 -11
  262. data/lib/rubygems/dependency_installer.rb +38 -37
  263. data/lib/rubygems/dependency_list.rb +7 -6
  264. data/lib/rubygems/deprecate.rb +3 -2
  265. data/lib/rubygems/doctor.rb +19 -18
  266. data/lib/rubygems/errors.rb +3 -2
  267. data/lib/rubygems/exceptions.rb +16 -8
  268. data/lib/rubygems/ext/build_error.rb +2 -1
  269. data/lib/rubygems/ext/builder.rb +37 -21
  270. data/lib/rubygems/ext/cargo_builder/link_flag_converter.rb +9 -5
  271. data/lib/rubygems/ext/cargo_builder.rb +150 -111
  272. data/lib/rubygems/ext/cmake_builder.rb +2 -2
  273. data/lib/rubygems/ext/configure_builder.rb +2 -1
  274. data/lib/rubygems/ext/ext_conf_builder.rb +11 -9
  275. data/lib/rubygems/ext/rake_builder.rb +7 -5
  276. data/lib/rubygems/ext.rb +8 -7
  277. data/lib/rubygems/gem_runner.rb +6 -5
  278. data/lib/rubygems/gemcutter_utilities/webauthn_listener/response.rb +163 -0
  279. data/lib/rubygems/gemcutter_utilities/webauthn_listener.rb +105 -0
  280. data/lib/rubygems/gemcutter_utilities/webauthn_poller.rb +78 -0
  281. data/lib/rubygems/gemcutter_utilities.rb +90 -34
  282. data/lib/rubygems/indexer.rb +29 -28
  283. data/lib/rubygems/install_default_message.rb +3 -2
  284. data/lib/rubygems/install_message.rb +3 -2
  285. data/lib/rubygems/install_update_options.rb +56 -55
  286. data/lib/rubygems/installer.rb +54 -46
  287. data/lib/rubygems/installer_uninstaller_utils.rb +2 -2
  288. data/lib/rubygems/local_remote_options.rb +19 -20
  289. data/lib/rubygems/mock_gem_ui.rb +3 -2
  290. data/lib/rubygems/name_tuple.rb +5 -4
  291. data/lib/rubygems/optparse/lib/optparse.rb +20 -15
  292. data/lib/rubygems/optparse.rb +1 -1
  293. data/lib/rubygems/package/digest_io.rb +1 -0
  294. data/lib/rubygems/package/file_source.rb +3 -2
  295. data/lib/rubygems/package/io_source.rb +1 -0
  296. data/lib/rubygems/package/old.rb +9 -8
  297. data/lib/rubygems/package/source.rb +1 -0
  298. data/lib/rubygems/package/tar_header.rb +63 -62
  299. data/lib/rubygems/package/tar_reader/entry.rb +91 -9
  300. data/lib/rubygems/package/tar_reader.rb +2 -29
  301. data/lib/rubygems/package/tar_writer.rb +8 -7
  302. data/lib/rubygems/package.rb +64 -48
  303. data/lib/rubygems/package_task.rb +5 -4
  304. data/lib/rubygems/path_support.rb +1 -0
  305. data/lib/rubygems/platform.rb +79 -53
  306. data/lib/rubygems/psych_tree.rb +2 -1
  307. data/lib/rubygems/query_utils.rb +35 -35
  308. data/lib/rubygems/rdoc.rb +3 -2
  309. data/lib/rubygems/remote_fetcher.rb +23 -22
  310. data/lib/rubygems/request/connection_pools.rb +4 -4
  311. data/lib/rubygems/request/http_pool.rb +2 -1
  312. data/lib/rubygems/request/https_pool.rb +1 -0
  313. data/lib/rubygems/request.rb +23 -22
  314. data/lib/rubygems/request_set/gem_dependency_api.rb +123 -123
  315. data/lib/rubygems/request_set/lockfile/parser.rb +28 -27
  316. data/lib/rubygems/request_set/lockfile/tokenizer.rb +5 -3
  317. data/lib/rubygems/request_set/lockfile.rb +6 -5
  318. data/lib/rubygems/request_set.rb +20 -19
  319. data/lib/rubygems/requirement.rb +15 -14
  320. data/lib/rubygems/resolver/activation_request.rb +4 -3
  321. data/lib/rubygems/resolver/api_set.rb +5 -4
  322. data/lib/rubygems/resolver/api_specification.rb +7 -6
  323. data/lib/rubygems/resolver/best_set.rb +6 -5
  324. data/lib/rubygems/resolver/composed_set.rb +1 -0
  325. data/lib/rubygems/resolver/conflict.rb +11 -10
  326. data/lib/rubygems/resolver/current_set.rb +1 -0
  327. data/lib/rubygems/resolver/dependency_request.rb +3 -2
  328. data/lib/rubygems/resolver/git_set.rb +3 -2
  329. data/lib/rubygems/resolver/git_specification.rb +7 -6
  330. data/lib/rubygems/resolver/index_set.rb +4 -3
  331. data/lib/rubygems/resolver/index_specification.rb +7 -5
  332. data/lib/rubygems/resolver/installed_specification.rb +5 -4
  333. data/lib/rubygems/resolver/installer_set.rb +15 -17
  334. data/lib/rubygems/resolver/local_specification.rb +3 -2
  335. data/lib/rubygems/resolver/lock_set.rb +5 -4
  336. data/lib/rubygems/resolver/lock_specification.rb +5 -4
  337. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +1 -1
  338. data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +32 -26
  339. data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +1 -1
  340. data/lib/rubygems/resolver/molinillo.rb +2 -1
  341. data/lib/rubygems/resolver/requirement_list.rb +1 -0
  342. data/lib/rubygems/resolver/set.rb +1 -0
  343. data/lib/rubygems/resolver/source_set.rb +2 -0
  344. data/lib/rubygems/resolver/spec_specification.rb +1 -0
  345. data/lib/rubygems/resolver/specification.rb +2 -1
  346. data/lib/rubygems/resolver/stats.rb +2 -1
  347. data/lib/rubygems/resolver/vendor_set.rb +2 -1
  348. data/lib/rubygems/resolver/vendor_specification.rb +4 -3
  349. data/lib/rubygems/resolver.rb +41 -40
  350. data/lib/rubygems/s3_uri_signer.rb +10 -8
  351. data/lib/rubygems/safe_yaml.rb +4 -2
  352. data/lib/rubygems/security/policies.rb +48 -47
  353. data/lib/rubygems/security/policy.rb +19 -18
  354. data/lib/rubygems/security/signer.rb +6 -5
  355. data/lib/rubygems/security/trust_dir.rb +5 -4
  356. data/lib/rubygems/security.rb +30 -42
  357. data/lib/rubygems/security_option.rb +6 -5
  358. data/lib/rubygems/shellwords.rb +3 -0
  359. data/lib/rubygems/source/git.rb +22 -22
  360. data/lib/rubygems/source/installed.rb +2 -1
  361. data/lib/rubygems/source/local.rb +3 -2
  362. data/lib/rubygems/source/lock.rb +1 -0
  363. data/lib/rubygems/source/specific_file.rb +2 -1
  364. data/lib/rubygems/source/vendor.rb +1 -0
  365. data/lib/rubygems/source.rb +16 -16
  366. data/lib/rubygems/spec_fetcher.rb +10 -9
  367. data/lib/rubygems/specification.rb +121 -114
  368. data/lib/rubygems/specification_policy.rb +36 -15
  369. data/lib/rubygems/stub_specification.rb +11 -9
  370. data/lib/rubygems/text.rb +2 -2
  371. data/lib/rubygems/tsort/lib/tsort.rb +308 -310
  372. data/lib/rubygems/tsort.rb +1 -1
  373. data/lib/rubygems/uninstaller.rb +19 -18
  374. data/lib/rubygems/update_suggestion.rb +69 -0
  375. data/lib/rubygems/uri.rb +4 -4
  376. data/lib/rubygems/uri_formatter.rb +1 -1
  377. data/lib/rubygems/user_interaction.rb +37 -21
  378. data/lib/rubygems/util/licenses.rb +4 -3
  379. data/lib/rubygems/util/list.rb +1 -0
  380. data/lib/rubygems/util.rb +12 -15
  381. data/lib/rubygems/validator.rb +7 -6
  382. data/lib/rubygems/version.rb +17 -11
  383. data/lib/rubygems/version_option.rb +4 -3
  384. data/lib/rubygems.rb +89 -68
  385. data/rubygems-update.gemspec +10 -8
  386. data/setup.rb +10 -9
  387. data/test/rubygems/alternate_cert.pem +14 -14
  388. data/test/rubygems/alternate_cert_32.pem +15 -15
  389. data/test/rubygems/alternate_key.pem +25 -25
  390. data/test/rubygems/bad_rake.rb +1 -0
  391. data/test/rubygems/bundler_test_gem.rb +421 -0
  392. data/test/rubygems/child_cert.pem +15 -16
  393. data/test/rubygems/child_cert_32.pem +15 -16
  394. data/test/rubygems/child_key.pem +25 -25
  395. data/test/rubygems/encrypted_private_key.pem +26 -26
  396. data/test/rubygems/expired_cert.pem +15 -15
  397. data/test/rubygems/fake_certlib/openssl.rb +1 -0
  398. data/test/rubygems/future_cert.pem +15 -15
  399. data/test/rubygems/future_cert_32.pem +15 -15
  400. data/test/rubygems/good_rake.rb +1 -0
  401. data/test/rubygems/grandchild_cert.pem +15 -16
  402. data/test/rubygems/grandchild_cert_32.pem +15 -16
  403. data/test/rubygems/grandchild_key.pem +25 -25
  404. data/test/rubygems/helper.rb +172 -151
  405. data/test/rubygems/installer_test_case.rb +14 -13
  406. data/test/rubygems/invalid_issuer_cert.pem +16 -16
  407. data/test/rubygems/invalid_issuer_cert_32.pem +16 -16
  408. data/test/rubygems/invalid_key.pem +25 -25
  409. data/test/rubygems/invalid_signer_cert.pem +15 -15
  410. data/test/rubygems/invalid_signer_cert_32.pem +15 -15
  411. data/test/rubygems/invalidchild_cert.pem +15 -16
  412. data/test/rubygems/invalidchild_cert_32.pem +15 -16
  413. data/test/rubygems/invalidchild_key.pem +25 -25
  414. data/test/rubygems/multifactor_auth_utilities.rb +111 -0
  415. data/test/rubygems/package/tar_test_case.rb +53 -17
  416. data/test/rubygems/packages/Bluebie-legs-0.6.2.gem +0 -0
  417. data/test/rubygems/plugin/exception/rubygems_plugin.rb +2 -1
  418. data/test/rubygems/plugin/load/rubygems_plugin.rb +1 -0
  419. data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +2 -1
  420. data/test/rubygems/private_key.pem +25 -25
  421. data/test/rubygems/public_cert.pem +16 -16
  422. data/test/rubygems/public_cert_32.pem +15 -15
  423. data/test/rubygems/public_key.pem +7 -7
  424. data/test/rubygems/rubygems/commands/crash_command.rb +1 -0
  425. data/test/rubygems/rubygems_plugin.rb +3 -2
  426. data/test/rubygems/simple_gem.rb +2 -1
  427. data/test/rubygems/specifications/bar-0.0.2.gemspec +2 -0
  428. data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +6 -4
  429. data/test/rubygems/test_bundled_ca.rb +13 -12
  430. data/test/rubygems/test_config.rb +5 -4
  431. data/test/rubygems/test_deprecate.rb +5 -4
  432. data/test/rubygems/test_exit.rb +9 -3
  433. data/test/rubygems/test_gem.rb +339 -677
  434. data/test/rubygems/test_gem_available_set.rb +22 -21
  435. data/test/rubygems/test_gem_bundler_version_finder.rb +6 -4
  436. data/test/rubygems/test_gem_command.rb +45 -44
  437. data/test/rubygems/test_gem_command_manager.rb +96 -30
  438. data/test/rubygems/test_gem_commands_build_command.rb +74 -63
  439. data/test/rubygems/test_gem_commands_cert_command.rb +98 -99
  440. data/test/rubygems/test_gem_commands_check_command.rb +5 -4
  441. data/test/rubygems/test_gem_commands_cleanup_command.rb +41 -40
  442. data/test/rubygems/test_gem_commands_contents_command.rb +28 -27
  443. data/test/rubygems/test_gem_commands_dependency_command.rb +37 -36
  444. data/test/rubygems/test_gem_commands_environment_command.rb +17 -16
  445. data/test/rubygems/test_gem_commands_exec_command.rb +853 -0
  446. data/test/rubygems/test_gem_commands_fetch_command.rb +38 -37
  447. data/test/rubygems/test_gem_commands_generate_index_command.rb +8 -7
  448. data/test/rubygems/test_gem_commands_help_command.rb +14 -13
  449. data/test/rubygems/test_gem_commands_info_command.rb +29 -2
  450. data/test/rubygems/test_gem_commands_install_command.rb +152 -132
  451. data/test/rubygems/test_gem_commands_list_command.rb +5 -4
  452. data/test/rubygems/test_gem_commands_lock_command.rb +11 -10
  453. data/test/rubygems/test_gem_commands_mirror.rb +3 -2
  454. data/test/rubygems/test_gem_commands_open_command.rb +5 -4
  455. data/test/rubygems/test_gem_commands_outdated_command.rb +10 -9
  456. data/test/rubygems/test_gem_commands_owner_command.rb +227 -50
  457. data/test/rubygems/test_gem_commands_pristine_command.rb +142 -93
  458. data/test/rubygems/test_gem_commands_push_command.rb +189 -64
  459. data/test/rubygems/test_gem_commands_query_command.rb +74 -73
  460. data/test/rubygems/test_gem_commands_search_command.rb +3 -2
  461. data/test/rubygems/test_gem_commands_server_command.rb +3 -2
  462. data/test/rubygems/test_gem_commands_setup_command.rb +123 -96
  463. data/test/rubygems/test_gem_commands_signin_command.rb +71 -31
  464. data/test/rubygems/test_gem_commands_signout_command.rb +3 -3
  465. data/test/rubygems/test_gem_commands_sources_command.rb +29 -29
  466. data/test/rubygems/test_gem_commands_specification_command.rb +33 -32
  467. data/test/rubygems/test_gem_commands_stale_command.rb +5 -4
  468. data/test/rubygems/test_gem_commands_uninstall_command.rb +99 -81
  469. data/test/rubygems/test_gem_commands_unpack_command.rb +32 -31
  470. data/test/rubygems/test_gem_commands_update_command.rb +96 -95
  471. data/test/rubygems/test_gem_commands_which_command.rb +7 -6
  472. data/test/rubygems/test_gem_commands_yank_command.rb +162 -43
  473. data/test/rubygems/test_gem_config_file.rb +94 -81
  474. data/test/rubygems/test_gem_dependency.rb +76 -73
  475. data/test/rubygems/test_gem_dependency_installer.rb +200 -165
  476. data/test/rubygems/test_gem_dependency_list.rb +48 -47
  477. data/test/rubygems/test_gem_dependency_resolution_error.rb +5 -4
  478. data/test/rubygems/test_gem_doctor.rb +27 -26
  479. data/test/rubygems/test_gem_ext_builder.rb +60 -61
  480. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +4 -4
  481. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/{Cargo.lock → ext/custom_name_lib/Cargo.lock} +23 -33
  482. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/{Cargo.toml → ext/custom_name_lib/Cargo.toml} +1 -1
  483. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/{src → ext/custom_name_lib/src}/lib.rs +1 -1
  484. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/lib/custom_name.rb +3 -0
  485. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +37 -33
  486. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +1 -1
  487. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/rust_ruby_example.gemspec +2 -0
  488. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs +12 -0
  489. data/test/rubygems/test_gem_ext_cargo_builder.rb +48 -59
  490. data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +20 -19
  491. data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +21 -36
  492. data/test/rubygems/test_gem_ext_cmake_builder.rb +16 -15
  493. data/test/rubygems/test_gem_ext_configure_builder.rb +14 -13
  494. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +51 -52
  495. data/test/rubygems/test_gem_ext_rake_builder.rb +16 -15
  496. data/test/rubygems/test_gem_gem_runner.rb +15 -9
  497. data/test/rubygems/test_gem_gemcutter_utilities.rb +170 -84
  498. data/test/rubygems/test_gem_impossible_dependencies_error.rb +5 -4
  499. data/test/rubygems/test_gem_indexer.rb +87 -67
  500. data/test/rubygems/test_gem_install_update_options.rb +17 -16
  501. data/test/rubygems/test_gem_installer.rb +422 -304
  502. data/test/rubygems/test_gem_local_remote_options.rb +11 -10
  503. data/test/rubygems/test_gem_name_tuple.rb +5 -4
  504. data/test/rubygems/test_gem_package.rb +243 -231
  505. data/test/rubygems/test_gem_package_old.rb +14 -13
  506. data/test/rubygems/test_gem_package_tar_header.rb +48 -47
  507. data/test/rubygems/test_gem_package_tar_reader.rb +56 -8
  508. data/test/rubygems/test_gem_package_tar_reader_entry.rb +162 -16
  509. data/test/rubygems/test_gem_package_tar_writer.rb +77 -76
  510. data/test/rubygems/test_gem_package_task.rb +19 -18
  511. data/test/rubygems/test_gem_path_support.rb +15 -14
  512. data/test/rubygems/test_gem_platform.rb +333 -227
  513. data/test/rubygems/test_gem_rdoc.rb +15 -14
  514. data/test/rubygems/test_gem_remote_fetcher.rb +155 -154
  515. data/test/rubygems/test_gem_request.rb +64 -58
  516. data/test/rubygems/test_gem_request_connection_pools.rb +30 -29
  517. data/test/rubygems/test_gem_request_set.rb +101 -100
  518. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +210 -211
  519. data/test/rubygems/test_gem_request_set_lockfile.rb +87 -86
  520. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +58 -57
  521. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +63 -62
  522. data/test/rubygems/test_gem_requirement.rb +48 -41
  523. data/test/rubygems/test_gem_resolver.rb +167 -99
  524. data/test/rubygems/test_gem_resolver_activation_request.rb +7 -6
  525. data/test/rubygems/test_gem_resolver_api_set.rb +34 -33
  526. data/test/rubygems/test_gem_resolver_api_specification.rb +48 -47
  527. data/test/rubygems/test_gem_resolver_best_set.rb +23 -22
  528. data/test/rubygems/test_gem_resolver_composed_set.rb +2 -1
  529. data/test/rubygems/test_gem_resolver_conflict.rb +13 -12
  530. data/test/rubygems/test_gem_resolver_dependency_request.rb +16 -15
  531. data/test/rubygems/test_gem_resolver_git_set.rb +22 -21
  532. data/test/rubygems/test_gem_resolver_git_specification.rb +22 -21
  533. data/test/rubygems/test_gem_resolver_index_set.rb +13 -12
  534. data/test/rubygems/test_gem_resolver_index_specification.rb +17 -16
  535. data/test/rubygems/test_gem_resolver_installed_specification.rb +6 -5
  536. data/test/rubygems/test_gem_resolver_installer_set.rb +79 -34
  537. data/test/rubygems/test_gem_resolver_local_specification.rb +8 -7
  538. data/test/rubygems/test_gem_resolver_lock_set.rb +13 -12
  539. data/test/rubygems/test_gem_resolver_lock_specification.rb +18 -17
  540. data/test/rubygems/test_gem_resolver_requirement_list.rb +2 -1
  541. data/test/rubygems/test_gem_resolver_specification.rb +9 -8
  542. data/test/rubygems/test_gem_resolver_vendor_set.rb +7 -6
  543. data/test/rubygems/test_gem_resolver_vendor_specification.rb +11 -10
  544. data/test/rubygems/test_gem_security.rb +69 -68
  545. data/test/rubygems/test_gem_security_policy.rb +72 -72
  546. data/test/rubygems/test_gem_security_signer.rb +35 -34
  547. data/test/rubygems/test_gem_security_trust_dir.rb +7 -6
  548. data/test/rubygems/test_gem_silent_ui.rb +39 -32
  549. data/test/rubygems/test_gem_source.rb +45 -44
  550. data/test/rubygems/test_gem_source_fetch_problem.rb +10 -9
  551. data/test/rubygems/test_gem_source_git.rb +69 -62
  552. data/test/rubygems/test_gem_source_installed.rb +17 -16
  553. data/test/rubygems/test_gem_source_list.rb +6 -5
  554. data/test/rubygems/test_gem_source_local.rb +15 -14
  555. data/test/rubygems/test_gem_source_lock.rb +32 -31
  556. data/test/rubygems/test_gem_source_specific_file.rb +18 -17
  557. data/test/rubygems/test_gem_source_subpath_problem.rb +8 -7
  558. data/test/rubygems/test_gem_source_vendor.rb +14 -13
  559. data/test/rubygems/test_gem_spec_fetcher.rb +73 -72
  560. data/test/rubygems/test_gem_specification.rb +533 -469
  561. data/test/rubygems/test_gem_stream_ui.rb +53 -22
  562. data/test/rubygems/test_gem_stub_specification.rb +33 -32
  563. data/test/rubygems/test_gem_text.rb +2 -1
  564. data/test/rubygems/test_gem_uninstaller.rb +118 -117
  565. data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +4 -3
  566. data/test/rubygems/test_gem_update_suggestion.rb +209 -0
  567. data/test/rubygems/test_gem_uri.rb +6 -4
  568. data/test/rubygems/test_gem_uri_formatter.rb +15 -14
  569. data/test/rubygems/test_gem_util.rb +24 -23
  570. data/test/rubygems/test_gem_validator.rb +8 -8
  571. data/test/rubygems/test_gem_version.rb +24 -16
  572. data/test/rubygems/test_gem_version_option.rb +16 -15
  573. data/test/rubygems/test_kernel.rb +43 -48
  574. data/test/rubygems/test_project_sanity.rb +32 -3
  575. data/test/rubygems/test_remote_fetch_error.rb +8 -7
  576. data/test/rubygems/test_require.rb +118 -103
  577. data/test/rubygems/test_rubygems.rb +10 -8
  578. data/test/rubygems/test_webauthn_listener.rb +143 -0
  579. data/test/rubygems/test_webauthn_listener_response.rb +93 -0
  580. data/test/rubygems/test_webauthn_poller.rb +124 -0
  581. data/test/rubygems/utilities.rb +98 -34
  582. data/test/rubygems/wrong_key_cert.pem +15 -15
  583. data/test/rubygems/wrong_key_cert_32.pem +15 -15
  584. data/test/test_changelog_generator.rb +1 -1
  585. metadata +99 -46
  586. data/bundler/lib/bundler/dep_proxy.rb +0 -55
  587. data/bundler/lib/bundler/templates/gems.rb +0 -5
  588. data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt +0 -5
  589. data/bundler/lib/bundler/templates/newgem/travis.yml.tt +0 -6
  590. data/bundler/lib/bundler/vendor/molinillo/LICENSE +0 -9
  591. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +0 -57
  592. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +0 -88
  593. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb +0 -36
  594. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +0 -66
  595. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +0 -62
  596. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +0 -63
  597. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +0 -61
  598. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +0 -126
  599. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +0 -46
  600. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +0 -36
  601. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +0 -164
  602. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +0 -255
  603. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +0 -149
  604. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +0 -6
  605. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +0 -112
  606. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb +0 -67
  607. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +0 -839
  608. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +0 -46
  609. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/state.rb +0 -58
  610. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -11
  611. data/bundler/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +0 -154
  612. data/bundler/lib/bundler/vendored_molinillo.rb +0 -4
  613. data/bundler/lib/bundler/version_ranges.rb +0 -122
  614. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/build.rb +0 -21
  615. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/build.rb +0 -21
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
- require_relative 'helper'
3
- require 'rubygems/commands/update_command'
2
+
3
+ require_relative "helper"
4
+ require "rubygems/commands/update_command"
4
5
 
5
6
  class TestGemCommandsUpdateCommand < Gem::TestCase
6
7
  def setup
@@ -12,20 +13,20 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
12
13
  @cmd.options[:document] = []
13
14
 
14
15
  @specs = spec_fetcher do |fetcher|
15
- fetcher.download 'a', 1
16
- fetcher.download 'a', 2
17
- fetcher.download 'a', '3.a'
16
+ fetcher.download "a", 1
17
+ fetcher.download "a", 2
18
+ fetcher.download "a", "3.a"
18
19
  end
19
20
 
20
- @a1_path = @specs['a-1'].cache_file
21
- @a2_path = @specs['a-1'].cache_file
22
- @a3a_path = @specs['a-3.a'].cache_file
21
+ @a1_path = @specs["a-1"].cache_file
22
+ @a2_path = @specs["a-1"].cache_file
23
+ @a3a_path = @specs["a-3.a"].cache_file
23
24
  end
24
25
 
25
26
  def test_execute
26
27
  spec_fetcher do |fetcher|
27
- fetcher.download 'a', 2
28
- fetcher.spec 'a', 1
28
+ fetcher.download "a", 2
29
+ fetcher.spec "a", 1
29
30
  end
30
31
 
31
32
  @cmd.options[:args] = []
@@ -43,11 +44,11 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
43
44
 
44
45
  def test_execute_multiple
45
46
  spec_fetcher do |fetcher|
46
- fetcher.download 'a', 2
47
- fetcher.download 'ab', 2
47
+ fetcher.download "a", 2
48
+ fetcher.download "ab", 2
48
49
 
49
- fetcher.spec 'a', 1
50
- fetcher.spec 'ab', 1
50
+ fetcher.spec "a", 1
51
+ fetcher.spec "ab", 1
51
52
  end
52
53
 
53
54
  @cmd.options[:args] = %w[a]
@@ -65,7 +66,7 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
65
66
 
66
67
  def test_execute_system
67
68
  spec_fetcher do |fetcher|
68
- fetcher.download 'rubygems-update', 9 do |s|
69
+ fetcher.download "rubygems-update", 9 do |s|
69
70
  s.files = %w[setup.rb]
70
71
  end
71
72
  end
@@ -87,7 +88,7 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
87
88
 
88
89
  def test_execute_system_at_latest
89
90
  spec_fetcher do |fetcher|
90
- fetcher.download 'rubygems-update', Gem::VERSION do |s|
91
+ fetcher.download "rubygems-update", Gem::VERSION do |s|
91
92
  s.files = %w[setup.rb]
92
93
  end
93
94
  end
@@ -108,9 +109,9 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
108
109
 
109
110
  def test_execute_system_when_latest_does_not_support_your_ruby
110
111
  spec_fetcher do |fetcher|
111
- fetcher.download 'rubygems-update', 9 do |s|
112
+ fetcher.download "rubygems-update", 9 do |s|
112
113
  s.files = %w[setup.rb]
113
- s.required_ruby_version = '> 9'
114
+ s.required_ruby_version = "> 9"
114
115
  end
115
116
  end
116
117
 
@@ -133,11 +134,11 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
133
134
 
134
135
  def test_execute_system_multiple
135
136
  spec_fetcher do |fetcher|
136
- fetcher.download 'rubygems-update', 8 do |s|
137
+ fetcher.download "rubygems-update", 8 do |s|
137
138
  s.files = %w[setup.rb]
138
139
  end
139
140
 
140
- fetcher.download 'rubygems-update', 9 do |s|
141
+ fetcher.download "rubygems-update", 9 do |s|
141
142
  s.files = %w[setup.rb]
142
143
  end
143
144
  end
@@ -159,7 +160,7 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
159
160
 
160
161
  def test_execute_system_update_installed
161
162
  spec_fetcher do |fetcher|
162
- fetcher.download 'rubygems-update', 8 do |s|
163
+ fetcher.download "rubygems-update", 8 do |s|
163
164
  s.files = %w[setup.rb]
164
165
  end
165
166
  end
@@ -170,7 +171,7 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
170
171
  @cmd.execute
171
172
 
172
173
  spec_fetcher do |fetcher|
173
- fetcher.download 'rubygems-update', 9 do |s|
174
+ fetcher.download "rubygems-update", 9 do |s|
174
175
  s.files = %w[setup.rb]
175
176
  end
176
177
  end
@@ -193,7 +194,7 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
193
194
 
194
195
  def test_execute_system_update_installed_in_non_default_gem_path
195
196
  rubygems_update_spec = quick_gem "rubygems-update", 9 do |s|
196
- write_file File.join(@tempdir, 'setup.rb')
197
+ write_file File.join(@tempdir, "setup.rb")
197
198
 
198
199
  s.files += %w[setup.rb]
199
200
  end
@@ -224,11 +225,11 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
224
225
 
225
226
  def test_execute_system_specific
226
227
  spec_fetcher do |fetcher|
227
- fetcher.download 'rubygems-update', 8 do |s|
228
+ fetcher.download "rubygems-update", 8 do |s|
228
229
  s.files = %w[setup.rb]
229
230
  end
230
231
 
231
- fetcher.download 'rubygems-update', 9 do |s|
232
+ fetcher.download "rubygems-update", 9 do |s|
232
233
  s.files = %w[setup.rb]
233
234
  end
234
235
  end
@@ -250,7 +251,7 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
250
251
 
251
252
  def test_execute_system_specific_older_than_minimum_supported_rubygems
252
253
  spec_fetcher do |fetcher|
253
- fetcher.download 'rubygems-update', "2.5.1" do |s|
254
+ fetcher.download "rubygems-update", "2.5.1" do |s|
254
255
  s.files = %w[setup.rb]
255
256
  end
256
257
  end
@@ -279,7 +280,7 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
279
280
 
280
281
  def test_execute_system_specific_older_than_3_2_removes_plugins_dir
281
282
  spec_fetcher do |fetcher|
282
- fetcher.download 'rubygems-update', 3.1 do |s|
283
+ fetcher.download "rubygems-update", 3.1 do |s|
283
284
  s.files = %w[setup.rb]
284
285
  end
285
286
  end
@@ -297,7 +298,7 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
297
298
  @cmd.options[:system] = "3.1"
298
299
 
299
300
  FileUtils.mkdir_p Gem.plugindir
300
- write_file File.join(Gem.plugindir, 'a_plugin.rb')
301
+ write_file File.join(Gem.plugindir, "a_plugin.rb")
301
302
 
302
303
  @cmd.execute
303
304
 
@@ -306,7 +307,7 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
306
307
 
307
308
  def test_execute_system_specific_newer_than_or_equal_to_3_2_leaves_plugins_dir_alone
308
309
  spec_fetcher do |fetcher|
309
- fetcher.download 'rubygems-update', "3.2.a" do |s|
310
+ fetcher.download "rubygems-update", "3.2.a" do |s|
310
311
  s.files = %w[setup.rb]
311
312
  end
312
313
  end
@@ -324,7 +325,7 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
324
325
  @cmd.options[:system] = "3.2.a"
325
326
 
326
327
  FileUtils.mkdir_p Gem.plugindir
327
- plugin_file = File.join(Gem.plugindir, 'a_plugin.rb')
328
+ plugin_file = File.join(Gem.plugindir, "a_plugin.rb")
328
329
  write_file plugin_file
329
330
 
330
331
  @cmd.execute
@@ -335,11 +336,11 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
335
336
 
336
337
  def test_execute_system_specifically_to_latest_version
337
338
  spec_fetcher do |fetcher|
338
- fetcher.download 'rubygems-update', 8 do |s|
339
+ fetcher.download "rubygems-update", 8 do |s|
339
340
  s.files = %w[setup.rb]
340
341
  end
341
342
 
342
- fetcher.download 'rubygems-update', 9 do |s|
343
+ fetcher.download "rubygems-update", 9 do |s|
343
344
  s.files = %w[setup.rb]
344
345
  end
345
346
  end
@@ -400,12 +401,12 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
400
401
  @cmd.options[:system] = true
401
402
  @cmd.options[:silent] = true
402
403
 
403
- assert_equal true, @cmd.update_rubygems_arguments.include?('--silent')
404
+ assert_equal true, @cmd.update_rubygems_arguments.include?("--silent")
404
405
  end
405
406
 
406
407
  def test_execute_system_silent
407
408
  spec_fetcher do |fetcher|
408
- fetcher.download 'rubygems-update', 9 do |s|
409
+ fetcher.download "rubygems-update", 9 do |s|
409
410
  s.files = %w[setup.rb]
410
411
  end
411
412
  end
@@ -429,12 +430,12 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
429
430
 
430
431
  def test_execute_dependencies
431
432
  spec_fetcher do |fetcher|
432
- fetcher.download 'a', 2, 'b' => 2, 'c' => 2
433
- fetcher.download 'b', 2
434
- fetcher.download 'c', 2
433
+ fetcher.download "a", 2, "b" => 2, "c" => 2
434
+ fetcher.download "b", 2
435
+ fetcher.download "c", 2
435
436
 
436
- fetcher.spec 'a', 1, 'c' => '1.2'
437
- fetcher.spec 'c', '1.2'
437
+ fetcher.spec "a", 1, "c" => "1.2"
438
+ fetcher.spec "c", "1.2"
438
439
  end
439
440
 
440
441
  Gem::Specification.reset
@@ -456,8 +457,8 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
456
457
 
457
458
  def test_execute_rdoc
458
459
  spec_fetcher do |fetcher|
459
- fetcher.download 'a', 2
460
- fetcher.spec 'a', 1
460
+ fetcher.download "a", 2
461
+ fetcher.spec "a", 1
461
462
  end
462
463
 
463
464
  Gem.done_installing(&Gem::RDoc.method(:generation_hook))
@@ -472,16 +473,16 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
472
473
 
473
474
  wait_for_child_process_to_exit
474
475
 
475
- a2 = @specs['a-2']
476
+ a2 = @specs["a-2"]
476
477
 
477
- assert_path_exist File.join(a2.doc_dir, 'rdoc')
478
+ assert_path_exist File.join(a2.doc_dir, "rdoc")
478
479
  end
479
480
 
480
481
  def test_execute_named
481
482
  spec_fetcher do |fetcher|
482
- fetcher.download 'a', 2
483
+ fetcher.download "a", 2
483
484
 
484
- fetcher.spec 'a', 1
485
+ fetcher.spec "a", 1
485
486
  end
486
487
 
487
488
  @cmd.options[:args] = %w[a]
@@ -500,10 +501,10 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
500
501
 
501
502
  def test_execute_named_some_up_to_date
502
503
  spec_fetcher do |fetcher|
503
- fetcher.download 'a', 2
504
- fetcher.spec 'a', 1
504
+ fetcher.download "a", 2
505
+ fetcher.spec "a", 1
505
506
 
506
- fetcher.spec 'b', 2
507
+ fetcher.spec "b", 2
507
508
  end
508
509
 
509
510
  @cmd.options[:args] = %w[a b]
@@ -523,7 +524,7 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
523
524
 
524
525
  def test_execute_named_up_to_date
525
526
  spec_fetcher do |fetcher|
526
- fetcher.spec 'a', 2
527
+ fetcher.spec "a", 2
527
528
  end
528
529
 
529
530
  @cmd.options[:args] = %w[a]
@@ -542,9 +543,9 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
542
543
 
543
544
  def test_execute_named_up_to_date_prerelease
544
545
  spec_fetcher do |fetcher|
545
- fetcher.download 'a', '3.a'
546
+ fetcher.download "a", "3.a"
546
547
 
547
- fetcher.gem 'a', 2
548
+ fetcher.gem "a", 2
548
549
  end
549
550
 
550
551
  @cmd.options[:args] = %w[a]
@@ -564,7 +565,7 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
564
565
 
565
566
  def test_execute_up_to_date
566
567
  spec_fetcher do |fetcher|
567
- fetcher.gem 'a', 2
568
+ fetcher.gem "a", 2
568
569
  end
569
570
 
570
571
  @cmd.options[:args] = []
@@ -606,73 +607,73 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
606
607
 
607
608
  def test_fetch_remote_gems
608
609
  specs = spec_fetcher do |fetcher|
609
- fetcher.gem 'a', 1
610
- fetcher.gem 'a', 2
610
+ fetcher.gem "a", 1
611
+ fetcher.gem "a", 2
611
612
  end
612
613
 
613
614
  expected = [
614
- [Gem::NameTuple.new('a', v(2), Gem::Platform::RUBY),
615
+ [Gem::NameTuple.new("a", v(2), Gem::Platform::RUBY),
615
616
  Gem::Source.new(@gem_repo)],
616
617
  ]
617
618
 
618
- assert_equal expected, @cmd.fetch_remote_gems(specs['a-1'])
619
+ assert_equal expected, @cmd.fetch_remote_gems(specs["a-1"])
619
620
  end
620
621
 
621
622
  def test_fetch_remote_gems_error
622
623
  Gem.sources.replace %w[http://nonexistent.example]
623
624
 
624
625
  assert_raise Gem::RemoteFetcher::FetchError do
625
- @cmd.fetch_remote_gems @specs['a-1']
626
+ @cmd.fetch_remote_gems @specs["a-1"]
626
627
  end
627
628
  end
628
629
 
629
630
  def test_fetch_remote_gems_mismatch
630
- platform = Gem::Platform.new 'x86-freebsd9'
631
+ platform = Gem::Platform.new "x86-freebsd9"
631
632
 
632
633
  specs = spec_fetcher do |fetcher|
633
- fetcher.spec 'a', 1
634
- fetcher.spec 'a', 2
634
+ fetcher.spec "a", 1
635
+ fetcher.spec "a", 2
635
636
 
636
- fetcher.spec 'a', 2 do |s|
637
+ fetcher.spec "a", 2 do |s|
637
638
  s.platform = platform
638
639
  end
639
640
  end
640
641
 
641
642
  expected = [
642
- [Gem::NameTuple.new('a', v(2), Gem::Platform::RUBY),
643
+ [Gem::NameTuple.new("a", v(2), Gem::Platform::RUBY),
643
644
  Gem::Source.new(@gem_repo)],
644
645
  ]
645
646
 
646
- assert_equal expected, @cmd.fetch_remote_gems(specs['a-1'])
647
+ assert_equal expected, @cmd.fetch_remote_gems(specs["a-1"])
647
648
  end
648
649
 
649
650
  def test_fetch_remote_gems_prerelease
650
651
  specs = spec_fetcher do |fetcher|
651
- fetcher.gem 'a', 1
652
- fetcher.gem 'a', 2
653
- fetcher.gem 'a', '3.a'
652
+ fetcher.gem "a", 1
653
+ fetcher.gem "a", 2
654
+ fetcher.gem "a", "3.a"
654
655
  end
655
656
 
656
657
  @cmd.options[:prerelease] = true
657
658
 
658
659
  expected = [
659
- [Gem::NameTuple.new('a', v(2), Gem::Platform::RUBY),
660
+ [Gem::NameTuple.new("a", v(2), Gem::Platform::RUBY),
660
661
  Gem::Source.new(@gem_repo)],
661
- [Gem::NameTuple.new('a', v('3.a'), Gem::Platform::RUBY),
662
+ [Gem::NameTuple.new("a", v("3.a"), Gem::Platform::RUBY),
662
663
  Gem::Source.new(@gem_repo)],
663
664
  ]
664
665
 
665
- assert_equal expected, @cmd.fetch_remote_gems(specs['a-1'])
666
+ assert_equal expected, @cmd.fetch_remote_gems(specs["a-1"])
666
667
  end
667
668
 
668
669
  def test_handle_options_system
669
670
  @cmd.handle_options %w[--system]
670
671
 
671
672
  expected = {
672
- :args => [],
673
+ :args => [],
673
674
  :document => %w[ri],
674
- :force => false,
675
- :system => true,
675
+ :force => false,
676
+ :system => true,
676
677
  }
677
678
 
678
679
  assert_equal expected, @cmd.options
@@ -688,10 +689,10 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
688
689
  @cmd.handle_options %w[--system 1.3.7]
689
690
 
690
691
  expected = {
691
- :args => [],
692
+ :args => [],
692
693
  :document => %w[ri],
693
- :force => false,
694
- :system => "1.3.7",
694
+ :force => false,
695
+ :system => "1.3.7",
695
696
  }
696
697
 
697
698
  assert_equal expected, @cmd.options
@@ -699,11 +700,11 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
699
700
 
700
701
  def test_update_gem_prerelease
701
702
  spec_fetcher do |fetcher|
702
- fetcher.spec 'a', '1.a'
703
- fetcher.gem 'a', '1.b'
703
+ fetcher.spec "a", "1.a"
704
+ fetcher.gem "a", "1.b"
704
705
  end
705
706
 
706
- @cmd.update_gem 'a', Gem::Requirement.new('= 1.b')
707
+ @cmd.update_gem "a", Gem::Requirement.new("= 1.b")
707
708
 
708
709
  refute_empty @cmd.updated
709
710
 
@@ -712,15 +713,15 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
712
713
 
713
714
  def test_update_gem_unresolved_dependency
714
715
  spec_fetcher do |fetcher|
715
- fetcher.spec 'a', 1
716
- fetcher.gem 'a', 2 do |s|
717
- s.add_dependency 'b', '>= 2'
716
+ fetcher.spec "a", 1
717
+ fetcher.gem "a", 2 do |s|
718
+ s.add_dependency "b", ">= 2"
718
719
  end
719
720
 
720
- fetcher.spec 'b', 1
721
+ fetcher.spec "b", 1
721
722
  end
722
723
 
723
- @cmd.update_gem 'a'
724
+ @cmd.update_gem "a"
724
725
 
725
726
  assert_empty @cmd.updated
726
727
  end
@@ -730,18 +731,18 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
730
731
 
731
732
  arguments = @cmd.update_rubygems_arguments
732
733
 
733
- assert_equal '--prefix', arguments.shift
734
+ assert_equal "--prefix", arguments.shift
734
735
  assert_equal Gem.prefix, arguments.shift
735
- assert_equal '--no-document', arguments.shift
736
- assert_equal '--previous-version', arguments.shift
736
+ assert_equal "--no-document", arguments.shift
737
+ assert_equal "--previous-version", arguments.shift
737
738
  assert_equal Gem::VERSION, arguments.shift
738
739
  assert_empty arguments
739
740
  end
740
741
 
741
742
  def test_explain
742
743
  spec_fetcher do |fetcher|
743
- fetcher.download 'a', 2
744
- fetcher.spec 'a', 1
744
+ fetcher.download "a", 2
745
+ fetcher.spec "a", 1
745
746
  end
746
747
 
747
748
  @cmd.options[:explain] = true
@@ -761,13 +762,13 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
761
762
  def test_explain_platform_local
762
763
  local = Gem::Platform.local
763
764
  spec_fetcher do |fetcher|
764
- fetcher.download 'a', 2
765
+ fetcher.download "a", 2
765
766
 
766
- fetcher.download 'a', 2 do |s|
767
+ fetcher.download "a", 2 do |s|
767
768
  s.platform = local
768
769
  end
769
770
 
770
- fetcher.spec 'a', 1
771
+ fetcher.spec "a", 1
771
772
  end
772
773
 
773
774
  @cmd.options[:explain] = true
@@ -787,13 +788,13 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
787
788
  def test_explain_platform_ruby
788
789
  local = Gem::Platform.local
789
790
  spec_fetcher do |fetcher|
790
- fetcher.download 'a', 2
791
+ fetcher.download "a", 2
791
792
 
792
- fetcher.download 'a', 2 do |s|
793
+ fetcher.download "a", 2 do |s|
793
794
  s.platform = local
794
795
  end
795
796
 
796
- fetcher.spec 'a', 1
797
+ fetcher.spec "a", 1
797
798
  end
798
799
 
799
800
  # equivalent to --platform=ruby
@@ -815,7 +816,7 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
815
816
 
816
817
  def test_execute_named_not_installed_and_no_update
817
818
  spec_fetcher do |fetcher|
818
- fetcher.spec 'a', 2
819
+ fetcher.spec "a", 2
819
820
  end
820
821
 
821
822
  @cmd.options[:args] = %w[a b]
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
- require_relative 'helper'
3
- require 'rubygems/commands/which_command'
2
+
3
+ require_relative "helper"
4
+ require "rubygems/commands/which_command"
4
5
 
5
6
  class TestGemCommandsWhichCommand < Gem::TestCase
6
7
  def setup
@@ -19,7 +20,7 @@ class TestGemCommandsWhichCommand < Gem::TestCase
19
20
  end
20
21
 
21
22
  assert_equal "#{@foo_bar.full_gem_path}/lib/foo_bar.rb\n", @ui.output
22
- assert_equal '', @ui.error
23
+ assert_equal "", @ui.error
23
24
  end
24
25
 
25
26
  def test_execute_directory
@@ -31,7 +32,7 @@ class TestGemCommandsWhichCommand < Gem::TestCase
31
32
  end
32
33
  end
33
34
 
34
- assert_equal '', @ui.output
35
+ assert_equal "", @ui.output
35
36
  assert_match %r{Can.t find Ruby library file or shared library directory\n},
36
37
  @ui.error
37
38
  end
@@ -63,14 +64,14 @@ class TestGemCommandsWhichCommand < Gem::TestCase
63
64
  end
64
65
  end
65
66
 
66
- assert_equal '', @ui.output
67
+ assert_equal "", @ui.output
67
68
  assert_match %r{Can.t find Ruby library file or shared library missinglib\n},
68
69
  @ui.error
69
70
  end
70
71
 
71
72
  def util_foo_bar
72
73
  files = %w[lib/foo_bar.rb lib/directory/baz.rb Rakefile]
73
- @foo_bar = util_spec 'foo_bar' do |gem|
74
+ @foo_bar = util_spec "foo_bar" do |gem|
74
75
  gem.files = files
75
76
  end
76
77
  install_specs @foo_bar