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/source'
2
+
3
+ require_relative "helper"
4
+ require "rubygems/source"
4
5
 
5
6
  class TestGemSourceGit < Gem::TestCase
6
7
  def setup
@@ -10,36 +11,37 @@ class TestGemSourceGit < Gem::TestCase
10
11
 
11
12
  @hash = Digest::SHA1.hexdigest @repository
12
13
 
13
- @source = Gem::Source::Git.new @name, @repository, 'master', false
14
+ @source = Gem::Source::Git.new @name, @repository, nil, false
14
15
  end
15
16
 
16
17
  def test_base_dir
17
- assert_equal File.join(Gem.dir, 'bundler'), @source.base_dir
18
+ assert_equal File.join(Gem.dir, "bundler"), @source.base_dir
18
19
 
19
20
  @source.root_dir = "#{@gemhome}2"
20
21
 
21
- assert_equal File.join("#{@gemhome}2", 'bundler'), @source.base_dir
22
+ assert_equal File.join("#{@gemhome}2", "bundler"), @source.base_dir
22
23
  end
23
24
 
24
25
  def test_checkout
25
26
  @source.checkout
26
27
 
27
- assert_path_exist File.join @source.install_dir, 'a.gemspec'
28
+ assert_path_exist File.join @source.install_dir, "a.gemspec"
28
29
  end
29
30
 
30
- def test_checkout_master
31
+ def test_checkout_default
31
32
  Dir.chdir @repository do
32
- system @git, 'checkout', '-q', '-b', 'other'
33
- system @git, 'mv', 'a.gemspec', 'b.gemspec'
34
- system @git, 'commit', '-q', '-a', '-m', 'rename gemspec'
35
- system @git, 'checkout', '-q', 'master'
33
+ default_branch = Gem::Util.popen(@git, "branch", "--show-current").strip
34
+ system @git, "checkout", "-q", "-b", "other"
35
+ system @git, "mv", "a.gemspec", "b.gemspec"
36
+ system @git, "commit", "-q", "-a", "-m", "rename gemspec"
37
+ system @git, "checkout", "-q", default_branch
36
38
  end
37
39
 
38
- @source = Gem::Source::Git.new @name, @repository, 'other', false
40
+ @source = Gem::Source::Git.new @name, @repository, "other", false
39
41
 
40
42
  @source.checkout
41
43
 
42
- assert_path_exist File.join @source.install_dir, 'b.gemspec'
44
+ assert_path_exist File.join @source.install_dir, "b.gemspec"
43
45
  end
44
46
 
45
47
  def test_checkout_local
@@ -47,9 +49,9 @@ class TestGemSourceGit < Gem::TestCase
47
49
 
48
50
  @source.checkout
49
51
 
50
- install_dir = File.join Gem.dir, 'bundler', 'gems', "a-#{@head[0..11]}"
52
+ install_dir = File.join Gem.dir, "bundler", "gems", "a-#{@head[0..11]}"
51
53
 
52
- assert_path_not_exist File.join install_dir, 'a.gemspec'
54
+ assert_path_not_exist File.join install_dir, "a.gemspec"
53
55
  end
54
56
 
55
57
  def test_checkout_local_cached
@@ -59,26 +61,31 @@ class TestGemSourceGit < Gem::TestCase
59
61
 
60
62
  @source.checkout
61
63
 
62
- assert_path_exist File.join @source.install_dir, 'a.gemspec'
64
+ assert_path_exist File.join @source.install_dir, "a.gemspec"
63
65
  end
64
66
 
65
67
  def test_checkout_submodules
66
- source = Gem::Source::Git.new @name, @repository, 'master', true
68
+ # We need to allow to checkout submodules with file:// protocol
69
+ # CVE-2022-39253
70
+ # https://lore.kernel.org/lkml/xmqq4jw1uku5.fsf@gitster.g/
71
+ system(@git, *%W[config --global protocol.file.allow always])
72
+
73
+ source = Gem::Source::Git.new @name, @repository, nil, true
67
74
 
68
- git_gem 'b'
75
+ git_gem "b"
69
76
 
