rubygems-update 3.3.26 → 3.4.18

Sign up to get free protection for your applications and to get access to all the features.
Files changed (554) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1334 -1088
  3. data/CONTRIBUTING.md +31 -8
  4. data/Manifest.txt +49 -35
  5. data/POLICIES.md +15 -13
  6. data/README.md +19 -6
  7. data/bundler/CHANGELOG.md +290 -1
  8. data/bundler/README.md +3 -6
  9. data/bundler/UPGRADING.md +1 -1
  10. data/bundler/bundler.gemspec +2 -2
  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 +5 -1
  15. data/bundler/lib/bundler/cli/check.rb +1 -1
  16. data/bundler/lib/bundler/cli/common.rb +1 -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/init.rb +2 -2
  21. data/bundler/lib/bundler/cli/install.rb +2 -3
  22. data/bundler/lib/bundler/cli/lock.rb +8 -5
  23. data/bundler/lib/bundler/cli/open.rb +6 -4
  24. data/bundler/lib/bundler/cli/outdated.rb +1 -3
  25. data/bundler/lib/bundler/cli/viz.rb +1 -1
  26. data/bundler/lib/bundler/cli.rb +45 -2
  27. data/bundler/lib/bundler/compact_index_client/cache.rb +1 -1
  28. data/bundler/lib/bundler/compact_index_client/updater.rb +40 -39
  29. data/bundler/lib/bundler/constants.rb +1 -1
  30. data/bundler/lib/bundler/current_ruby.rb +2 -0
  31. data/bundler/lib/bundler/definition.rb +163 -82
  32. data/bundler/lib/bundler/dependency.rb +13 -12
  33. data/bundler/lib/bundler/digest.rb +1 -1
  34. data/bundler/lib/bundler/dsl.rb +3 -3
  35. data/bundler/lib/bundler/endpoint_specification.rb +0 -4
  36. data/bundler/lib/bundler/env.rb +1 -1
  37. data/bundler/lib/bundler/environment_preserver.rb +3 -2
  38. data/bundler/lib/bundler/errors.rb +1 -11
  39. data/bundler/lib/bundler/feature_flag.rb +0 -1
  40. data/bundler/lib/bundler/fetcher/compact_index.rb +9 -11
  41. data/bundler/lib/bundler/fetcher/dependency.rb +2 -6
  42. data/bundler/lib/bundler/fetcher/downloader.rb +2 -5
  43. data/bundler/lib/bundler/fetcher.rb +4 -8
  44. data/bundler/lib/bundler/force_platform.rb +18 -0
  45. data/bundler/lib/bundler/friendly_errors.rb +0 -3
  46. data/bundler/lib/bundler/gem_version_promoter.rb +52 -86
  47. data/bundler/lib/bundler/graph.rb +3 -3
  48. data/bundler/lib/bundler/index.rb +7 -15
  49. data/bundler/lib/bundler/injector.rb +2 -2
  50. data/bundler/lib/bundler/inline.rb +8 -10
  51. data/bundler/lib/bundler/installer/parallel_installer.rb +3 -33
  52. data/bundler/lib/bundler/installer/standalone.rb +12 -8
  53. data/bundler/lib/bundler/installer.rb +10 -24
  54. data/bundler/lib/bundler/lazy_specification.rb +42 -42
  55. data/bundler/lib/bundler/lockfile_generator.rb +2 -2
  56. data/bundler/lib/bundler/lockfile_parser.rb +17 -16
  57. data/bundler/lib/bundler/man/bundle-add.1 +1 -1
  58. data/bundler/lib/bundler/man/bundle-binstubs.1 +1 -1
  59. data/bundler/lib/bundler/man/bundle-cache.1 +3 -3
  60. data/bundler/lib/bundler/man/bundle-cache.1.ronn +2 -2
  61. data/bundler/lib/bundler/man/bundle-check.1 +1 -1
  62. data/bundler/lib/bundler/man/bundle-clean.1 +1 -1
  63. data/bundler/lib/bundler/man/bundle-config.1 +2 -5
  64. data/bundler/lib/bundler/man/bundle-config.1.ronn +1 -4
  65. data/bundler/lib/bundler/man/bundle-console.1 +1 -1
  66. data/bundler/lib/bundler/man/bundle-doctor.1 +1 -1
  67. data/bundler/lib/bundler/man/bundle-exec.1 +5 -5
  68. data/bundler/lib/bundler/man/bundle-exec.1.ronn +5 -5
  69. data/bundler/lib/bundler/man/bundle-gem.1 +27 -37
  70. data/bundler/lib/bundler/man/bundle-gem.1.ronn +5 -5
  71. data/bundler/lib/bundler/man/bundle-help.1 +1 -1
  72. data/bundler/lib/bundler/man/bundle-info.1 +1 -1
  73. data/bundler/lib/bundler/man/bundle-init.1 +5 -1
  74. data/bundler/lib/bundler/man/bundle-init.1.ronn +2 -0
  75. data/bundler/lib/bundler/man/bundle-inject.1 +1 -1
  76. data/bundler/lib/bundler/man/bundle-install.1 +1 -30
  77. data/bundler/lib/bundler/man/bundle-install.1.ronn +0 -29
  78. data/bundler/lib/bundler/man/bundle-list.1 +1 -1
  79. data/bundler/lib/bundler/man/bundle-lock.1 +1 -1
  80. data/bundler/lib/bundler/man/bundle-open.1 +22 -2
  81. data/bundler/lib/bundler/man/bundle-open.1.ronn +9 -1
  82. data/bundler/lib/bundler/man/bundle-outdated.1 +13 -9
  83. data/bundler/lib/bundler/man/bundle-outdated.1.ronn +12 -9
  84. data/bundler/lib/bundler/man/bundle-platform.1 +2 -2
  85. data/bundler/lib/bundler/man/bundle-platform.1.ronn +1 -1
  86. data/bundler/lib/bundler/man/bundle-plugin.1 +1 -1
  87. data/bundler/lib/bundler/man/bundle-pristine.1 +1 -1
  88. data/bundler/lib/bundler/man/bundle-remove.1 +1 -1
  89. data/bundler/lib/bundler/man/bundle-show.1 +1 -1
  90. data/bundler/lib/bundler/man/bundle-update.1 +1 -1
  91. data/bundler/lib/bundler/man/bundle-version.1 +1 -1
  92. data/bundler/lib/bundler/man/bundle-viz.1 +1 -1
  93. data/bundler/lib/bundler/man/bundle.1 +1 -1
  94. data/bundler/lib/bundler/man/gemfile.5 +2 -2
  95. data/bundler/lib/bundler/man/gemfile.5.ronn +1 -1
  96. data/bundler/lib/bundler/mirror.rb +5 -7
  97. data/bundler/lib/bundler/plugin/index.rb +4 -4
  98. data/bundler/lib/bundler/plugin/installer/rubygems.rb +0 -4
  99. data/bundler/lib/bundler/plugin/installer.rb +5 -2
  100. data/bundler/lib/bundler/plugin.rb +1 -1
  101. data/bundler/lib/bundler/remote_specification.rb +2 -6
  102. data/bundler/lib/bundler/resolver/base.rb +72 -15
  103. data/bundler/lib/bundler/resolver/candidate.rb +94 -0
  104. data/bundler/lib/bundler/resolver/incompatibility.rb +15 -0
  105. data/bundler/lib/bundler/resolver/package.rb +72 -0
  106. data/bundler/lib/bundler/resolver/root.rb +25 -0
  107. data/bundler/lib/bundler/resolver/spec_group.rb +26 -36
  108. data/bundler/lib/bundler/resolver.rb +324 -277
  109. data/bundler/lib/bundler/ruby_version.rb +1 -1
  110. data/bundler/lib/bundler/rubygems_ext.rb +16 -9
  111. data/bundler/lib/bundler/rubygems_gem_installer.rb +4 -2
  112. data/bundler/lib/bundler/rubygems_integration.rb +10 -14
  113. data/bundler/lib/bundler/runtime.rb +2 -6
  114. data/bundler/lib/bundler/safe_marshal.rb +31 -0
  115. data/bundler/lib/bundler/settings.rb +4 -10
  116. data/bundler/lib/bundler/setup.rb +4 -1
  117. data/bundler/lib/bundler/shared_helpers.rb +2 -1
  118. data/bundler/lib/bundler/source/git/git_proxy.rb +237 -74
  119. data/bundler/lib/bundler/source/git.rb +48 -30
  120. data/bundler/lib/bundler/source/metadata.rb +0 -1
  121. data/bundler/lib/bundler/source/path/installer.rb +1 -22
  122. data/bundler/lib/bundler/source/path.rb +6 -6
  123. data/bundler/lib/bundler/source/rubygems.rb +26 -81
  124. data/bundler/lib/bundler/source.rb +1 -1
  125. data/bundler/lib/bundler/source_list.rb +8 -2
  126. data/bundler/lib/bundler/spec_set.rb +22 -14
  127. data/bundler/lib/bundler/templates/Executable +1 -1
  128. data/bundler/lib/bundler/templates/Executable.bundler +5 -10
  129. data/bundler/lib/bundler/templates/Executable.standalone +2 -0
  130. data/bundler/lib/bundler/templates/newgem/Cargo.toml.tt +7 -0
  131. data/bundler/lib/bundler/templates/newgem/Gemfile.tt +3 -0
  132. data/bundler/lib/bundler/templates/newgem/README.md.tt +6 -4
  133. data/bundler/lib/bundler/templates/newgem/Rakefile.tt +12 -1
  134. data/bundler/lib/bundler/templates/newgem/bin/console.tt +0 -4
  135. data/bundler/lib/bundler/templates/newgem/circleci/config.yml.tt +12 -0
  136. data/bundler/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +15 -0
  137. data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf-c.rb.tt +10 -0
  138. data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt +6 -0
  139. data/bundler/lib/bundler/templates/newgem/ext/newgem/newgem.c.tt +1 -1
  140. data/bundler/lib/bundler/templates/newgem/ext/newgem/src/lib.rs.tt +12 -0
  141. data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +10 -0
  142. data/bundler/lib/bundler/templates/newgem/gitignore.tt +3 -0
  143. data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +8 -0
  144. data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +9 -2
  145. data/bundler/lib/bundler/ui/shell.rb +35 -12
  146. data/bundler/lib/bundler/ui/silent.rb +21 -5
  147. data/bundler/lib/bundler/uri_normalizer.rb +23 -0
  148. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +3 -3
  149. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +0 -1
  150. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +3 -1
  151. data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +1351 -409
  152. data/bundler/lib/bundler/vendor/net-http-persistent/README.rdoc +1 -1
  153. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +1 -1
  154. data/bundler/lib/bundler/vendor/pub_grub/LICENSE.txt +21 -0
  155. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/assignment.rb +20 -0
  156. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb +189 -0
  157. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/failure_writer.rb +182 -0
  158. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb +150 -0
  159. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/package.rb +43 -0
  160. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/partial_solution.rb +121 -0
  161. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb +45 -0
  162. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/solve_failure.rb +19 -0
  163. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb +60 -0
  164. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/term.rb +105 -0
  165. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb +3 -0
  166. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb +129 -0
  167. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb +411 -0
  168. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb +248 -0
  169. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_union.rb +178 -0
  170. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub.rb +31 -0
  171. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +1 -1
  172. data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +64 -16
  173. data/bundler/lib/bundler/vendor/uri/lib/uri/file.rb +7 -1
  174. data/bundler/lib/bundler/vendor/uri/lib/uri/ftp.rb +2 -1
  175. data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +27 -7
  176. data/bundler/lib/bundler/vendor/uri/lib/uri/http.rb +40 -2
  177. data/bundler/lib/bundler/vendor/uri/lib/uri/https.rb +2 -1
  178. data/bundler/lib/bundler/vendor/uri/lib/uri/ldap.rb +1 -1
  179. data/bundler/lib/bundler/vendor/uri/lib/uri/ldaps.rb +2 -1
  180. data/bundler/lib/bundler/vendor/uri/lib/uri/mailto.rb +2 -2
  181. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +15 -9
  182. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +11 -6
  183. data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
  184. data/bundler/lib/bundler/vendor/uri/lib/uri/ws.rb +1 -2
  185. data/bundler/lib/bundler/vendor/uri/lib/uri/wss.rb +2 -1
  186. data/bundler/lib/bundler/vendor/uri/lib/uri.rb +3 -2
  187. data/bundler/lib/bundler/vendored_persistent.rb +1 -33
  188. data/bundler/lib/bundler/{vendored_tmpdir.rb → vendored_pub_grub.rb} +1 -1
  189. data/bundler/lib/bundler/version.rb +5 -1
  190. data/bundler/lib/bundler/worker.rb +5 -7
  191. data/bundler/lib/bundler.rb +21 -72
  192. data/{bin → exe}/gem +3 -4
  193. data/{bin → exe}/update_rubygems +8 -6
  194. data/lib/rubygems/available_set.rb +1 -0
  195. data/lib/rubygems/basic_specification.rb +1 -0
  196. data/lib/rubygems/bundler_version_finder.rb +1 -1
  197. data/lib/rubygems/command.rb +16 -7
  198. data/lib/rubygems/command_manager.rb +23 -8
  199. data/lib/rubygems/commands/build_command.rb +4 -0
  200. data/lib/rubygems/commands/cert_command.rb +1 -0
  201. data/lib/rubygems/commands/check_command.rb +1 -0
  202. data/lib/rubygems/commands/cleanup_command.rb +1 -0
  203. data/lib/rubygems/commands/contents_command.rb +1 -0
  204. data/lib/rubygems/commands/dependency_command.rb +1 -0
  205. data/lib/rubygems/commands/environment_command.rb +1 -0
  206. data/lib/rubygems/commands/exec_command.rb +249 -0
  207. data/lib/rubygems/commands/fetch_command.rb +2 -1
  208. data/lib/rubygems/commands/generate_index_command.rb +1 -0
  209. data/lib/rubygems/commands/help_command.rb +4 -3
  210. data/lib/rubygems/commands/install_command.rb +8 -3
  211. data/lib/rubygems/commands/list_command.rb +1 -0
  212. data/lib/rubygems/commands/lock_command.rb +1 -0
  213. data/lib/rubygems/commands/mirror_command.rb +1 -0
  214. data/lib/rubygems/commands/open_command.rb +1 -0
  215. data/lib/rubygems/commands/outdated_command.rb +1 -0
  216. data/lib/rubygems/commands/owner_command.rb +6 -3
  217. data/lib/rubygems/commands/pristine_command.rb +10 -0
  218. data/lib/rubygems/commands/push_command.rb +1 -0
  219. data/lib/rubygems/commands/query_command.rb +1 -0
  220. data/lib/rubygems/commands/rdoc_command.rb +4 -2
  221. data/lib/rubygems/commands/search_command.rb +1 -0
  222. data/lib/rubygems/commands/server_command.rb +1 -0
  223. data/lib/rubygems/commands/setup_command.rb +4 -3
  224. data/lib/rubygems/commands/signin_command.rb +1 -0
  225. data/lib/rubygems/commands/signout_command.rb +1 -0
  226. data/lib/rubygems/commands/sources_command.rb +1 -0
  227. data/lib/rubygems/commands/specification_command.rb +1 -0
  228. data/lib/rubygems/commands/stale_command.rb +1 -0
  229. data/lib/rubygems/commands/uninstall_command.rb +4 -0
  230. data/lib/rubygems/commands/unpack_command.rb +2 -1
  231. data/lib/rubygems/commands/update_command.rb +2 -7
  232. data/lib/rubygems/commands/which_command.rb +1 -0
  233. data/lib/rubygems/commands/yank_command.rb +1 -0
  234. data/lib/rubygems/config_file.rb +34 -0
  235. data/lib/rubygems/core_ext/kernel_gem.rb +0 -5
  236. data/lib/rubygems/core_ext/kernel_require.rb +108 -114
  237. data/lib/rubygems/core_ext/kernel_warn.rb +33 -37
  238. data/lib/rubygems/core_ext/tcpsocket_init.rb +2 -0
  239. data/lib/rubygems/defaults.rb +17 -2
  240. data/lib/rubygems/dependency.rb +6 -2
  241. data/lib/rubygems/dependency_installer.rb +25 -24
  242. data/lib/rubygems/dependency_list.rb +1 -0
  243. data/lib/rubygems/deprecate.rb +3 -2
  244. data/lib/rubygems/doctor.rb +1 -0
  245. data/lib/rubygems/errors.rb +1 -0
  246. data/lib/rubygems/exceptions.rb +11 -3
  247. data/lib/rubygems/ext/build_error.rb +1 -0
  248. data/lib/rubygems/ext/builder.rb +23 -7
  249. data/lib/rubygems/ext/cargo_builder/link_flag_converter.rb +9 -5
  250. data/lib/rubygems/ext/cargo_builder.rb +145 -110
  251. data/lib/rubygems/ext/configure_builder.rb +1 -0
  252. data/lib/rubygems/ext/ext_conf_builder.rb +4 -2
  253. data/lib/rubygems/ext/rake_builder.rb +5 -3
  254. data/lib/rubygems/ext.rb +1 -0
  255. data/lib/rubygems/gem_runner.rb +1 -0
  256. data/lib/rubygems/gemcutter_utilities/webauthn_listener/response.rb +163 -0
  257. data/lib/rubygems/gemcutter_utilities/webauthn_listener.rb +105 -0
  258. data/lib/rubygems/gemcutter_utilities/webauthn_poller.rb +78 -0
  259. data/lib/rubygems/gemcutter_utilities.rb +53 -6
  260. data/lib/rubygems/indexer.rb +2 -1
  261. data/lib/rubygems/install_default_message.rb +1 -0
  262. data/lib/rubygems/install_message.rb +1 -0
  263. data/lib/rubygems/install_update_options.rb +1 -0
  264. data/lib/rubygems/installer.rb +22 -6
  265. data/lib/rubygems/local_remote_options.rb +1 -0
  266. data/lib/rubygems/mock_gem_ui.rb +1 -0
  267. data/lib/rubygems/name_tuple.rb +1 -0
  268. data/lib/rubygems/optparse/lib/optparse.rb +20 -15
  269. data/lib/rubygems/package/digest_io.rb +1 -0
  270. data/lib/rubygems/package/file_source.rb +1 -0
  271. data/lib/rubygems/package/io_source.rb +1 -0
  272. data/lib/rubygems/package/old.rb +1 -0
  273. data/lib/rubygems/package/source.rb +1 -0
  274. data/lib/rubygems/package/tar_header.rb +13 -12
  275. data/lib/rubygems/package/tar_reader/entry.rb +89 -7
  276. data/lib/rubygems/package/tar_reader.rb +1 -28
  277. data/lib/rubygems/package/tar_writer.rb +1 -0
  278. data/lib/rubygems/package.rb +1 -0
  279. data/lib/rubygems/package_task.rb +1 -0
  280. data/lib/rubygems/path_support.rb +1 -0
  281. data/lib/rubygems/platform.rb +4 -5
  282. data/lib/rubygems/psych_tree.rb +1 -0
  283. data/lib/rubygems/rdoc.rb +1 -0
  284. data/lib/rubygems/remote_fetcher.rb +1 -0
  285. data/lib/rubygems/request/http_pool.rb +1 -0
  286. data/lib/rubygems/request/https_pool.rb +1 -0
  287. data/lib/rubygems/request.rb +1 -0
  288. data/lib/rubygems/request_set/gem_dependency_api.rb +105 -105
  289. data/lib/rubygems/request_set/lockfile/parser.rb +1 -0
  290. data/lib/rubygems/request_set/lockfile/tokenizer.rb +2 -0
  291. data/lib/rubygems/request_set/lockfile.rb +1 -0
  292. data/lib/rubygems/request_set.rb +3 -2
  293. data/lib/rubygems/requirement.rb +9 -8
  294. data/lib/rubygems/resolver/activation_request.rb +1 -0
  295. data/lib/rubygems/resolver/api_set.rb +1 -0
  296. data/lib/rubygems/resolver/api_specification.rb +1 -0
  297. data/lib/rubygems/resolver/best_set.rb +1 -0
  298. data/lib/rubygems/resolver/composed_set.rb +1 -0
  299. data/lib/rubygems/resolver/conflict.rb +1 -0
  300. data/lib/rubygems/resolver/current_set.rb +1 -0
  301. data/lib/rubygems/resolver/dependency_request.rb +1 -0
  302. data/lib/rubygems/resolver/git_set.rb +1 -0
  303. data/lib/rubygems/resolver/git_specification.rb +1 -0
  304. data/lib/rubygems/resolver/index_set.rb +1 -0
  305. data/lib/rubygems/resolver/index_specification.rb +1 -0
  306. data/lib/rubygems/resolver/installed_specification.rb +1 -0
  307. data/lib/rubygems/resolver/installer_set.rb +5 -2
  308. data/lib/rubygems/resolver/local_specification.rb +1 -0
  309. data/lib/rubygems/resolver/lock_set.rb +1 -0
  310. data/lib/rubygems/resolver/lock_specification.rb +1 -0
  311. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +1 -1
  312. data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +32 -26
  313. data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +1 -1
  314. data/lib/rubygems/resolver/molinillo.rb +1 -0
  315. data/lib/rubygems/resolver/requirement_list.rb +1 -0
  316. data/lib/rubygems/resolver/set.rb +1 -0
  317. data/lib/rubygems/resolver/source_set.rb +2 -0
  318. data/lib/rubygems/resolver/spec_specification.rb +1 -0
  319. data/lib/rubygems/resolver/specification.rb +1 -0
  320. data/lib/rubygems/resolver/stats.rb +2 -1
  321. data/lib/rubygems/resolver/vendor_set.rb +1 -0
  322. data/lib/rubygems/resolver/vendor_specification.rb +1 -0
  323. data/lib/rubygems/resolver.rb +1 -0
  324. data/lib/rubygems/s3_uri_signer.rb +4 -2
  325. data/lib/rubygems/safe_yaml.rb +2 -0
  326. data/lib/rubygems/security/policies.rb +41 -40
  327. data/lib/rubygems/security/policy.rb +1 -0
  328. data/lib/rubygems/security/signer.rb +1 -0
  329. data/lib/rubygems/security/trust_dir.rb +2 -1
  330. data/lib/rubygems/security.rb +4 -16
  331. data/lib/rubygems/security_option.rb +1 -0
  332. data/lib/rubygems/shellwords.rb +3 -0
  333. data/lib/rubygems/source/git.rb +1 -1
  334. data/lib/rubygems/source/installed.rb +1 -0
  335. data/lib/rubygems/source/local.rb +1 -0
  336. data/lib/rubygems/source/lock.rb +1 -0
  337. data/lib/rubygems/source/specific_file.rb +1 -0
  338. data/lib/rubygems/source/vendor.rb +1 -0
  339. data/lib/rubygems/source.rb +2 -2
  340. data/lib/rubygems/spec_fetcher.rb +1 -0
  341. data/lib/rubygems/specification.rb +58 -52
  342. data/lib/rubygems/specification_policy.rb +21 -0
  343. data/lib/rubygems/stub_specification.rb +10 -8
  344. data/lib/rubygems/text.rb +2 -2
  345. data/lib/rubygems/tsort/lib/tsort.rb +308 -310
  346. data/lib/rubygems/uninstaller.rb +1 -0
  347. data/lib/rubygems/update_suggestion.rb +69 -0
  348. data/lib/rubygems/user_interaction.rb +2 -0
  349. data/lib/rubygems/util/licenses.rb +3 -2
  350. data/lib/rubygems/util/list.rb +1 -0
  351. data/lib/rubygems/util.rb +2 -5
  352. data/lib/rubygems/validator.rb +2 -1
  353. data/lib/rubygems/version.rb +2 -2
  354. data/lib/rubygems/version_option.rb +1 -0
  355. data/lib/rubygems.rb +32 -11
  356. data/rubygems-update.gemspec +6 -4
  357. data/setup.rb +1 -0
  358. data/test/rubygems/bad_rake.rb +1 -0
  359. data/test/rubygems/bundler_test_gem.rb +421 -0
  360. data/test/rubygems/fake_certlib/openssl.rb +1 -0
  361. data/test/rubygems/good_rake.rb +1 -0
  362. data/test/rubygems/helper.rb +23 -6
  363. data/test/rubygems/installer_test_case.rb +1 -0
  364. data/test/rubygems/multifactor_auth_utilities.rb +111 -0
  365. data/test/rubygems/package/tar_test_case.rb +51 -15
  366. data/test/rubygems/plugin/exception/rubygems_plugin.rb +1 -0
  367. data/test/rubygems/plugin/load/rubygems_plugin.rb +1 -0
  368. data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +1 -0
  369. data/test/rubygems/rubygems/commands/crash_command.rb +1 -0
  370. data/test/rubygems/rubygems_plugin.rb +1 -0
  371. data/test/rubygems/simple_gem.rb +2 -1
  372. data/test/rubygems/specifications/bar-0.0.2.gemspec +2 -0
  373. data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +2 -0
  374. data/test/rubygems/test_bundled_ca.rb +3 -2
  375. data/test/rubygems/test_config.rb +2 -1
  376. data/test/rubygems/test_deprecate.rb +2 -1
  377. data/test/rubygems/test_exit.rb +7 -1
  378. data/test/rubygems/test_gem.rb +41 -421
  379. data/test/rubygems/test_gem_available_set.rb +1 -0
  380. data/test/rubygems/test_gem_bundler_version_finder.rb +5 -3
  381. data/test/rubygems/test_gem_command.rb +1 -0
  382. data/test/rubygems/test_gem_command_manager.rb +67 -1
  383. data/test/rubygems/test_gem_commands_build_command.rb +11 -0
  384. data/test/rubygems/test_gem_commands_cert_command.rb +1 -0
  385. data/test/rubygems/test_gem_commands_check_command.rb +1 -0
  386. data/test/rubygems/test_gem_commands_cleanup_command.rb +1 -0
  387. data/test/rubygems/test_gem_commands_contents_command.rb +1 -0
  388. data/test/rubygems/test_gem_commands_dependency_command.rb +1 -0
  389. data/test/rubygems/test_gem_commands_environment_command.rb +1 -0
  390. data/test/rubygems/test_gem_commands_exec_command.rb +853 -0
  391. data/test/rubygems/test_gem_commands_fetch_command.rb +1 -0
  392. data/test/rubygems/test_gem_commands_generate_index_command.rb +1 -0
  393. data/test/rubygems/test_gem_commands_help_command.rb +1 -0
  394. data/test/rubygems/test_gem_commands_info_command.rb +1 -0
  395. data/test/rubygems/test_gem_commands_install_command.rb +21 -1
  396. data/test/rubygems/test_gem_commands_list_command.rb +1 -0
  397. data/test/rubygems/test_gem_commands_lock_command.rb +1 -0
  398. data/test/rubygems/test_gem_commands_mirror.rb +1 -0
  399. data/test/rubygems/test_gem_commands_open_command.rb +1 -0
  400. data/test/rubygems/test_gem_commands_outdated_command.rb +1 -0
  401. data/test/rubygems/test_gem_commands_owner_command.rb +103 -7
  402. data/test/rubygems/test_gem_commands_pristine_command.rb +50 -1
  403. data/test/rubygems/test_gem_commands_push_command.rb +110 -6
  404. data/test/rubygems/test_gem_commands_query_command.rb +1 -0
  405. data/test/rubygems/test_gem_commands_search_command.rb +1 -0
  406. data/test/rubygems/test_gem_commands_server_command.rb +1 -0
  407. data/test/rubygems/test_gem_commands_setup_command.rb +4 -11
  408. data/test/rubygems/test_gem_commands_signin_command.rb +1 -0
  409. data/test/rubygems/test_gem_commands_sources_command.rb +1 -0
  410. data/test/rubygems/test_gem_commands_specification_command.rb +1 -0
  411. data/test/rubygems/test_gem_commands_stale_command.rb +1 -0
  412. data/test/rubygems/test_gem_commands_uninstall_command.rb +32 -14
  413. data/test/rubygems/test_gem_commands_unpack_command.rb +1 -0
  414. data/test/rubygems/test_gem_commands_update_command.rb +7 -6
  415. data/test/rubygems/test_gem_commands_which_command.rb +1 -0
  416. data/test/rubygems/test_gem_commands_yank_command.rb +120 -1
  417. data/test/rubygems/test_gem_config_file.rb +2 -1
  418. data/test/rubygems/test_gem_dependency.rb +3 -0
  419. data/test/rubygems/test_gem_dependency_installer.rb +35 -0
  420. data/test/rubygems/test_gem_dependency_list.rb +1 -0
  421. data/test/rubygems/test_gem_dependency_resolution_error.rb +1 -0
  422. data/test/rubygems/test_gem_doctor.rb +1 -0
  423. data/test/rubygems/test_gem_ext_builder.rb +7 -8
  424. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +4 -4
  425. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/{Cargo.lock → ext/custom_name_lib/Cargo.lock} +22 -32
  426. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/{Cargo.toml → ext/custom_name_lib/Cargo.toml} +1 -1
  427. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/{src → ext/custom_name_lib/src}/lib.rs +1 -1
  428. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/lib/custom_name.rb +3 -0
  429. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +36 -32
  430. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +1 -1
  431. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/rust_ruby_example.gemspec +2 -0
  432. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs +12 -0
  433. data/test/rubygems/test_gem_ext_cargo_builder.rb +33 -44
  434. data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +17 -16
  435. data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +5 -20
  436. data/test/rubygems/test_gem_ext_cmake_builder.rb +1 -0
  437. data/test/rubygems/test_gem_ext_configure_builder.rb +1 -0
  438. data/test/rubygems/test_gem_ext_rake_builder.rb +1 -0
  439. data/test/rubygems/test_gem_gem_runner.rb +8 -2
  440. data/test/rubygems/test_gem_gemcutter_utilities.rb +130 -48
  441. data/test/rubygems/test_gem_impossible_dependencies_error.rb +1 -0
  442. data/test/rubygems/test_gem_indexer.rb +40 -20
  443. data/test/rubygems/test_gem_install_update_options.rb +1 -0
  444. data/test/rubygems/test_gem_installer.rb +120 -5
  445. data/test/rubygems/test_gem_local_remote_options.rb +1 -0
  446. data/test/rubygems/test_gem_name_tuple.rb +1 -0
  447. data/test/rubygems/test_gem_package.rb +0 -25
  448. data/test/rubygems/test_gem_package_old.rb +1 -0
  449. data/test/rubygems/test_gem_package_tar_header.rb +14 -13
  450. data/test/rubygems/test_gem_package_tar_reader.rb +49 -1
  451. data/test/rubygems/test_gem_package_tar_reader_entry.rb +152 -6
  452. data/test/rubygems/test_gem_package_tar_writer.rb +1 -0
  453. data/test/rubygems/test_gem_package_task.rb +1 -0
  454. data/test/rubygems/test_gem_path_support.rb +1 -0
  455. data/test/rubygems/test_gem_platform.rb +60 -60
  456. data/test/rubygems/test_gem_rdoc.rb +1 -0
  457. data/test/rubygems/test_gem_remote_fetcher.rb +6 -5
  458. data/test/rubygems/test_gem_request.rb +10 -4
  459. data/test/rubygems/test_gem_request_connection_pools.rb +1 -0
  460. data/test/rubygems/test_gem_request_set.rb +3 -2
  461. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +11 -10
  462. data/test/rubygems/test_gem_request_set_lockfile.rb +1 -0
  463. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +7 -6
  464. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +1 -0
  465. data/test/rubygems/test_gem_requirement.rb +2 -1
  466. data/test/rubygems/test_gem_resolver.rb +1 -0
  467. data/test/rubygems/test_gem_resolver_activation_request.rb +1 -0
  468. data/test/rubygems/test_gem_resolver_api_set.rb +13 -12
  469. data/test/rubygems/test_gem_resolver_api_specification.rb +20 -19
  470. data/test/rubygems/test_gem_resolver_best_set.rb +1 -0
  471. data/test/rubygems/test_gem_resolver_composed_set.rb +1 -0
  472. data/test/rubygems/test_gem_resolver_conflict.rb +1 -0
  473. data/test/rubygems/test_gem_resolver_dependency_request.rb +1 -0
  474. data/test/rubygems/test_gem_resolver_git_set.rb +10 -9
  475. data/test/rubygems/test_gem_resolver_git_specification.rb +3 -2
  476. data/test/rubygems/test_gem_resolver_index_set.rb +1 -0
  477. data/test/rubygems/test_gem_resolver_index_specification.rb +1 -0
  478. data/test/rubygems/test_gem_resolver_installed_specification.rb +1 -0
  479. data/test/rubygems/test_gem_resolver_installer_set.rb +1 -0
  480. data/test/rubygems/test_gem_resolver_local_specification.rb +1 -0
  481. data/test/rubygems/test_gem_resolver_lock_set.rb +1 -0
  482. data/test/rubygems/test_gem_resolver_lock_specification.rb +1 -0
  483. data/test/rubygems/test_gem_resolver_requirement_list.rb +1 -0
  484. data/test/rubygems/test_gem_resolver_specification.rb +1 -0
  485. data/test/rubygems/test_gem_resolver_vendor_set.rb +1 -0
  486. data/test/rubygems/test_gem_resolver_vendor_specification.rb +1 -0
  487. data/test/rubygems/test_gem_security.rb +1 -0
  488. data/test/rubygems/test_gem_security_policy.rb +10 -10
  489. data/test/rubygems/test_gem_security_signer.rb +1 -0
  490. data/test/rubygems/test_gem_security_trust_dir.rb +3 -2
  491. data/test/rubygems/test_gem_silent_ui.rb +1 -0
  492. data/test/rubygems/test_gem_source.rb +2 -1
  493. data/test/rubygems/test_gem_source_fetch_problem.rb +1 -0
  494. data/test/rubygems/test_gem_source_git.rb +14 -12
  495. data/test/rubygems/test_gem_source_installed.rb +2 -1
  496. data/test/rubygems/test_gem_source_list.rb +1 -0
  497. data/test/rubygems/test_gem_source_local.rb +1 -0
  498. data/test/rubygems/test_gem_source_lock.rb +4 -3
  499. data/test/rubygems/test_gem_source_specific_file.rb +1 -0
  500. data/test/rubygems/test_gem_source_subpath_problem.rb +1 -0
  501. data/test/rubygems/test_gem_source_vendor.rb +2 -1
  502. data/test/rubygems/test_gem_spec_fetcher.rb +1 -0
  503. data/test/rubygems/test_gem_specification.rb +95 -39
  504. data/test/rubygems/test_gem_stream_ui.rb +34 -3
  505. data/test/rubygems/test_gem_stub_specification.rb +1 -0
  506. data/test/rubygems/test_gem_text.rb +1 -0
  507. data/test/rubygems/test_gem_uninstaller.rb +6 -5
  508. data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +1 -0
  509. data/test/rubygems/test_gem_update_suggestion.rb +209 -0
  510. data/test/rubygems/test_gem_uri.rb +2 -0
  511. data/test/rubygems/test_gem_uri_formatter.rb +1 -0
  512. data/test/rubygems/test_gem_util.rb +1 -0
  513. data/test/rubygems/test_gem_version.rb +3 -2
  514. data/test/rubygems/test_gem_version_option.rb +1 -0
  515. data/test/rubygems/test_kernel.rb +12 -17
  516. data/test/rubygems/test_project_sanity.rb +32 -3
  517. data/test/rubygems/test_remote_fetch_error.rb +2 -1
  518. data/test/rubygems/test_require.rb +70 -55
  519. data/test/rubygems/test_rubygems.rb +2 -0
  520. data/test/rubygems/test_webauthn_listener.rb +143 -0
  521. data/test/rubygems/test_webauthn_listener_response.rb +93 -0
  522. data/test/rubygems/test_webauthn_poller.rb +124 -0
  523. data/test/rubygems/utilities.rb +45 -3
  524. data/test/test_changelog_generator.rb +1 -1
  525. metadata +59 -43
  526. data/bundler/lib/bundler/templates/gems.rb +0 -5
  527. data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt +0 -5
  528. data/bundler/lib/bundler/templates/newgem/travis.yml.tt +0 -6
  529. data/bundler/lib/bundler/vendor/molinillo/LICENSE +0 -9
  530. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +0 -57
  531. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +0 -88
  532. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb +0 -36
  533. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +0 -66
  534. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +0 -62
  535. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +0 -63
  536. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +0 -61
  537. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +0 -126
  538. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +0 -46
  539. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +0 -36
  540. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +0 -164
  541. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +0 -255
  542. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +0 -149
  543. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +0 -6
  544. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +0 -112
  545. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb +0 -67
  546. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +0 -839
  547. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +0 -46
  548. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/state.rb +0 -58
  549. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -11
  550. data/bundler/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +0 -154
  551. data/bundler/lib/bundler/vendored_molinillo.rb +0 -4
  552. data/bundler/lib/bundler/version_ranges.rb +0 -122
  553. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/build.rb +0 -21
  554. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/build.rb +0 -21
