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 'installer_test_case'
3
- require 'rubygems/uninstaller'
2
+
3
+ require_relative "installer_test_case"
4
+ require "rubygems/uninstaller"
4
5
 
5
6
  class TestGemUninstaller < Gem::InstallerTestCase
6
7
  def setup
@@ -23,14 +24,14 @@ class TestGemUninstaller < Gem::InstallerTestCase
23
24
  end
24
25
 
25
26
  def test_initialize_expand_path
26
- FileUtils.mkdir_p 'foo/bar'
27
- uninstaller = Gem::Uninstaller.new nil, :install_dir => 'foo//bar'
27
+ FileUtils.mkdir_p "foo/bar"
28
+ uninstaller = Gem::Uninstaller.new nil, :install_dir => "foo//bar"
28
29
 
29
30
  assert_match %r{foo/bar$}, uninstaller.instance_variable_get(:@gem_home)
30
31
  end
31
32
 
32
33
  def test_ask_if_ok
33
- c = util_spec 'c'
34
+ c = util_spec "c"
34
35
 
35
36
  uninstaller = Gem::Uninstaller.new nil
36
37
 
@@ -60,8 +61,8 @@ class TestGemUninstaller < Gem::InstallerTestCase
60
61
  def test_remove_executables_force_keep
61
62
  uninstaller = Gem::Uninstaller.new nil, :executables => false
62
63
 
63
- executable = File.join Gem.bindir(@user_spec.base_dir), 'executable'
64
- assert File.exist?(executable), 'executable not written'
64
+ executable = File.join Gem.bindir(@user_spec.base_dir), "executable"
65
+ assert File.exist?(executable), "executable not written"
65
66
 
66
67
  use_ui @ui do
67
68
  uninstaller.remove_executables @user_spec
@@ -75,8 +76,8 @@ class TestGemUninstaller < Gem::InstallerTestCase
75
76
  def test_remove_executables_force_remove
76
77
  uninstaller = Gem::Uninstaller.new nil, :executables => true
77
78
 
78
- executable = File.join Gem.bindir(@user_spec.base_dir), 'executable'
79
- assert File.exist?(executable), 'executable not written'
79
+ executable = File.join Gem.bindir(@user_spec.base_dir), "executable"
80
+ assert File.exist?(executable), "executable not written"
80
81
 
81
82
  use_ui @ui do
82
83
  uninstaller.remove_executables @user_spec
@@ -94,14 +95,14 @@ class TestGemUninstaller < Gem::InstallerTestCase
94
95
  uninstaller.remove_executables @user_spec
95
96
  end
96
97
 
97
- exec_path = File.join Gem.user_dir, 'bin', 'executable'
98
- refute File.exist?(exec_path), 'exec still exists in user bin dir'
98
+ exec_path = File.join Gem.user_dir, "bin", "executable"
99
+ refute File.exist?(exec_path), "exec still exists in user bin dir"
99
100
 
100
101
  assert_equal "Removing executable\n", @ui.output
101
102
  end
102
103
 
103
104
  def test_remove_executables_user_format
104
- Gem::Installer.exec_format = 'foo-%s-bar'
105
+ Gem::Installer.exec_format = "foo-%s-bar"
105
106
 
106
107
  uninstaller = Gem::Uninstaller.new nil, :executables => true, :format_executable => true
107
108
 
@@ -109,8 +110,8 @@ class TestGemUninstaller < Gem::InstallerTestCase
109
110
  uninstaller.remove_executables @user_spec
110
111
  end
111
112
 
112
- exec_path = File.join Gem.user_dir, 'bin', 'foo-executable-bar'
113
- assert_equal false, File.exist?(exec_path), 'removed exec from bin dir'
113
+ exec_path = File.join Gem.user_dir, "bin", "foo-executable-bar"
114
+ assert_equal false, File.exist?(exec_path), "removed exec from bin dir"
114
115
 
115
116
  assert_equal "Removing foo-executable-bar\n", @ui.output
116
117
  ensure
@@ -118,7 +119,7 @@ class TestGemUninstaller < Gem::InstallerTestCase
118
119
  end