70
- Dir.chdir 'git/a' do
77
+ Dir.chdir "git/a" do
71
78
  require "open3"
72
- output, status = Open3.capture2e(@git, 'submodule', '--quiet', 'add', File.expand_path('../b'), 'b')
79
+ output, status = Open3.capture2e(@git, "submodule", "--quiet", "add", File.expand_path("../b"), "b")
73
80
  assert status.success?, output
74
81
 
75
- system @git, 'commit', '--quiet', '-m', 'add submodule b'
82
+ system @git, "commit", "--quiet", "-m", "add submodule b"
76
83
  end
77
84
 
78
85
  source.checkout
79
86
 
80
- assert_path_exist File.join source.install_dir, 'a.gemspec'
81
- assert_path_exist File.join source.install_dir, 'b/b.gemspec'
87
+ assert_path_exist File.join source.install_dir, "a.gemspec"
88
+ assert_path_exist File.join source.install_dir, "b/b.gemspec"
82
89
  end
83
90
 
84
91
  def test_cache
@@ -87,7 +94,7 @@ class TestGemSourceGit < Gem::TestCase
87
94
  assert_path_exist @source.repo_cache_dir
88
95
 
89
96
  Dir.chdir @source.repo_cache_dir do
90
- assert_equal @head, Gem::Util.popen(@git, 'rev-parse', 'master').strip
97
+ assert_equal @head, Gem::Util.popen(@git, "rev-parse", "HEAD").strip
91
98
  end
92
99
  end
93
100
 
@@ -115,17 +122,17 @@ class TestGemSourceGit < Gem::TestCase
115
122
  assert_equal @source, @source.dup
116
123
 
117
124
  source =
118
- Gem::Source::Git.new @source.name, @source.repository, 'other', false
125
+ Gem::Source::Git.new @source.name, @source.repository, "other", false
119
126
 
120
127
  refute_equal @source, source
121
128
 
122
129
  source =
123
- Gem::Source::Git.new @source.name, 'repo/other', @source.reference, false
130
+ Gem::Source::Git.new @source.name, "repo/other", @source.reference, false
124
131
 
125
132
  refute_equal @source, source
126
133
 
127
134
  source =
128
- Gem::Source::Git.new 'b', @source.repository, @source.reference, false
135
+ Gem::Source::Git.new "b", @source.repository, @source.reference, false
129
136
 
130
137
  refute_equal @source, source
131
138
 
@@ -139,7 +146,7 @@ class TestGemSourceGit < Gem::TestCase
139
146
  def test_install_dir
140
147
  @source.cache
141
148
 
142
- expected = File.join Gem.dir, 'bundler', 'gems', "a-#{@head[0..11]}"
149
+ expected = File.join Gem.dir, "bundler", "gems", "a-#{@head[0..11]}"
143
150
 
144
151
  assert_equal expected, @source.install_dir
145
152
  end
@@ -152,14 +159,14 @@ class TestGemSourceGit < Gem::TestCase
152
159
 
153
160
  def test_repo_cache_dir
154
161
  expected =
155
- File.join Gem.dir, 'cache', 'bundler', 'git', "a-#{@hash}"
162
+ File.join Gem.dir, "cache", "bundler", "git", "a-#{@hash}"
156
163
 
157
164
  assert_equal expected, @source.repo_cache_dir
158
165
 
159
166
  @source.root_dir = "#{@gemhome}2"
160
167
 
161
168
  expected =
162
- File.join "#{@gemhome}2", 'cache', 'bundler', 'git', "a-#{@hash}"
169
+ File.join "#{@gemhome}2", "cache", "bundler", "git", "a-#{@hash}"
163
170
 
164
171
  assert_equal expected, @source.repo_cache_dir
165
172
  end
@@ -170,20 +177,20 @@ class TestGemSourceGit < Gem::TestCase
170
177
  assert_equal @head, @source.rev_parse
171
178
 
172
179
  Dir.chdir @repository do
173
- system @git, 'checkout', '--quiet', '-b', 'other'
180
+ system @git, "checkout", "--quiet", "-b", "other"
174
181
  end