@@ -0,0 +1,124 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "helper"
4
+ require "rubygems/gemcutter_utilities/webauthn_poller"
5
+ require "rubygems/gemcutter_utilities"
6
+
7
+ class WebauthnPollerTest < Gem::TestCase
8
+ def setup
9
+ super
10
+
11
+ @host = Gem.host
12
+ @webauthn_url = "#{@host}/api/v1/webauthn_verification/odow34b93t6aPCdY"
13
+ @fetcher = Gem::FakeFetcher.new
14
+ Gem::RemoteFetcher.fetcher = @fetcher
15
+ @credentials = {
16
+ email: "email@example.com",
17
+ password: "password",
18
+ }
19
+ end
20
+
21
+ def test_poll_thread_success
22
+ @fetcher.data["#{@webauthn_url}/status.json"] = Gem::HTTPResponseFactory.create(
23
+ body: "{\"status\":\"success\",\"code\":\"Uvh6T57tkWuUnWYo\"}",
24
+ code: 200,
25
+ msg: "OK"
26
+ )
27
+
28
+ thread = Gem::GemcutterUtilities::WebauthnPoller.poll_thread({}, @host, @webauthn_url, @credentials)
29
+ thread.join
30
+
31
+ assert_equal thread[:otp], "Uvh6T57tkWuUnWYo"
32
+ end
33
+
34
+ def test_poll_thread_webauthn_verification_error
35
+ @fetcher.data["#{@webauthn_url}/status.json"] = Gem::HTTPResponseFactory.create(
36
+ body: "HTTP Basic: Access denied.",
37
+ code: 401,
38
+ msg: "Unauthorized"
39
+ )
40
+
41
+ thread = Gem::GemcutterUtilities::WebauthnPoller.poll_thread({}, @host, @webauthn_url, @credentials)
42
+ thread.join
43
+
44
+ assert_equal thread[:error].message, "Security device verification failed: Unauthorized"
45
+ end
46
+
47
+ def test_poll_thread_timeout_error
48
+ raise_error = ->(*_args) { raise Timeout::Error, "execution expired" }
49
+ Timeout.stub(:timeout, raise_error) do
50
+ thread = Gem::GemcutterUtilities::WebauthnPoller.poll_thread({}, @host, @webauthn_url, @credentials)
51
+ thread.join
52
+ assert_equal thread[:error].message, "execution expired"
53
+ end
54
+ end
55
+
56
+ def test_poll_for_otp_success
57
+ @fetcher.data["#{@webauthn_url}/status.json"] = Gem::HTTPResponseFactory.create(
58
+ body: "{\"status\":\"success\",\"code\":\"Uvh6T57tkWuUnWYo\"}",
59
+ code: 200,
60
+ msg: "OK"
61
+ )
62
+
63
+ otp = Gem::GemcutterUtilities::WebauthnPoller.new({}, @host).poll_for_otp(@webauthn_url, @credentials)
64
+
65
+ assert_equal otp, "Uvh6T57tkWuUnWYo"
66
+ end
67
+
68
+ def test_poll_for_otp_pending_sleeps
69
+ @fetcher.data["#{@webauthn_url}/status.json"] = Gem::HTTPResponseFactory.create(
70
+ body: "{\"status\":\"pending\",\"message\":\"Security device authentication is still pending.\"}",
71
+ code: 200,
72
+ msg: "OK"
73
+ )
74
+
75
+ assert_raise Timeout::Error do
76
+ Timeout.timeout(0.1) do
77
+ Gem::GemcutterUtilities::WebauthnPoller.new({}, @host).poll_for_otp(@webauthn_url, @credentials)
78
+ end
79
+ end
80
+ end
81
+
82
+ def test_poll_for_otp_not_http_success
83
+ @fetcher.data["#{@webauthn_url}/status.json"] = Gem::HTTPResponseFactory.create(
84
+ body: "HTTP Basic: Access denied.",
85
+ code: 401,
86
+ msg: "Unauthorized"
87
+ )
88
+
89
+ error = assert_raise Gem::WebauthnVerificationError do
90
+ Gem::GemcutterUtilities::WebauthnPoller.new({}, @host).poll_for_otp(@webauthn_url, @credentials)
91
+ end
92
+
93
+ assert_equal error.message, "Security device verification failed: Unauthorized"
94
+ end
95
+
96
+ def test_poll_for_otp_invalid_format
97
+ @fetcher.data["#{@webauthn_url}/status.json"] = Gem::HTTPResponseFactory.create(
98
+ body: "{}",
99
+ code: 200,
100
+ msg: "OK"
101
+ )
102
+
103
+ error = assert_raise Gem::WebauthnVerificationError do
104
+ Gem::GemcutterUtilities::WebauthnPoller.new({}, @host).poll_for_otp(@webauthn_url, @credentials)
105
+ end
106
+
107
+ assert_equal error.message, "Security device verification failed: Invalid response from server"
108
+ end
109
+
110
+ def test_poll_for_otp_invalid_status
111
+ @fetcher.data["#{@webauthn_url}/status.json"] = Gem::HTTPResponseFactory.create(
112
+ body: "{\"status\":\"expired\",\"message\":\"The token in the link you used has either expired or been used already.\"}",
113
+ code: 200,
114
+ msg: "OK"
115
+ )
116
+
117
+ error = assert_raise Gem::WebauthnVerificationError do
118
+ Gem::GemcutterUtilities::WebauthnPoller.new({}, @host).poll_for_otp(@webauthn_url, @credentials)
119
+ end
120
+
121
+ assert_equal error.message,
122
+ "Security device verification failed: The token in the link you used has either expired or been used already."
123
+ end
124
+ end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require "tempfile"
3
4
  require "rubygems"