119
120
 
120
121
  def test_remove_executables_user_format_disabled
121
- Gem::Installer.exec_format = 'foo-%s-bar'
122
+ Gem::Installer.exec_format = "foo-%s-bar"
122
123
 
123
124
  uninstaller = Gem::Uninstaller.new nil, :executables => true
124
125
 
@@ -126,8 +127,8 @@ class TestGemUninstaller < Gem::InstallerTestCase
126
127
  uninstaller.remove_executables @user_spec
127
128
  end
128
129
 
129
- exec_path = File.join Gem.user_dir, 'bin', 'executable'
130
- refute File.exist?(exec_path), 'removed exec from bin dir'
130
+ exec_path = File.join Gem.user_dir, "bin", "executable"
131
+ refute File.exist?(exec_path), "removed exec from bin dir"
131
132
 
132
133
  assert_equal "Removing executable\n", @ui.output
133
134
  ensure
@@ -171,56 +172,56 @@ class TestGemUninstaller < Gem::InstallerTestCase
171
172
  end
172
173
 
173
174
  def test_remove_plugins
174
- write_file File.join(@tempdir, 'lib', 'rubygems_plugin.rb') do |io|
175
- io.write "puts __FILE__"
175
+ write_file File.join(@tempdir, "lib", "rubygems_plugin.rb") do |io|
176
+ io.write "# do nothing"
176
177
  end
177
178
 
178
179
  @spec.files += %w[lib/rubygems_plugin.rb]
179
180
 
180
181
  Gem::Installer.at(Gem::Package.build(@spec), :force => true).install
181
182
 
182
- plugin_path = File.join Gem.plugindir, 'a_plugin.rb'
183
- assert File.exist?(plugin_path), 'plugin not written'
183
+ plugin_path = File.join Gem.plugindir, "a_plugin.rb"
184
+ assert File.exist?(plugin_path), "plugin not written"
184
185
 
185
186
  Gem::Uninstaller.new(nil).remove_plugins @spec
186
187
 
187
- refute File.exist?(plugin_path), 'plugin not removed'
188
+ refute File.exist?(plugin_path), "plugin not removed"
188
189
  end
189
190
 
190
191
  def test_remove_plugins_with_install_dir
191
- write_file File.join(@tempdir, 'lib', 'rubygems_plugin.rb') do |io|
192
- io.write "puts __FILE__"
192
+ write_file File.join(@tempdir, "lib", "rubygems_plugin.rb") do |io|
193
+ io.write "# do nothing"
193
194
  end
194
195
 
195
196
  @spec.files += %w[lib/rubygems_plugin.rb]
196
197
 
197
198
  Gem::Installer.at(Gem::Package.build(@spec), :force => true).install
198
199
 
199
- plugin_path = File.join Gem.plugindir, 'a_plugin.rb'
200
- assert File.exist?(plugin_path), 'plugin not written'
200
+ plugin_path = File.join Gem.plugindir, "a_plugin.rb"
201
+ assert File.exist?(plugin_path), "plugin not written"
201
202
 
202
203
  Dir.mkdir "#{@gemhome}2"
203
204
  Gem::Uninstaller.new(nil, :install_dir => "#{@gemhome}2").remove_plugins @spec
204
205
 
205
- assert File.exist?(plugin_path), 'plugin unintentionally removed'
206
+ assert File.exist?(plugin_path), "plugin unintentionally removed"
206
207
  end
207
208
 
208
209
  def test_regenerate_plugins_for
209
- write_file File.join(@tempdir, 'lib', 'rubygems_plugin.rb') do |io|
210
- io.write "puts __FILE__"
210
+ write_file File.join(@tempdir, "lib", "rubygems_plugin.rb") do |io|
211
+ io.write "# do nothing"
211
212
  end
212
213
 
213
214
  @spec.files += %w[lib/rubygems_plugin.rb]
214
215
 
215
216
  Gem::Installer.at(Gem::Package.build(@spec), :force => true).install
216
217
 