175
182
 
176
- master_head = @head
183
+ default_head = @head
177
184
 
178
- git_gem 'a', 2
185
+ git_gem "a", 2
179
186
 
180
- source = Gem::Source::Git.new @name, @repository, 'other', false
187
+ source = Gem::Source::Git.new @name, @repository, "other", false
181
188
 
182
189
  source.cache
183
190
 
184
- refute_equal master_head, source.rev_parse
191
+ refute_equal default_head, source.rev_parse
185
192
 
186
- source = Gem::Source::Git.new @name, @repository, 'nonexistent', false
193
+ source = Gem::Source::Git.new @name, @repository, "nonexistent", false
187
194
 
188
195
  source.cache
189
196
 
@@ -204,38 +211,38 @@ class TestGemSourceGit < Gem::TestCase
204
211
  end
205
212
 
206
213
  def test_spaceship
207
- git = Gem::Source::Git.new 'a', 'git/a', 'master', false
214
+ git = Gem::Source::Git.new "a", "git/a", nil, false
208
215
  remote = Gem::Source.new @gem_repo
209
216
  installed = Gem::Source::Installed.new
210
- vendor = Gem::Source::Vendor.new 'vendor/foo'
217
+ vendor = Gem::Source::Vendor.new "vendor/foo"
211
218
 
212
- assert_equal(0, git.<=>(git), 'git <=> git')
219
+ assert_equal(0, git.<=>(git), "git <=> git")
213
220
 
214
- assert_equal(1, git.<=>(remote), 'git <=> remote')
215
- assert_equal(-1, remote.<=>(git), 'remote <=> git')
221
+ assert_equal(1, git.<=>(remote), "git <=> remote")
222
+ assert_equal(-1, remote.<=>(git), "remote <=> git")
216
223
 
217
- assert_equal(1, git.<=>(installed), 'git <=> installed')
218
- assert_equal(-1, installed.<=>(git), 'installed <=> git')
224
+ assert_equal(1, git.<=>(installed), "git <=> installed")
225
+ assert_equal(-1, installed.<=>(git), "installed <=> git")
219
226
 
220
- assert_equal(-1, git.<=>(vendor), 'git <=> vendor')
221
- assert_equal(1, vendor.<=>(git), 'vendor <=> git')
227
+ assert_equal(-1, git.<=>(vendor), "git <=> vendor")
228
+ assert_equal(1, vendor.<=>(git), "vendor <=> git")
222
229
  end
223
230
 
224
231
  def test_specs
225
- source = Gem::Source::Git.new @name, @repository, 'master', true
232
+ source = Gem::Source::Git.new @name, @repository, nil, true
226
233
 
227
- Dir.chdir 'git/a' do
228
- FileUtils.mkdir 'b'
234
+ Dir.chdir "git/a" do
235
+ FileUtils.mkdir "b"
229
236
 
230
- Dir.chdir 'b' do
231
- b = Gem::Specification.new 'b', 1
237
+ Dir.chdir "b" do
238
+ b = Gem::Specification.new "b", 1
232
239
 
233
- File.open 'b.gemspec', 'w' do |io|
240
+ File.open "b.gemspec", "w" do |io|
234
241
  io.write b.to_ruby
235
242
  end
236
243
 
237
- system @git, 'add', 'b.gemspec'
238
- system @git, 'commit', '--quiet', '-m', 'add b/b.gemspec'
244
+ system @git, "add", "b.gemspec"
245
+ system @git, "commit", "--quiet", "-m", "add b/b.gemspec"
239
246
  end
240
247
  end
241
248
 
@@ -252,11 +259,11 @@ class TestGemSourceGit < Gem::TestCase
252
259
  base_dir = File.dirname File.dirname source.install_dir
253
260
 
254
261
  assert_equal source.install_dir, a_spec.full_gem_path
255
- assert_equal File.join(source.install_dir, 'a.gemspec'), a_spec.loaded_from
262
+ assert_equal File.join(source.install_dir, "a.gemspec"), a_spec.loaded_from
256
263
  assert_equal base_dir, a_spec.base_dir