4
5
  require "rubygems/remote_fetcher"
@@ -167,7 +168,7 @@ end
167
168
  #
168
169
  # Example:
169
170
  #
170
- # HTTPResponseFactory.create(
171
+ # Gem::HTTPResponseFactory.create(
171
172
  # body: "",
172
173
  # code: 301,
173
174
  # msg: "Moved Permanently",
@@ -175,7 +176,7 @@ end
175
176
  # )
176
177
  #
177
178
 
178
- class HTTPResponseFactory
179
+ class Gem::HTTPResponseFactory
179
180
  def self.create(body:, code:, msg:, headers: {})
180
181
  response = Net::HTTPResponse.send(:response_class, code.to_s).new("1.0", code.to_s, msg)
181
182
  response.instance_variable_set(:@body, body)
@@ -186,6 +187,42 @@ class HTTPResponseFactory
186
187
  end
187
188
  end
188
189
 
190
+ ##
191
+ # A Gem::MockBrowser is used in tests to mock a browser in that it can
192
+ # send HTTP requests to the defined URI.
193
+ #
194
+ # Example:
195
+ #
196
+ # # Sends a get request to http://localhost:5678
197
+ # Gem::MockBrowser.get URI("http://localhost:5678")
198
+ #
199
+ # See RubyGems' tests for more examples of MockBrowser.
200
+ #
201
+
202
+ class Gem::MockBrowser
203
+ def self.options(uri)
204
+ options = Net::HTTP::Options.new(uri)
205
+ Net::HTTP.start(uri.hostname, uri.port) do |http|
206
+ http.request(options)
207
+ end
208
+ end
209
+
210
+ def self.get(uri)
211
+ get = Net::HTTP::Get.new(uri)
212
+ Net::HTTP.start(uri.hostname, uri.port) do |http|
213
+ http.request(get)
214
+ end
215
+ end
216
+
217
+ def self.post(uri, content_type: "application/x-www-form-urlencoded")
218
+ headers = { "content-type" => content_type } if content_type
219
+ post = Net::HTTP::Post.new(uri, headers)
220
+ Net::HTTP.start(uri.hostname, uri.port) do |http|
221
+ http.request(post)
222
+ end
223
+ end
224
+ end
225
+
189
226
  # :stopdoc:
190
227
  class Gem::RemoteFetcher
191
228
  def self.fetcher=(fetcher)
@@ -372,7 +409,7 @@ end
372
409
  #
373
410
  # This class was added to flush out problems in Rubinius' IO implementation.
374
411
 
375
- class TempIO < Tempfile
412
+ class Gem::TempIO < Tempfile
376
413
  ##
377
414
  # Creates a new TempIO that will be initialized to contain +string+.
378
415
 
@@ -391,3 +428,8 @@ class TempIO < Tempfile
391
428
  Gem.read_binary path
392
429
  end
393
430
  end
431
+
432
+ class Gem::TestCase
433
+ TempIO = Gem::TempIO
434
+ HTTPResponseFactory = Gem::HTTPResponseFactory
435
+ end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "../util/changelog"
3
+ require_relative "../tool/changelog"
4
4
  require "rubygems/commands/setup_command"
5
5
  require_relative "rubygems/helper"
6
6
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubygems-update
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.3.26
4
+ version: 3.4.18
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jim Weirich
@@ -14,9 +14,9 @@ authors:
14
14
  - Evan Phoenix
15
15
  - Hiroshi SHIBATA
16
16
  autorequire:
17
- bindir: bin
17
+ bindir: exe
18
18
  cert_chain: []