217
- plugin_path = File.join Gem.plugindir, 'a_plugin.rb'
218
- assert File.exist?(plugin_path), 'plugin not written'
218
+ plugin_path = File.join Gem.plugindir, "a_plugin.rb"
219
+ assert File.exist?(plugin_path), "plugin not written"
219
220
 
220
221
  FileUtils.rm plugin_path
221
222
  Gem::Uninstaller.new(nil).regenerate_plugins_for @spec, Gem.plugindir
222
223
 
223
- assert File.exist?(plugin_path), 'plugin not regenerated'
224
+ assert File.exist?(plugin_path), "plugin not regenerated"
224
225
  end
225
226
 
226
227
  def test_path_ok_eh
@@ -234,7 +235,7 @@ class TestGemUninstaller < Gem::InstallerTestCase
234
235
 
235
236
  @spec.loaded_from = @spec.loaded_from.gsub @spec.full_name, '\&-legacy'
236
237
  @spec.internal_init # blow out cache. but why did ^^ depend on cache?
237
- @spec.platform = 'legacy'
238
+ @spec.platform = "legacy"
238
239
 
239
240
  assert_equal true, uninstaller.path_ok?(@gemhome, @spec)
240
241
  end
@@ -248,16 +249,16 @@ class TestGemUninstaller < Gem::InstallerTestCase
248
249
  def test_uninstall
249
250
  uninstaller = Gem::Uninstaller.new @spec.name, :executables => true
250
251
 
251
- gem_dir = File.join @gemhome, 'gems', @spec.full_name
252
+ gem_dir = File.join @gemhome, "gems", @spec.full_name
252
253
 
253
254
  Gem.pre_uninstall do
254
255
  sleep(0.1) if win_platform?
255
- assert File.exist?(gem_dir), 'gem_dir should exist'
256
+ assert File.exist?(gem_dir), "gem_dir should exist"
256
257
  end
257
258
 
258
259
  Gem.post_uninstall do
259
260
  sleep(0.1) if win_platform?
260
- refute File.exist?(gem_dir), 'gem_dir should not exist'
261
+ refute File.exist?(gem_dir), "gem_dir should not exist"
261
262
  end
262
263
 
263
264
  uninstaller.uninstall
@@ -269,7 +270,7 @@ class TestGemUninstaller < Gem::InstallerTestCase
269
270
  end
270
271
 
271
272
  def test_uninstall_default_gem
272
- spec = new_default_spec 'default', '2'
273
+ spec = new_default_spec "default", "2"
273
274
 
274
275
  install_default_gems spec
275
276
 
@@ -281,14 +282,14 @@ class TestGemUninstaller < Gem::InstallerTestCase
281
282
 
282
283
  lines = @ui.output.split("\n")
283
284
 
284
- assert_equal 'Gem default-2 cannot be uninstalled because it is a default gem', lines.shift
285
+ assert_equal "Gem default-2 cannot be uninstalled because it is a default gem", lines.shift
285
286
  end
286
287
 
287
288
  def test_uninstall_default_gem_with_same_version
288
- default_spec = new_default_spec 'default', '2'
289
+ default_spec = new_default_spec "default", "2"
289
290
  install_default_gems default_spec
290
291
 
291
- spec = util_spec 'default', '2'
292
+ spec = util_spec "default", "2"
292
293
  install_gem spec
293
294
 
294
295
  Gem::Specification.reset
@@ -308,8 +309,8 @@ class TestGemUninstaller < Gem::InstallerTestCase
308
309
  end
309
310
 
310
311
  def test_uninstall_extension
311
- @spec.extensions << 'extconf.rb'
312
- write_file File.join(@tempdir, 'extconf.rb') do |io|
312
+ @spec.extensions << "extconf.rb"
313
+ write_file File.join(@tempdir, "extconf.rb") do |io|
313
314
  io.write <<-RUBY
314
315
  require 'mkmf'
315
316
  create_makefile '#{@spec.name}'
@@ -325,7 +326,7 @@ create_makefile '#{@spec.name}'
325
326
  installer.install
326
327
  end
327
328
 