257
264
 
258
265
  extension_dir =
259
- File.join Gem.dir, 'bundler', 'extensions',
266
+ File.join Gem.dir, "bundler", "extensions",
260
267
  Gem::Platform.local.to_s, Gem.extension_api_version,
261
268
  "a-#{source.dir_shortref}"
262
269
 
@@ -264,8 +271,8 @@ class TestGemSourceGit < Gem::TestCase
264
271
 
265
272
  b_spec = specs.shift
266
273
 
267
- assert_equal File.join(source.install_dir, 'b'), b_spec.full_gem_path
268
- assert_equal File.join(source.install_dir, 'b', 'b.gemspec'),
274
+ assert_equal File.join(source.install_dir, "b"), b_spec.full_gem_path
275
+ assert_equal File.join(source.install_dir, "b", "b.gemspec"),
269
276
  b_spec.loaded_from
270
277
  assert_equal base_dir, b_spec.base_dir
271
278
 
@@ -273,7 +280,7 @@ class TestGemSourceGit < Gem::TestCase
273
280
  end
274
281
 
275
282
  def test_specs_local
276
- source = Gem::Source::Git.new @name, @repository, 'master', true
283
+ source = Gem::Source::Git.new @name, @repository, nil, true
277
284
  source.remote = false
278
285
 
279
286
  capture_output do
@@ -289,15 +296,15 @@ class TestGemSourceGit < Gem::TestCase
289
296
  assert_equal @hash, @source.uri_hash
290
297
 
291
298
  source =
292
- Gem::Source::Git.new 'a', 'http://git@example/repo.git', 'master', false
299
+ Gem::Source::Git.new "a", "http://git@example/repo.git", nil, false
293
300
 
294
- assert_equal '291c4caac7feba8bb64c297987028acb3dde6cfe',
301
+ assert_equal "291c4caac7feba8bb64c297987028acb3dde6cfe",
295
302
  source.uri_hash
296
303
 
297
304
  source =
298
- Gem::Source::Git.new 'a', 'HTTP://git@EXAMPLE/repo.git', 'master', false
305
+ Gem::Source::Git.new "a", "HTTP://git@EXAMPLE/repo.git", nil, false
299
306
 
300
- assert_equal '291c4caac7feba8bb64c297987028acb3dde6cfe',
307
+ assert_equal "291c4caac7feba8bb64c297987028acb3dde6cfe",
301
308
  source.uri_hash
302
309
  end
303
310
  end
@@ -1,34 +1,35 @@
1
1
  # frozen_string_literal: true
2
- require_relative 'helper'
3
- require 'rubygems/source'
2
+
3
+ require_relative "helper"
4
+ require "rubygems/source"
4
5
 
5
6
  class TestGemSourceInstalled < Gem::TestCase
6
7
  def test_spaceship
7
- a1 = quick_gem 'a', '1'
8
+ a1 = quick_gem "a", "1"
8
9
  util_build_gem a1
9
10
 
10
11
  remote = Gem::Source.new @gem_repo
11
12
  specific = Gem::Source::SpecificFile.new a1.cache_file
12
13
  installed = Gem::Source::Installed.new
13
14
  local = Gem::Source::Local.new
14
- git = Gem::Source::Git.new 'a', 'a', 'master'
15
- vendor = Gem::Source::Vendor.new 'a'
15
+ git = Gem::Source::Git.new "a", "a", nil
16
+ vendor = Gem::Source::Vendor.new "a"
16
17
 
17
- assert_equal(0, installed.<=>(installed), 'installed <=> installed')
18
+ assert_equal(0, installed.<=>(installed), "installed <=> installed")
18
19
 
19
- assert_equal(-1, remote.<=>(installed), 'remote <=> installed')
20
- assert_equal(1, installed.<=>(remote), 'installed <=> remote')
20
+ assert_equal(-1, remote.<=>(installed), "remote <=> installed")
21
+ assert_equal(1, installed.<=>(remote), "installed <=> remote")
21
22
 