19
- date: 2022-11-17 00:00:00.000000000 Z
19
+ date: 2023-08-02 00:00:00.000000000 Z
20
20
  dependencies: []
21
21
  description: |-
22
22
  A package (also known as a library) contains a set of functionality
@@ -64,8 +64,6 @@ files:
64
64
  - POLICIES.md
65
65
  - README.md
66
66
  - UPGRADING.md
67
- - bin/gem
68
- - bin/update_rubygems
69
67
  - bundler/CHANGELOG.md
70
68
  - bundler/LICENSE.md
71
69
  - bundler/README.md
@@ -129,6 +127,7 @@ files:
129
127
  - bundler/lib/bundler/fetcher/dependency.rb
130
128
  - bundler/lib/bundler/fetcher/downloader.rb
131
129
  - bundler/lib/bundler/fetcher/index.rb
130
+ - bundler/lib/bundler/force_platform.rb
132
131
  - bundler/lib/bundler/friendly_errors.rb
133
132
  - bundler/lib/bundler/gem_helper.rb
134
133
  - bundler/lib/bundler/gem_helpers.rb
@@ -223,6 +222,10 @@ files:
223
222
  - bundler/lib/bundler/remote_specification.rb
224
223
  - bundler/lib/bundler/resolver.rb
225
224
  - bundler/lib/bundler/resolver/base.rb