328
- assert_path_exist @spec.extension_dir, 'sanity check'
329
+ assert_path_exist @spec.extension_dir, "sanity check"
329
330
 
330
331
  uninstaller = Gem::Uninstaller.new @spec.name, :executables => true
331
332
  uninstaller.uninstall
@@ -334,7 +335,7 @@ create_makefile '#{@spec.name}'
334
335
  end
335
336
 
336
337
  def test_uninstall_nonexistent
337
- uninstaller = Gem::Uninstaller.new 'bogus', :executables => true
338
+ uninstaller = Gem::Uninstaller.new "bogus", :executables => true
338
339
 
339
340
  e = assert_raise Gem::InstallError do
340
341
  uninstaller.uninstall
@@ -344,17 +345,17 @@ create_makefile '#{@spec.name}'
344
345
  end
345
346
 
346
347
  def test_uninstall_not_ok
347
- quick_gem 'z' do |s|
348
+ quick_gem "z" do |s|
348
349
  s.add_runtime_dependency @spec.name
349
350
  end
350
351
 
351
352
  uninstaller = Gem::Uninstaller.new @spec.name
352
353
 
353
- gem_dir = File.join @gemhome, 'gems', @spec.full_name
354
- executable = File.join @gemhome, 'bin', 'executable'
354
+ gem_dir = File.join @gemhome, "gems", @spec.full_name
355
+ executable = File.join @gemhome, "bin", "executable"
355
356
 
356
- assert File.exist?(gem_dir), 'gem_dir must exist'
357
- assert File.exist?(executable), 'executable must exist'
357
+ assert File.exist?(gem_dir), "gem_dir must exist"
358
+ assert File.exist?(executable), "executable must exist"
358
359
 
359
360
  ui = Gem::MockGemUi.new "n\n"
360
361
 
@@ -364,15 +365,15 @@ create_makefile '#{@spec.name}'
364
365
  end
365
366
  end
366
367
 
367
- assert File.exist?(gem_dir), 'gem_dir must still exist'
368
- assert File.exist?(executable), 'executable must still exist'
368
+ assert File.exist?(gem_dir), "gem_dir must still exist"
369
+ assert File.exist?(executable), "executable must still exist"
369
370
  end
370
371
 
371
372
  def test_uninstall_user_install
372
- @user_spec = Gem::Specification.find_by_name 'b'
373
+ @user_spec = Gem::Specification.find_by_name "b"
373
374
 
374
375
  uninstaller = Gem::Uninstaller.new(@user_spec.name,
375
- :executables => true,
376
+ :executables => true,
376
377
  :user_install => true)
377
378
 
378
379
  gem_dir = File.join @user_spec.gem_dir
@@ -414,9 +415,9 @@ create_makefile '#{@spec.name}'
414
415
  def test_uninstall_selection
415
416
  util_make_gems
416
417
 
417
- list = Gem::Specification.find_all_by_name 'a'
418
+ list = Gem::Specification.find_all_by_name "a"
418
419
 
419
- uninstaller = Gem::Uninstaller.new 'a'
420
+ uninstaller = Gem::Uninstaller.new "a"
420
421
 
421
422
  ui = Gem::MockGemUi.new "1\ny\n"
422
423
 
@@ -424,39 +425,39 @@ create_makefile '#{@spec.name}'
424
425
  uninstaller.uninstall
425
426
  end
426
427
 
427
- updated_list = Gem::Specification.find_all_by_name('a')
428
+ updated_list = Gem::Specification.find_all_by_name("a")
428
429
  assert_equal list.length - 1, updated_list.length
429
430
 
430
- assert_match ' 1. a-1', ui.output
431
- assert_match ' 2. a-2', ui.output
432
- assert_match ' 3. a-3.a', ui.output
433
- assert_match ' 4. All versions', ui.output
434
- assert_match 'uninstalled a-1', ui.output
431
+ assert_match " 1. a-1", ui.output
432
+ assert_match " 2. a-2", ui.output
433
+ assert_match " 3. a-3.a", ui.output
434
+ assert_match " 4. All versions", ui.output
435
+ assert_match "uninstalled a-1", ui.output
435
436
  end