22
- assert_equal(1, installed.<=>(local), 'installed <=> local')
23
- assert_equal(-1, local.<=>(installed), 'local <=> installed')
23
+ assert_equal(1, installed.<=>(local), "installed <=> local")
24
+ assert_equal(-1, local.<=>(installed), "local <=> installed")
24
25
 
25
- assert_equal(-1, specific.<=>(installed), 'specific <=> installed')
26
- assert_equal(1, installed.<=>(specific), 'installed <=> specific')
26
+ assert_equal(-1, specific.<=>(installed), "specific <=> installed")
27
+ assert_equal(1, installed.<=>(specific), "installed <=> specific")
27
28
 
28
- assert_equal(1, git. <=>(installed), 'git <=> installed')
29
- assert_equal(-1, installed.<=>(git), 'installed <=> git')
29
+ assert_equal(1, git. <=>(installed), "git <=> installed")
30
+ assert_equal(-1, installed.<=>(git), "installed <=> git")
30
31
 
31
- assert_equal(1, vendor.<=>(installed), 'vendor <=> installed')
32
- assert_equal(-1, installed.<=>(vendor), 'installed <=> vendor')
32
+ assert_equal(1, vendor.<=>(installed), "vendor <=> installed")
33
+ assert_equal(-1, installed.<=>(vendor), "installed <=> vendor")
33
34
  end
34
35
  end
@@ -1,7 +1,8 @@
1
1
  # frozen_string_literal: true
2
- require 'rubygems'
3
- require 'rubygems/source_list'
4
- require_relative 'helper'
2
+
3
+ require "rubygems"
4
+ require "rubygems/source_list"
5
+ require_relative "helper"
5
6
 
6
7
  class TestGemSourceList < Gem::TestCase
7
8
  def setup
@@ -45,7 +46,7 @@ class TestGemSourceList < Gem::TestCase
45
46
  def test_clear
46
47
  sl = Gem::SourceList.new
47
48
 
48
- sl << 'http://source.example'
49
+ sl << "http://source.example"
49
50
 
50
51
  sl.clear
51
52
 
@@ -76,7 +77,7 @@ class TestGemSourceList < Gem::TestCase
76
77
 
77
78
  assert_empty sl
78
79
 
79
- sl << 'http://source.example'
80
+ sl << "http://source.example"
80
81
 
81
82
  refute_empty sl
82
83
  end
@@ -1,8 +1,9 @@
1
1
  # frozen_string_literal: true
2
- require_relative 'helper'
3
- require 'rubygems/source'
4
2
 
5
- require 'fileutils'
3
+ require_relative "helper"
4
+ require "rubygems/source"
5
+
6
+ require "fileutils"
6
7
 
7
8
  class TestGemSourceLocal < Gem::TestCase
8
9
  def setup
@@ -10,9 +11,9 @@ class TestGemSourceLocal < Gem::TestCase
10
11
 
11
12
  @sl = Gem::Source::Local.new
12
13
 
13
- @a, @a_gem = util_gem "a", '1'
14
- @ap, @ap_gem = util_gem "a", '2.a'
15
- @b, @b_gem = util_gem "b", '1'
14
+ @a, @a_gem = util_gem "a", "1"
15
+ @ap, @ap_gem = util_gem "a", "2.a"
16
+ @b, @b_gem = util_gem "b", "1"
16
17
 
17
18
  FileUtils.mv @a_gem, @tempdir
18
19
  FileUtils.mv @ap_gem, @tempdir
@@ -84,7 +85,7 @@ class TestGemSourceLocal < Gem::TestCase
84
85
  end
85
86
 
86
87
  def test_spaceship
87
- a1 = quick_gem 'a', '1'
88
+ a1 = quick_gem "a", "1"
88
89
  util_build_gem a1
89
90
 
90
91
  remote = Gem::Source.new @gem_repo
@@ -92,15 +93,15 @@ class TestGemSourceLocal < Gem::TestCase
92
93
  installed = Gem::Source::Installed.new
93
94
  local = Gem::Source::Local.new
94
95
 
95
- assert_equal(0, local.<=>(local), 'local <=> local')
96
+ assert_equal(0, local.<=>(local), "local <=> local")
96
97
 