225
+ - bundler/lib/bundler/resolver/candidate.rb
226
+ - bundler/lib/bundler/resolver/incompatibility.rb
227
+ - bundler/lib/bundler/resolver/package.rb
228
+ - bundler/lib/bundler/resolver/root.rb
226
229
  - bundler/lib/bundler/resolver/spec_group.rb
227
230
  - bundler/lib/bundler/retry.rb
228
231
  - bundler/lib/bundler/ruby_dsl.rb
@@ -231,6 +234,7 @@ files:
231
234
  - bundler/lib/bundler/rubygems_gem_installer.rb
232
235
  - bundler/lib/bundler/rubygems_integration.rb
233
236
  - bundler/lib/bundler/runtime.rb
237
+ - bundler/lib/bundler/safe_marshal.rb
234
238
  - bundler/lib/bundler/self_manager.rb
235
239
  - bundler/lib/bundler/settings.rb
236
240
  - bundler/lib/bundler/settings/validator.rb
@@ -256,9 +260,9 @@ files:
256
260
  - bundler/lib/bundler/templates/Executable.bundler
257
261
  - bundler/lib/bundler/templates/Executable.standalone
258
262
  - bundler/lib/bundler/templates/Gemfile
259
- - bundler/lib/bundler/templates/gems.rb
260
263
  - bundler/lib/bundler/templates/newgem/CHANGELOG.md.tt