436
437
 
437
438
  def test_uninstall_selection_greater_than_one
438
439
  util_make_gems
439
440
 
440
- list = Gem::Specification.find_all_by_name('a')
441
+ list = Gem::Specification.find_all_by_name("a")
441
442
 
442
- uninstaller = Gem::Uninstaller.new('a')
443
+ uninstaller = Gem::Uninstaller.new("a")
443
444
 
444
445
  use_ui Gem::MockGemUi.new("2\ny\n") do
445
446
  uninstaller.uninstall
446
447
  end
447
448
 
448
- updated_list = Gem::Specification.find_all_by_name('a')
449
+ updated_list = Gem::Specification.find_all_by_name("a")
449
450
  assert_equal list.length - 1, updated_list.length
450
451
  end
451
452
 
452
453
  def test_uninstall_prompts_about_broken_deps
453
- quick_gem 'r', '1' do |s|
454
- s.add_dependency 'q', '= 1'
454
+ quick_gem "r", "1" do |s|
455
+ s.add_dependency "q", "= 1"
455
456
  end
456
457
 
457
- quick_gem 'q', '1'
458
+ quick_gem "q", "1"
458
459
 
459
- un = Gem::Uninstaller.new('q')
460
+ un = Gem::Uninstaller.new("q")
460
461
  ui = Gem::MockGemUi.new("y\n")
461
462
 
462
463
  use_ui ui do
@@ -475,18 +476,18 @@ create_makefile '#{@spec.name}'
475
476
  end
476
477
 
477
478
  def test_uninstall_only_lists_unsatisfied_deps
478
- quick_gem 'r', '1' do |s|
479
- s.add_dependency 'q', '~> 1.0'
479
+ quick_gem "r", "1" do |s|
480
+ s.add_dependency "q", "~> 1.0"
480
481
  end
481
482
 
482
- quick_gem 'x', '1' do |s|
483
- s.add_dependency 'q', '= 1.0'
483
+ quick_gem "x", "1" do |s|
484
+ s.add_dependency "q", "= 1.0"
484
485
  end
485
486
 
486
- quick_gem 'q', '1.0'
487
- quick_gem 'q', '1.1'
487
+ quick_gem "q", "1.0"
488
+ quick_gem "q", "1.1"
488
489
 
489
- un = Gem::Uninstaller.new('q', :version => "1.0")
490
+ un = Gem::Uninstaller.new("q", :version => "1.0")
490
491
  ui = Gem::MockGemUi.new("y\n")
491
492
 
492
493
  use_ui ui do
@@ -505,14 +506,14 @@ create_makefile '#{@spec.name}'
505
506
  end
506
507
 
507
508
  def test_uninstall_doesnt_prompt_when_other_gem_satisfies_requirement
508
- quick_gem 'r', '1' do |s|
509
- s.add_dependency 'q', '~> 1.0'
509
+ quick_gem "r", "1" do |s|
510
+ s.add_dependency "q", "~> 1.0"
510
511
  end
511
512
 
512
- quick_gem 'q', '1.0'
513
- quick_gem 'q', '1.1'
513
+ quick_gem "q", "1.0"
514
+ quick_gem "q", "1.1"
514
515
 
515
- un = Gem::Uninstaller.new('q', :version => "1.0")
516
+ un = Gem::Uninstaller.new("q", :version => "1.0")
516
517
  ui = Gem::MockGemUi.new("y\n")
517
518
 
518
519
  use_ui ui do
@@ -525,13 +526,13 @@ create_makefile '#{@spec.name}'
525
526
  end
526
527
 
527
528
  def test_uninstall_doesnt_prompt_when_removing_a_dev_dep
528
- quick_gem 'r', '1' do |s|
529
- s.add_development_dependency 'q', '= 1.0'
529
+ quick_gem "r", "1" do |s|
530
+ s.add_development_dependency "q", "= 1.0"
530
531
  end
531
532
 
532
- quick_gem 'q', '1.0'
533
+ quick_gem "q", "1.0"
533
534
 