97
- assert_equal(-1, remote.<=>(local), 'remote <=> local')
98
- assert_equal(1, local.<=>(remote), 'local <=> remote')
98
+ assert_equal(-1, remote.<=>(local), "remote <=> local")
99
+ assert_equal(1, local.<=>(remote), "local <=> remote")
99
100
 
100
- assert_equal(1, installed.<=>(local), 'installed <=> local')
101
- assert_equal(-1, local.<=>(installed), 'local <=> installed')
101
+ assert_equal(1, installed.<=>(local), "installed <=> local")
102
+ assert_equal(-1, local.<=>(installed), "local <=> installed")
102
103
 
103
- assert_equal(-1, specific.<=>(local), 'specific <=> local')
104
- assert_equal(1, local.<=>(specific), 'local <=> specific')
104
+ assert_equal(-1, specific.<=>(local), "specific <=> local")
105
+ assert_equal(1, local.<=>(specific), "local <=> specific")
105
106
  end
106
107
  end
@@ -1,24 +1,25 @@
1
1
  # frozen_string_literal: true
2
- require_relative 'helper'
2
+
3
+ require_relative "helper"
3
4
 
4
5
  class TestGemSourceLock < Gem::TestCase
5
6
  def test_fetch_spec
6
7
  spec_fetcher do |fetcher|
7
- fetcher.spec 'a', 1
8
+ fetcher.spec "a", 1
8
9
  end
9
10
 
10
- name_tuple = Gem::NameTuple.new 'a', v(1), 'ruby'
11
+ name_tuple = Gem::NameTuple.new "a", v(1), "ruby"
11
12
 
12
13
  remote = Gem::Source.new @gem_repo
13
14
  lock = Gem::Source::Lock.new remote
14
15
 
15
16
  spec = lock.fetch_spec name_tuple
16
17
 
17
- assert_equal 'a-1', spec.full_name
18
+ assert_equal "a-1", spec.full_name
18
19
  end
19
20
 
20
21
  def test_equals2
21
- git = Gem::Source::Git.new 'a', 'git/a', 'master', false
22
+ git = Gem::Source::Git.new "a", "git/a", nil, false
22
23
  g_lock = Gem::Source::Lock.new git
23
24
 
24
25
  installed = Gem::Source::Installed.new
@@ -30,77 +31,77 @@ class TestGemSourceLock < Gem::TestCase
30
31
  end
31
32
 
32
33
  def test_spaceship
33
- git = Gem::Source::Git.new 'a', 'git/a', 'master', false
34
+ git = Gem::Source::Git.new "a", "git/a", nil, false
34
35
  g_lock = Gem::Source::Lock.new git
35
36
 
36
37
  installed = Gem::Source::Installed.new
37
38
  i_lock = Gem::Source::Lock.new installed
38
39
 
39
- vendor = Gem::Source::Vendor.new 'vendor/a'
40
+ vendor = Gem::Source::Vendor.new "vendor/a"
40
41
  v_lock = Gem::Source::Lock.new vendor
41
42
 
42
- assert_equal(0, g_lock.<=>(g_lock), 'g_lock <=> g_lock')
43
- assert_equal(0, i_lock.<=>(i_lock), 'i_lock <=> i_lock')
44
- assert_equal(0, v_lock.<=>(v_lock), 'v_lock <=> v_lock')
43
+ assert_equal(0, g_lock.<=>(g_lock), "g_lock <=> g_lock")
44
+ assert_equal(0, i_lock.<=>(i_lock), "i_lock <=> i_lock")
45
+ assert_equal(0, v_lock.<=>(v_lock), "v_lock <=> v_lock")
45
46
 
46
- assert_equal(1, g_lock.<=>(i_lock), 'g_lock <=> i_lock')
47
- assert_equal(-1, i_lock.<=>(g_lock), 'i_lock <=> g_lock')
47
+ assert_equal(1, g_lock.<=>(i_lock), "g_lock <=> i_lock")
48
+ assert_equal(-1, i_lock.<=>(g_lock), "i_lock <=> g_lock")
48
49
 