261
264
  - bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt
265
+ - bundler/lib/bundler/templates/newgem/Cargo.toml.tt
262
266
  - bundler/lib/bundler/templates/newgem/Gemfile.tt
263
267
  - bundler/lib/bundler/templates/newgem/LICENSE.txt.tt
264
268
  - bundler/lib/bundler/templates/newgem/README.md.tt
@@ -267,9 +271,12 @@ files:
267
271
  - bundler/lib/bundler/templates/newgem/bin/setup.tt
268
272
  - bundler/lib/bundler/templates/newgem/circleci/config.yml.tt
269
273
  - bundler/lib/bundler/templates/newgem/exe/newgem.tt
270
- - bundler/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt
274
+ - bundler/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt
275
+ - bundler/lib/bundler/templates/newgem/ext/newgem/extconf-c.rb.tt
276
+ - bundler/lib/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt
271
277
  - bundler/lib/bundler/templates/newgem/ext/newgem/newgem.c.tt
272
278
  - bundler/lib/bundler/templates/newgem/ext/newgem/newgem.h.tt
279
+ - bundler/lib/bundler/templates/newgem/ext/newgem/src/lib.rs.tt
273
280
  - bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt
274
281
  - bundler/lib/bundler/templates/newgem/gitignore.tt
275
282
  - bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt
@@ -286,12 +293,12 @@ files:
286
293
  - bundler/lib/bundler/templates/newgem/test/minitest/test_newgem.rb.tt
287
294
  - bundler/lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt
288
295
  - bundler/lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt
289
- - bundler/lib/bundler/templates/newgem/travis.yml.tt
290
296
  - bundler/lib/bundler/ui.rb
291
297
  - bundler/lib/bundler/ui/rg_proxy.rb
292
298
  - bundler/lib/bundler/ui/shell.rb
293
299
  - bundler/lib/bundler/ui/silent.rb
294
300
  - bundler/lib/bundler/uri_credentials_filter.rb
301
+ - bundler/lib/bundler/uri_normalizer.rb
295
302
  - bundler/lib/bundler/vendor/.document
296
303
  - bundler/lib/bundler/vendor/connection_pool/LICENSE
297
304
  - bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb
@@ -300,32 +307,28 @@ files:
300
307
  - bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb
301
308
  - bundler/lib/bundler/vendor/fileutils/LICENSE.txt
302
309
  - bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb
303
- - bundler/lib/bundler/vendor/molinillo/LICENSE
304
- - bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb
305
- - bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb
306
- - bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb
307
- - bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb
308
- - bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb
309
- - bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb
310
- - bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
311
- - bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb
312
- - bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb
313
- - bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb
314
- - bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb
315
- - bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb
316
- - bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb
317
- - bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb
318
- - bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb
319
- - bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb
320
- - bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb
321
- - bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb
322
- - bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb
323
- - bundler/lib/bundler/vendor/molinillo/lib/molinillo/state.rb
324
310
  - bundler/lib/bundler/vendor/net-http-persistent/README.rdoc
325
311
  - bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb
326
312
  - bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb
327
313
  - bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb
328
314
  - bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb
315
+ - bundler/lib/bundler/vendor/pub_grub/LICENSE.txt
316
+ - bundler/lib/bundler/vendor/pub_grub/lib/pub_grub.rb
317
+ - bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/assignment.rb
318
+ - bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb
319
+ - bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/failure_writer.rb
320
+ - bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb
321
+ - bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/package.rb
322
+ - bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/partial_solution.rb
323
+ - bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb
324
+ - bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/solve_failure.rb
325
+ - bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb
326
+ - bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/term.rb
327
+ - bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb
328
+ - bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb
329
+ - bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb
330
+ - bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb
331
+ - bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_union.rb
329
332
  - bundler/lib/bundler/vendor/thor/LICENSE.md
330
333
  - bundler/lib/bundler/vendor/thor/lib/thor.rb
331
334
  - bundler/lib/bundler/vendor/thor/lib/thor/actions.rb
@@ -358,7 +361,6 @@ files:
358
361
  - bundler/lib/bundler/vendor/thor/lib/thor/shell/html.rb
359
362
  - bundler/lib/bundler/vendor/thor/lib/thor/util.rb
360
363
  - bundler/lib/bundler/vendor/thor/lib/thor/version.rb
361
- - bundler/lib/bundler/vendor/tmpdir/lib/tmpdir.rb
362
364
  - bundler/lib/bundler/vendor/tsort/LICENSE.txt
363
365
  - bundler/lib/bundler/vendor/tsort/lib/tsort.rb
364
366
  - bundler/lib/bundler/vendor/uri/LICENSE.txt
@@ -378,17 +380,17 @@ files:
378
380
  - bundler/lib/bundler/vendor/uri/lib/uri/ws.rb
379
381
  - bundler/lib/bundler/vendor/uri/lib/uri/wss.rb
380
382
  - bundler/lib/bundler/vendored_fileutils.rb
381
- - bundler/lib/bundler/vendored_molinillo.rb
382
383
  - bundler/lib/bundler/vendored_persistent.rb
384
+ - bundler/lib/bundler/vendored_pub_grub.rb
383
385
  - bundler/lib/bundler/vendored_thor.rb
384
- - bundler/lib/bundler/vendored_tmpdir.rb
385
386
  - bundler/lib/bundler/vendored_tsort.rb
386
387
  - bundler/lib/bundler/vendored_uri.rb
387
388
  - bundler/lib/bundler/version.rb
388
- - bundler/lib/bundler/version_ranges.rb
389
389
  - bundler/lib/bundler/vlad.rb
390
390
  - bundler/lib/bundler/worker.rb
391
391
  - bundler/lib/bundler/yaml_serializer.rb
392
+ - exe/gem
393
+ - exe/update_rubygems
392
394
  - hide_lib_for_update/note.txt
393
395
  - lib/rubygems.rb
394
396
  - lib/rubygems/available_set.rb
@@ -403,6 +405,7 @@ files:
403
405
  - lib/rubygems/commands/contents_command.rb
404
406
  - lib/rubygems/commands/dependency_command.rb
405
407
  - lib/rubygems/commands/environment_command.rb
408
+ - lib/rubygems/commands/exec_command.rb
406
409
  - lib/rubygems/commands/fetch_command.rb
407
410
  - lib/rubygems/commands/generate_index_command.rb
408
411
  - lib/rubygems/commands/help_command.rb
@@ -456,6 +459,9 @@ files:
456
459
  - lib/rubygems/ext/rake_builder.rb
457
460
  - lib/rubygems/gem_runner.rb
458
461
  - lib/rubygems/gemcutter_utilities.rb
462
+ - lib/rubygems/gemcutter_utilities/webauthn_listener.rb
463
+ - lib/rubygems/gemcutter_utilities/webauthn_listener/response.rb
464
+ - lib/rubygems/gemcutter_utilities/webauthn_poller.rb
459
465
  - lib/rubygems/indexer.rb
460
466
  - lib/rubygems/install_default_message.rb
461
467
  - lib/rubygems/install_message.rb
@@ -562,6 +568,7 @@ files:
562
568
  - lib/rubygems/security/signer.rb
563
569
  - lib/rubygems/security/trust_dir.rb
564
570
  - lib/rubygems/security_option.rb
571
+ - lib/rubygems/shellwords.rb
565
572
  - lib/rubygems/source.rb
566
573
  - lib/rubygems/source/git.rb
567
574
  - lib/rubygems/source/installed.rb