534
- un = Gem::Uninstaller.new('q', :version => "1.0")
535
+ un = Gem::Uninstaller.new("q", :version => "1.0")
535
536
  ui = Gem::MockGemUi.new("y\n")
536
537
 
537
538
  use_ui ui do
@@ -544,13 +545,13 @@ create_makefile '#{@spec.name}'
544
545
  end
545
546
 
546
547
  def test_uninstall_doesnt_prompt_and_raises_when_abort_on_dependent_set
547
- quick_gem 'r', '1' do |s|
548
- s.add_dependency 'q', '= 1'
548
+ quick_gem "r", "1" do |s|
549
+ s.add_dependency "q", "= 1"
549
550
  end
550
551
 
551
- quick_gem 'q', '1'
552
+ quick_gem "q", "1"
552
553
 
553
- un = Gem::Uninstaller.new('q', :abort_on_dependent => true)
554
+ un = Gem::Uninstaller.new("q", :abort_on_dependent => true)
554
555
  ui = Gem::MockGemUi.new("y\n")
555
556
 
556
557
  assert_raise Gem::DependencyRemovalException do
@@ -561,13 +562,13 @@ create_makefile '#{@spec.name}'
561
562
  end
562
563
 
563
564
  def test_uninstall_prompt_includes_dep_type
564
- quick_gem 'r', '1' do |s|
565
- s.add_development_dependency 'q', '= 1'
565
+ quick_gem "r", "1" do |s|
566
+ s.add_development_dependency "q", "= 1"
566
567
  end
567
568
 
568
- quick_gem 'q', '1'
569
+ quick_gem "q", "1"
569
570
 
570
- un = Gem::Uninstaller.new('q', :check_dev => true)
571
+ un = Gem::Uninstaller.new("q", :check_dev => true)
571
572
  ui = Gem::MockGemUi.new("y\n")
572
573
 
573
574
  use_ui ui do
@@ -586,17 +587,17 @@ create_makefile '#{@spec.name}'
586
587
  end
587
588
 
588
589
  def test_uninstall_prompt_only_lists_the_dependents_that_prevented_uninstallation
589
- quick_gem 'r', '1' do |s|
590
- s.add_development_dependency 'q', '= 1'
590
+ quick_gem "r", "1" do |s|
591
+ s.add_development_dependency "q", "= 1"
591
592
  end
592
593
 
593
- quick_gem 's', '1' do |s|
594
- s.add_dependency 'q', '= 1'
594
+ quick_gem "s", "1" do |s|
595
+ s.add_dependency "q", "= 1"
595
596
  end
596
597
 
597
- quick_gem 'q', '1'
598
+ quick_gem "q", "1"
598
599
 
599
- un = Gem::Uninstaller.new('q', :check_dev => false)
600
+ un = Gem::Uninstaller.new("q", :check_dev => false)
600
601
  ui = Gem::MockGemUi.new("y\n")
601
602
 
602
603
  use_ui ui do
@@ -633,42 +634,42 @@ create_makefile '#{@spec.name}'
633
634
  end
634
635
 
635
636
  def test_uninstall_keeps_plugins_up_to_date
636
- write_file File.join(@tempdir, 'lib', 'rubygems_plugin.rb') do |io|
637
- io.write "puts __FILE__"
637
+ write_file File.join(@tempdir, "lib", "rubygems_plugin.rb") do |io|
638
+ io.write "# do nothing"
638
639
  end
639
640
 
640
- plugin_path = File.join Gem.plugindir, 'a_plugin.rb'
641
+ plugin_path = File.join Gem.plugindir, "a_plugin.rb"
641
642
 
642
- @spec.version = '1'
643
+ @spec.version = "1"
643
644
  Gem::Installer.at(Gem::Package.build(@spec), :force => true).install
644
645
 
645
- refute File.exist?(plugin_path), 'version without plugin installed, but plugin written'
646
+ refute File.exist?(plugin_path), "version without plugin installed, but plugin written"
646
647
 
647
648
  @spec.files += %w[lib/rubygems_plugin.rb]