49
- assert_equal(-1, g_lock.<=>(v_lock), 'g_lock <=> v_lock')
50
- assert_equal(1, v_lock.<=>(g_lock), 'v_lock <=> g_lock')
50
+ assert_equal(-1, g_lock.<=>(v_lock), "g_lock <=> v_lock")
51
+ assert_equal(1, v_lock.<=>(g_lock), "v_lock <=> g_lock")
51
52
 
52
- assert_equal(-1, i_lock.<=>(v_lock), 'i_lock <=> v_lock')
53
- assert_equal(1, v_lock.<=>(i_lock), 'i_lock <=> v_lock')
53
+ assert_equal(-1, i_lock.<=>(v_lock), "i_lock <=> v_lock")
54
+ assert_equal(1, v_lock.<=>(i_lock), "i_lock <=> v_lock")
54
55
  end
55
56
 
56
57
  def test_spaceship_git
57
- git = Gem::Source::Git.new 'a', 'git/a', 'master', false
58
+ git = Gem::Source::Git.new "a", "git/a", nil, false
58
59
  lock = Gem::Source::Lock.new git
59
60
 
60
- assert_equal(1, lock.<=>(git), 'lock <=> git')
61
- assert_equal(-1, git.<=>(lock), 'git <=> lock')
61
+ assert_equal(1, lock.<=>(git), "lock <=> git")
62
+ assert_equal(-1, git.<=>(lock), "git <=> lock")
62
63
  end
63
64
 
64
65
  def test_spaceship_installed
65
66
  installed = Gem::Source::Installed.new
66
67
  lock = Gem::Source::Lock.new installed
67
68
 
68
- assert_equal(1, lock.<=>(installed), 'lock <=> installed')
69
- assert_equal(-1, installed.<=>(lock), 'installed <=> lock')
69
+ assert_equal(1, lock.<=>(installed), "lock <=> installed")
70
+ assert_equal(-1, installed.<=>(lock), "installed <=> lock")
70
71
  end
71
72
 
72
73
  def test_spaceship_local
73
74
  local = Gem::Source::Local.new
74
75
  lock = Gem::Source::Lock.new local # nonsense
75
76
 
76
- assert_equal(1, lock.<=>(local), 'lock <=> local')
77
- assert_equal(-1, local.<=>(lock), 'local <=> lock')
77
+ assert_equal(1, lock.<=>(local), "lock <=> local")
78
+ assert_equal(-1, local.<=>(lock), "local <=> lock")
78
79
  end
79
80
 
80
81
  def test_spaceship_remote
81
82
  remote = Gem::Source.new @gem_repo
82
83
  lock = Gem::Source::Lock.new remote
83
84
 
84
- assert_equal(1, lock.<=>(remote), 'lock <=> remote')
85
- assert_equal(-1, remote.<=>(lock), 'remote <=> lock')
85
+ assert_equal(1, lock.<=>(remote), "lock <=> remote")
86
+ assert_equal(-1, remote.<=>(lock), "remote <=> lock")
86
87
  end
87
88
 
88
89
  def test_spaceship_specific_file
89
- _, gem = util_gem 'a', 1
90
+ _, gem = util_gem "a", 1
90
91
 
91
92
  specific = Gem::Source::SpecificFile.new gem
92
93
  lock = Gem::Source::Lock.new specific # nonsense
93
94
 
94
- assert_equal(1, lock.<=>(specific), 'lock <=> specific')
95
- assert_equal(-1, specific.<=>(lock), 'specific <=> lock')
95
+ assert_equal(1, lock.<=>(specific), "lock <=> specific")
96
+ assert_equal(-1, specific.<=>(lock), "specific <=> lock")
96
97
  end
97
98
 
98
99
  def test_spaceship_vendor
99
- vendor = Gem::Source::Vendor.new 'vendor/a'
100
+ vendor = Gem::Source::Vendor.new "vendor/a"
100
101
  lock = Gem::Source::Lock.new vendor
101
102
 