@@ -584,6 +591,7 @@ files:
584
591
  - lib/rubygems/tsort/lib/tsort.rb
585
592
  - lib/rubygems/uninstaller.rb
586
593
  - lib/rubygems/unknown_command_spell_checker.rb
594
+ - lib/rubygems/update_suggestion.rb
587
595
  - lib/rubygems/uri.rb
588
596
  - lib/rubygems/uri_formatter.rb
589
597
  - lib/rubygems/user_interaction.rb
@@ -599,6 +607,7 @@ files:
599
607
  - test/rubygems/alternate_cert_32.pem
600
608
  - test/rubygems/alternate_key.pem
601
609
  - test/rubygems/bad_rake.rb
610
+ - test/rubygems/bundler_test_gem.rb
602
611
  - test/rubygems/ca_cert.pem
603
612
  - test/rubygems/child_cert.pem
604
613
  - test/rubygems/child_cert_32.pem
@@ -631,6 +640,7 @@ files:
631
640
  - test/rubygems/invalidchild_cert.pem
632
641
  - test/rubygems/invalidchild_cert_32.pem
633
642
  - test/rubygems/invalidchild_key.pem
643
+ - test/rubygems/multifactor_auth_utilities.rb
634
644
  - test/rubygems/package/tar_test_case.rb
635
645
  - test/rubygems/packages/Bluebie-legs-0.6.2.gem
636
646
  - test/rubygems/packages/ascii_binder-0.1.10.1.gem
@@ -670,6 +680,7 @@ files:
670
680
  - test/rubygems/test_gem_commands_contents_command.rb
671
681
  - test/rubygems/test_gem_commands_dependency_command.rb
672
682
  - test/rubygems/test_gem_commands_environment_command.rb
683
+ - test/rubygems/test_gem_commands_exec_command.rb
673
684
  - test/rubygems/test_gem_commands_fetch_command.rb
674
685
  - test/rubygems/test_gem_commands_generate_index_command.rb
675
686
  - test/rubygems/test_gem_commands_help_command.rb
@@ -706,15 +717,14 @@ files:
706
717
  - test/rubygems/test_gem_ext_builder.rb
707
718
  - test/rubygems/test_gem_ext_cargo_builder.rb
708
719
  - test/rubygems/test_gem_ext_cargo_builder/custom_name/.gitignore
709
- - test/rubygems/test_gem_ext_cargo_builder/custom_name/Cargo.lock
710
- - test/rubygems/test_gem_ext_cargo_builder/custom_name/Cargo.toml
711
- - test/rubygems/test_gem_ext_cargo_builder/custom_name/build.rb
712
720
  - test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec
713
- - test/rubygems/test_gem_ext_cargo_builder/custom_name/src/lib.rs
721
+ - test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.lock
722
+ - test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.toml
723
+ - test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/src/lib.rs
724
+ - test/rubygems/test_gem_ext_cargo_builder/custom_name/lib/custom_name.rb
714
725
  - test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/.gitignore
715
726
  - test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock
716
727
  - test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml
717
- - test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/build.rb
718
728
  - test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/rust_ruby_example.gemspec
719
729
  - test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs
720
730
  - test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb
@@ -793,6 +803,7 @@ files:
793
803
  - test/rubygems/test_gem_text.rb
794
804
  - test/rubygems/test_gem_uninstaller.rb
795
805
  - test/rubygems/test_gem_unsatisfiable_dependency_error.rb
806
+ - test/rubygems/test_gem_update_suggestion.rb
796
807
  - test/rubygems/test_gem_uri.rb
797
808
  - test/rubygems/test_gem_uri_formatter.rb
798
809
  - test/rubygems/test_gem_util.rb
@@ -804,15 +815,19 @@ files:
804
815
  - test/rubygems/test_remote_fetch_error.rb
805
816
  - test/rubygems/test_require.rb
806
817
  - test/rubygems/test_rubygems.rb
818
+ - test/rubygems/test_webauthn_listener.rb
819
+ - test/rubygems/test_webauthn_listener_response.rb
820
+ - test/rubygems/test_webauthn_poller.rb
807
821
  - test/rubygems/utilities.rb
808
822
  - test/rubygems/wrong_key_cert.pem
809
823
  - test/rubygems/wrong_key_cert_32.pem
810
824
  - test/test_changelog_generator.rb
811
- homepage: https://rubygems.org
825
+ homepage: https://guides.rubygems.org
812
826
  licenses:
813
827
  - Ruby
814
828
  - MIT
815
- metadata: {}
829
+ metadata:
830
+ source_code_uri: https://github.com/rubygems/rubygems
816
831
  post_install_message:
817
832
  rdoc_options:
818
833
  - "--main"
@@ -824,15 +839,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
824
839
  requirements:
825
840
  - - ">="
826
841
  - !ruby/object:Gem::Version
827
- version: 2.3.0
842
+ version: 2.6.0
828
843
  required_rubygems_version: !ruby/object:Gem::Requirement
829
844
  requirements:
830
845
  - - ">="
831
846
  - !ruby/object:Gem::Version
832
847
  version: '0'
833
848
  requirements: []
834
- rubygems_version: 3.3.26
849
+ rubygems_version: 3.4.18
835
850
  signing_key:
836
851
  specification_version: 4
837
- summary: RubyGems is a package management framework for Ruby.
852
+ summary: RubyGems is a package management framework for Ruby. This gem is downloaded
853
+ and installed by `gem update --system`, so that the `gem` CLI can update itself.
838
854
  test_files: []
@@ -1,5 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source "https://rubygems.org"
4
-
5
- # gem "rails"
@@ -1,5 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "mkmf"
4
-
5
- create_makefile(<%= config[:makefile_path].inspect %>)
@@ -1,6 +0,0 @@
1
- ---
2
- language: ruby
3
- cache: bundler
4
- rvm:
5
- - <%= RUBY_VERSION %>
6
- before_install: gem install bundler -v <%= Bundler::VERSION %>
@@ -1,9 +0,0 @@
1
- This project is licensed under the MIT license.
2
-
3
- Copyright (c) 2014 Samuel E. Giddins segiddins@segiddins.me
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6
-
7
- The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8
-
9
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -1,57 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Bundler::Molinillo
4
- # @!visibility private
5
- module Delegates
6
- # Delegates all {Bundler::Molinillo::ResolutionState} methods to a `#state` property.
7
- module ResolutionState
8
- # (see Bundler::Molinillo::ResolutionState#name)
9
- def name
10
- current_state = state || Bundler::Molinillo::ResolutionState.empty
11
- current_state.name
12
- end
13
-
14
- # (see Bundler::Molinillo::ResolutionState#requirements)
15
- def requirements
16
- current_state = state || Bundler::Molinillo::ResolutionState.empty
17
- current_state.requirements
18
- end
19
-
20
- # (see Bundler::Molinillo::ResolutionState#activated)
21
- def activated
22
- current_state = state || Bundler::Molinillo::ResolutionState.empty
23
- current_state.activated
24
- end
25
-
26
- # (see Bundler::Molinillo::ResolutionState#requirement)
27
- def requirement
28
- current_state = state || Bundler::Molinillo::ResolutionState.empty
29
- current_state.requirement
30
- end
31
-
32
- # (see Bundler::Molinillo::ResolutionState#possibilities)
33
- def possibilities
34
- current_state = state || Bundler::Molinillo::ResolutionState.empty
35
- current_state.possibilities
36
- end
37
-
38
- # (see Bundler::Molinillo::ResolutionState#depth)
39
- def depth
40
- current_state = state || Bundler::Molinillo::ResolutionState.empty
41
- current_state.depth
42
- end
43
-
44
- # (see Bundler::Molinillo::ResolutionState#conflicts)
45
- def conflicts
46
- current_state = state || Bundler::Molinillo::ResolutionState.empty
47
- current_state.conflicts
48
- end
49
-
50
- # (see Bundler::Molinillo::ResolutionState#unused_unwind_options)
51
- def unused_unwind_options
52
- current_state = state || Bundler::Molinillo::ResolutionState.empty
53
- current_state.unused_unwind_options
54
- end
55
- end
56
- end
57
- end