648
- @spec.version = '2'
649
+ @spec.version = "2"
649
650
  Gem::Installer.at(Gem::Package.build(@spec), :force => true).install
650
651
 
651
- assert File.exist?(plugin_path), 'version with plugin installed, but plugin not written'
652
- assert_match %r{\Arequire.*a-2/lib/rubygems_plugin\.rb}, File.read(plugin_path), 'written plugin has incorrect content'
652
+ assert File.exist?(plugin_path), "version with plugin installed, but plugin not written"
653
+ assert_match %r{\Arequire.*a-2/lib/rubygems_plugin\.rb}, File.read(plugin_path), "written plugin has incorrect content"
653
654
 
654
- @spec.version = '3'
655
+ @spec.version = "3"
655
656
  Gem::Installer.at(Gem::Package.build(@spec), :force => true).install
656
657
 
657
- assert File.exist?(plugin_path), 'version with plugin installed, but plugin removed'
658
- assert_match %r{\Arequire.*a-3/lib/rubygems_plugin\.rb}, File.read(plugin_path), 'old version installed, but plugin updated'
658
+ assert File.exist?(plugin_path), "version with plugin installed, but plugin removed"
659
+ assert_match %r{\Arequire.*a-3/lib/rubygems_plugin\.rb}, File.read(plugin_path), "old version installed, but plugin updated"
659
660
 
660
- Gem::Uninstaller.new('a', :version => '1', :executables => true).uninstall
661
+ Gem::Uninstaller.new("a", :version => "1", :executables => true).uninstall
661
662
 
662
- assert File.exist?(plugin_path), 'plugin removed when old version uninstalled'
663
- assert_match %r{\Arequire.*a-3/lib/rubygems_plugin\.rb}, File.read(plugin_path), 'old version uninstalled, but plugin updated'
663
+ assert File.exist?(plugin_path), "plugin removed when old version uninstalled"
664
+ assert_match %r{\Arequire.*a-3/lib/rubygems_plugin\.rb}, File.read(plugin_path), "old version uninstalled, but plugin updated"
664
665
 
665
- Gem::Uninstaller.new('a', version: '3', :executables => true).uninstall
666
+ Gem::Uninstaller.new("a", version: "3", :executables => true).uninstall
666
667
 
667
- assert File.exist?(plugin_path), 'plugin removed when old version uninstalled and another version with plugin still present'
668
- assert_match %r{\Arequire.*a-2/lib/rubygems_plugin\.rb}, File.read(plugin_path), 'latest version uninstalled, but plugin not updated to previous version'
668
+ assert File.exist?(plugin_path), "plugin removed when old version uninstalled and another version with plugin still present"
669
+ assert_match %r{\Arequire.*a-2/lib/rubygems_plugin\.rb}, File.read(plugin_path), "latest version uninstalled, but plugin not updated to previous version"
669
670
 
670
- Gem::Uninstaller.new('a', version: '2', :executables => true).uninstall
671
+ Gem::Uninstaller.new("a", version: "2", :executables => true).uninstall
671
672
 
672
- refute File.exist?(plugin_path), 'last version uninstalled, but plugin still present'
673
+ refute File.exist?(plugin_path), "last version uninstalled, but plugin still present"
673
674
  end
674
675
  end
@@ -1,11 +1,12 @@
1
1
  # frozen_string_literal: true
2
- require_relative 'helper'
2
+
3
+ require_relative "helper"
3
4
 
4
5
  class TestGemUnsatisfiableDependencyError < Gem::TestCase
5
6
  def setup
6
7
  super
7
8
 
8
- @a_dep = dep 'a', '~> 1'
9
+ @a_dep = dep "a", "~> 1"
9
10
 
10
11
  @req = Gem::Resolver::DependencyRequest.new @a_dep, nil
11
12
 
@@ -21,7 +22,7 @@ class TestGemUnsatisfiableDependencyError < Gem::TestCase
21
22
  end
22
23
 
23
24
  def test_name
24
- assert_equal 'a', @e.name
25
+ assert_equal "a", @e.name
25
26
  end
26
27
 
27
28
  def test_version