102
- assert_equal(1, lock.<=>(vendor), 'lock <=> vendor')
103
- assert_equal(-1, vendor.<=>(lock), 'vendor <=> lock')
103
+ assert_equal(1, lock.<=>(vendor), "lock <=> vendor")
104
+ assert_equal(-1, vendor.<=>(lock), "vendor <=> lock")
104
105
  end
105
106
 
106
107
  def test_uri
@@ -1,12 +1,13 @@
1
1
  # frozen_string_literal: true
2
- require_relative 'helper'
3
- require 'rubygems/source'
2
+
3
+ require_relative "helper"
4
+ require "rubygems/source"
4
5
 
5
6
  class TestGemSourceSpecificFile < Gem::TestCase
6
7
  def setup
7
8
  super
8
9
 
9
- @a, @a_gem = util_gem "a", '1'
10
+ @a, @a_gem = util_gem "a", "1"
10
11
  @sf = Gem::Source::SpecificFile.new(@a_gem)
11
12
  end
12
13
 
@@ -37,7 +38,7 @@ class TestGemSourceSpecificFile < Gem::TestCase
37
38
  end
38
39
 
39
40
  def test_spaceship
40
- a1 = quick_gem 'a', '1'
41
+ a1 = quick_gem "a", "1"
41
42
  util_build_gem a1
42
43
 
43
44
  remote = Gem::Source.new @gem_repo
@@ -45,31 +46,31 @@ class TestGemSourceSpecificFile < Gem::TestCase
45
46
  installed = Gem::Source::Installed.new
46
47
  local = Gem::Source::Local.new
47
48
 
48
- assert_equal(0, specific.<=>(specific), 'specific <=> specific')
49
+ assert_equal(0, specific.<=>(specific), "specific <=> specific")
49
50
 
50
- assert_equal(-1, remote.<=>(specific), 'remote <=> specific')
51
- assert_equal(1, specific.<=>(remote), 'specific <=> remote')
51
+ assert_equal(-1, remote.<=>(specific), "remote <=> specific")
52
+ assert_equal(1, specific.<=>(remote), "specific <=> remote")
52
53
 
53
- assert_equal(-1, specific.<=>(local), 'specific <=> local')
54
- assert_equal(1, local. <=>(specific), 'local <=> specific')
54
+ assert_equal(-1, specific.<=>(local), "specific <=> local")
55
+ assert_equal(1, local. <=>(specific), "local <=> specific")
55
56
 
56
- assert_equal(-1, specific. <=>(installed), 'specific <=> installed')
57
- assert_equal(1, installed.<=>(specific), 'installed <=> specific')
57
+ assert_equal(-1, specific. <=>(installed), "specific <=> installed")
58
+ assert_equal(1, installed.<=>(specific), "installed <=> specific")
58
59
 
59
- a2 = quick_gem 'a', '2'
60
+ a2 = quick_gem "a", "2"
60
61
  util_build_gem a2
61
62
 
62
- b1 = quick_gem 'b', '1'
63
+ b1 = quick_gem "b", "1"
63
64
  util_build_gem b1
64
65
 
65
66
  a1_source = specific
66
67
  a2_source = Gem::Source::SpecificFile.new a2.cache_file
67
68
  b1_source = Gem::Source::SpecificFile.new b1.cache_file
68
69
 
69
- assert_nil a1_source.<=>(b1_source), 'a1_source <=> b1_source'
70
+ assert_nil a1_source.<=>(b1_source), "a1_source <=> b1_source"
70
71
 
71
- assert_equal(-1, a1_source.<=>(a2_source), 'a1_source <=> a2_source')
72
- assert_equal(0, a1_source.<=>(a1_source), 'a1_source <=> a1_source')
73
- assert_equal(1, a2_source.<=>(a1_source), 'a2_source <=> a1_source')
72
+ assert_equal(-1, a1_source.<=>(a2_source), "a1_source <=> a2_source")
73
+ assert_equal(0, a1_source.<=>(a1_source), "a1_source <=> a1_source")
74
+ assert_equal(1, a2_source.<=>(a1_source), "a2_source <=> a1_source")
74
75
  end
75
76
  end