rubygems-update 3.4.21 → 3.5.0

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 (564) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +132 -2
  3. data/Manifest.txt +39 -221
  4. data/README.md +1 -3
  5. data/bundler/CHANGELOG.md +74 -0
  6. data/bundler/README.md +1 -2
  7. data/bundler/bundler.gemspec +4 -2
  8. data/bundler/exe/bundle +1 -10
  9. data/bundler/lib/bundler/build_metadata.rb +3 -3
  10. data/bundler/lib/bundler/capistrano.rb +1 -1
  11. data/bundler/lib/bundler/checksum.rb +245 -0
  12. data/bundler/lib/bundler/ci_detector.rb +75 -0
  13. data/bundler/lib/bundler/cli/add.rb +3 -3
  14. data/bundler/lib/bundler/cli/binstubs.rb +4 -4
  15. data/bundler/lib/bundler/cli/cache.rb +1 -1
  16. data/bundler/lib/bundler/cli/check.rb +1 -1
  17. data/bundler/lib/bundler/cli/common.rb +9 -1
  18. data/bundler/lib/bundler/cli/config.rb +8 -7
  19. data/bundler/lib/bundler/cli/console.rb +3 -2
  20. data/bundler/lib/bundler/cli/doctor.rb +2 -2
  21. data/bundler/lib/bundler/cli/exec.rb +1 -1
  22. data/bundler/lib/bundler/cli/gem.rb +31 -23
  23. data/bundler/lib/bundler/cli/info.rb +2 -13
  24. data/bundler/lib/bundler/cli/install.rb +5 -4
  25. data/bundler/lib/bundler/cli/issue.rb +1 -1
  26. data/bundler/lib/bundler/cli/lock.rb +4 -4
  27. data/bundler/lib/bundler/cli/open.rb +1 -1
  28. data/bundler/lib/bundler/cli/outdated.rb +6 -6
  29. data/bundler/lib/bundler/cli/plugin.rb +7 -14
  30. data/bundler/lib/bundler/cli/pristine.rb +38 -30
  31. data/bundler/lib/bundler/cli/show.rb +2 -2
  32. data/bundler/lib/bundler/cli/update.rb +5 -5
  33. data/bundler/lib/bundler/cli.rb +215 -263
  34. data/bundler/lib/bundler/compact_index_client/cache.rb +29 -9
  35. data/bundler/lib/bundler/compact_index_client/cache_file.rb +153 -0
  36. data/bundler/lib/bundler/compact_index_client/gem_parser.rb +7 -3
  37. data/bundler/lib/bundler/compact_index_client/updater.rb +79 -81
  38. data/bundler/lib/bundler/compact_index_client.rb +14 -7
  39. data/bundler/lib/bundler/constants.rb +1 -1
  40. data/bundler/lib/bundler/current_ruby.rb +5 -21
  41. data/bundler/lib/bundler/definition.rb +43 -16
  42. data/bundler/lib/bundler/dependency.rb +16 -12
  43. data/bundler/lib/bundler/digest.rb +2 -2
  44. data/bundler/lib/bundler/dsl.rb +43 -25
  45. data/bundler/lib/bundler/endpoint_specification.rb +6 -2
  46. data/bundler/lib/bundler/env.rb +1 -3
  47. data/bundler/lib/bundler/errors.rb +58 -0
  48. data/bundler/lib/bundler/fetcher/base.rb +3 -1
  49. data/bundler/lib/bundler/fetcher/compact_index.rb +4 -4
  50. data/bundler/lib/bundler/fetcher/downloader.rb +13 -11
  51. data/bundler/lib/bundler/fetcher/gem_remote_fetcher.rb +16 -0
  52. data/bundler/lib/bundler/fetcher/index.rb +1 -1
  53. data/bundler/lib/bundler/fetcher.rb +28 -25
  54. data/bundler/lib/bundler/friendly_errors.rb +5 -5
  55. data/bundler/lib/bundler/gem_helper.rb +1 -1
  56. data/bundler/lib/bundler/gem_helpers.rb +12 -2
  57. data/bundler/lib/bundler/graph.rb +9 -9
  58. data/bundler/lib/bundler/index.rb +1 -2
  59. data/bundler/lib/bundler/injector.rb +1 -1
  60. data/bundler/lib/bundler/inline.rb +3 -3
  61. data/bundler/lib/bundler/installer/gem_installer.rb +10 -10
  62. data/bundler/lib/bundler/installer/parallel_installer.rb +16 -8
  63. data/bundler/lib/bundler/installer/standalone.rb +2 -3
  64. data/bundler/lib/bundler/installer.rb +9 -9
  65. data/bundler/lib/bundler/lazy_specification.rb +28 -17
  66. data/bundler/lib/bundler/lockfile_generator.rb +9 -0
  67. data/bundler/lib/bundler/lockfile_parser.rb +81 -10
  68. data/bundler/lib/bundler/man/bundle-add.1 +3 -26
  69. data/bundler/lib/bundler/man/bundle-binstubs.1 +4 -16
  70. data/bundler/lib/bundler/man/bundle-cache.1 +3 -24
  71. data/bundler/lib/bundler/man/bundle-check.1 +3 -12
  72. data/bundler/lib/bundler/man/bundle-clean.1 +3 -10
  73. data/bundler/lib/bundler/man/bundle-config.1 +20 -211
  74. data/bundler/lib/bundler/man/bundle-config.1.ronn +6 -0
  75. data/bundler/lib/bundler/man/bundle-console.1 +4 -22
  76. data/bundler/lib/bundler/man/bundle-doctor.1 +4 -18
  77. data/bundler/lib/bundler/man/bundle-exec.1 +12 -73
  78. data/bundler/lib/bundler/man/bundle-gem.1 +13 -49
  79. data/bundler/lib/bundler/man/bundle-help.1 +3 -7
  80. data/bundler/lib/bundler/man/bundle-info.1 +3 -9
  81. data/bundler/lib/bundler/man/bundle-init.1 +3 -12
  82. data/bundler/lib/bundler/man/bundle-inject.1 +6 -19
  83. data/bundler/lib/bundler/man/bundle-install.1 +27 -125
  84. data/bundler/lib/bundler/man/bundle-install.1.ronn +1 -0
  85. data/bundler/lib/bundler/man/bundle-list.1 +4 -19
  86. data/bundler/lib/bundler/man/bundle-lock.1 +5 -29
  87. data/bundler/lib/bundler/man/bundle-open.1 +7 -27
  88. data/bundler/lib/bundler/man/bundle-outdated.1 +3 -55
  89. data/bundler/lib/bundler/man/bundle-outdated.1.ronn +1 -0
  90. data/bundler/lib/bundler/man/bundle-platform.1 +5 -27
  91. data/bundler/lib/bundler/man/bundle-plugin.1 +3 -29
  92. data/bundler/lib/bundler/man/bundle-pristine.1 +5 -16
  93. data/bundler/lib/bundler/man/bundle-remove.1 +4 -14
  94. data/bundler/lib/bundler/man/bundle-show.1 +3 -10
  95. data/bundler/lib/bundler/man/bundle-update.1 +18 -137
  96. data/bundler/lib/bundler/man/bundle-version.1 +3 -16
  97. data/bundler/lib/bundler/man/bundle-viz.1 +4 -16
  98. data/bundler/lib/bundler/man/bundle.1 +5 -44
  99. data/bundler/lib/bundler/man/gemfile.5 +24 -301
  100. data/bundler/lib/bundler/man/gemfile.5.ronn +4 -0
  101. data/bundler/lib/bundler/match_metadata.rb +4 -0
  102. data/bundler/lib/bundler/match_platform.rb +1 -1
  103. data/bundler/lib/bundler/plugin/api/source.rb +3 -2
  104. data/bundler/lib/bundler/plugin/index.rb +8 -0
  105. data/bundler/lib/bundler/plugin/installer.rb +1 -1
  106. data/bundler/lib/bundler/plugin.rb +12 -5
  107. data/bundler/lib/bundler/resolver/base.rb +1 -1
  108. data/bundler/lib/bundler/resolver/incompatibility.rb +1 -1
  109. data/bundler/lib/bundler/resolver/spec_group.rb +1 -4
  110. data/bundler/lib/bundler/resolver.rb +16 -16
  111. data/bundler/lib/bundler/ruby_dsl.rb +20 -12
  112. data/bundler/lib/bundler/ruby_version.rb +1 -1
  113. data/bundler/lib/bundler/rubygems_ext.rb +27 -54
  114. data/bundler/lib/bundler/rubygems_gem_installer.rb +23 -58
  115. data/bundler/lib/bundler/rubygems_integration.rb +25 -94
  116. data/bundler/lib/bundler/runtime.rb +2 -2
  117. data/bundler/lib/bundler/self_manager.rb +23 -7
  118. data/bundler/lib/bundler/settings.rb +27 -7
  119. data/bundler/lib/bundler/setup.rb +4 -1
  120. data/bundler/lib/bundler/shared_helpers.rb +35 -13
  121. data/bundler/lib/bundler/source/git/git_proxy.rb +22 -14
  122. data/bundler/lib/bundler/source/git.rb +4 -3
  123. data/bundler/lib/bundler/source/metadata.rb +16 -16
  124. data/bundler/lib/bundler/source/path.rb +7 -6
  125. data/bundler/lib/bundler/source/rubygems.rb +21 -14
  126. data/bundler/lib/bundler/source.rb +2 -0
  127. data/bundler/lib/bundler/spec_set.rb +43 -12
  128. data/bundler/lib/bundler/stub_specification.rb +1 -0
  129. data/bundler/lib/bundler/templates/Executable.bundler +1 -1
  130. data/bundler/lib/bundler/templates/newgem/README.md.tt +3 -3
  131. data/bundler/lib/bundler/templates/newgem/Rakefile.tt +2 -6
  132. data/bundler/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +1 -1
  133. data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +1 -1
  134. data/bundler/lib/bundler/templates/newgem/standard.yml.tt +1 -1
  135. data/bundler/lib/bundler/ui/shell.rb +2 -2
  136. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +1 -1
  137. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +53 -6
  138. data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +8 -20
  139. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +4 -3
  140. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +23 -11
  141. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +1 -1
  142. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +36 -36
  143. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_file.rb +3 -2
  144. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/directory.rb +1 -1
  145. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/empty_directory.rb +1 -1
  146. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +8 -10
  147. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +15 -4
  148. data/bundler/lib/bundler/vendor/thor/lib/thor/actions.rb +15 -15
  149. data/bundler/lib/bundler/vendor/thor/lib/thor/base.rb +140 -14
  150. data/bundler/lib/bundler/vendor/thor/lib/thor/command.rb +13 -4
  151. data/bundler/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +4 -0
  152. data/bundler/lib/bundler/vendor/thor/lib/thor/error.rb +16 -25
  153. data/bundler/lib/bundler/vendor/thor/lib/thor/group.rb +1 -1
  154. data/bundler/lib/bundler/vendor/thor/lib/thor/invocation.rb +1 -1
  155. data/bundler/lib/bundler/vendor/thor/lib/thor/nested_context.rb +2 -2
  156. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/argument.rb +20 -1
  157. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb +33 -17
  158. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/option.rb +27 -8
  159. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/options.rb +44 -6
  160. data/bundler/lib/bundler/vendor/thor/lib/thor/rake_compat.rb +2 -2
  161. data/bundler/lib/bundler/vendor/thor/lib/thor/runner.rb +40 -30
  162. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +26 -150
  163. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/color.rb +4 -46
  164. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/column_printer.rb +29 -0
  165. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/html.rb +3 -45
  166. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/lcs_diff.rb +49 -0
  167. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/table_printer.rb +134 -0
  168. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/terminal.rb +42 -0
  169. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/wrapped_printer.rb +38 -0
  170. data/bundler/lib/bundler/vendor/thor/lib/thor/shell.rb +1 -1
  171. data/bundler/lib/bundler/vendor/thor/lib/thor/util.rb +8 -7
  172. data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
  173. data/bundler/lib/bundler/vendor/thor/lib/thor.rb +155 -8
  174. data/bundler/lib/bundler/vendor/tsort/lib/tsort.rb +3 -0
  175. data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +256 -132
  176. data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +1 -0
  177. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +95 -31
  178. data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
  179. data/bundler/lib/bundler/vendored_net_http.rb +8 -0
  180. data/bundler/lib/bundler/vendored_persistent.rb +0 -4
  181. data/bundler/lib/bundler/vendored_timeout.rb +8 -0
  182. data/bundler/lib/bundler/version.rb +1 -1
  183. data/bundler/lib/bundler/vlad.rb +1 -1
  184. data/bundler/lib/bundler/yaml_serializer.rb +9 -4
  185. data/bundler/lib/bundler.rb +38 -35
  186. data/lib/rubygems/available_set.rb +4 -4
  187. data/lib/rubygems/basic_specification.rb +35 -37
  188. data/lib/rubygems/bundler_version_finder.rb +4 -4
  189. data/lib/rubygems/ci_detector.rb +75 -0
  190. data/lib/rubygems/command.rb +15 -17
  191. data/lib/rubygems/command_manager.rb +5 -4
  192. data/lib/rubygems/commands/build_command.rb +2 -2
  193. data/lib/rubygems/commands/cert_command.rb +2 -3
  194. data/lib/rubygems/commands/check_command.rb +4 -4
  195. data/lib/rubygems/commands/cleanup_command.rb +12 -14
  196. data/lib/rubygems/commands/contents_command.rb +5 -5
  197. data/lib/rubygems/commands/dependency_command.rb +4 -5
  198. data/lib/rubygems/commands/environment_command.rb +3 -5
  199. data/lib/rubygems/commands/exec_command.rb +1 -1
  200. data/lib/rubygems/commands/fetch_command.rb +2 -2
  201. data/lib/rubygems/commands/generate_index_command.rb +39 -74
  202. data/lib/rubygems/commands/help_command.rb +4 -4
  203. data/lib/rubygems/commands/info_command.rb +2 -2
  204. data/lib/rubygems/commands/install_command.rb +8 -16
  205. data/lib/rubygems/commands/list_command.rb +2 -2
  206. data/lib/rubygems/commands/lock_command.rb +1 -1
  207. data/lib/rubygems/commands/open_command.rb +1 -1
  208. data/lib/rubygems/commands/owner_command.rb +1 -1
  209. data/lib/rubygems/commands/pristine_command.rb +13 -15
  210. data/lib/rubygems/commands/push_command.rb +2 -2
  211. data/lib/rubygems/commands/query_command.rb +4 -5
  212. data/lib/rubygems/commands/rdoc_command.rb +2 -2
  213. data/lib/rubygems/commands/search_command.rb +2 -2
  214. data/lib/rubygems/commands/setup_command.rb +33 -36
  215. data/lib/rubygems/commands/sources_command.rb +12 -12
  216. data/lib/rubygems/commands/specification_command.rb +10 -10
  217. data/lib/rubygems/commands/stale_command.rb +1 -1
  218. data/lib/rubygems/commands/uninstall_command.rb +13 -14
  219. data/lib/rubygems/commands/unpack_command.rb +7 -7
  220. data/lib/rubygems/commands/update_command.rb +11 -13
  221. data/lib/rubygems/commands/which_command.rb +1 -1
  222. data/lib/rubygems/commands/yank_command.rb +1 -1
  223. data/lib/rubygems/compatibility.rb +5 -6
  224. data/lib/rubygems/config_file.rb +7 -7
  225. data/lib/rubygems/core_ext/kernel_gem.rb +0 -2
  226. data/lib/rubygems/core_ext/kernel_require.rb +20 -49
  227. data/lib/rubygems/core_ext/kernel_warn.rb +1 -1
  228. data/lib/rubygems/core_ext/tcpsocket_init.rb +1 -1
  229. data/lib/rubygems/defaults.rb +15 -3
  230. data/lib/rubygems/dependency.rb +12 -14
  231. data/lib/rubygems/dependency_installer.rb +30 -31
  232. data/lib/rubygems/dependency_list.rb +1 -1
  233. data/lib/rubygems/deprecate.rb +16 -15
  234. data/lib/rubygems/doctor.rb +6 -6
  235. data/lib/rubygems/errors.rb +2 -6
  236. data/lib/rubygems/exceptions.rb +2 -1
  237. data/lib/rubygems/ext/builder.rb +15 -10
  238. data/lib/rubygems/ext/cargo_builder.rb +5 -5
  239. data/lib/rubygems/ext/ext_conf_builder.rb +2 -4
  240. data/lib/rubygems/ext/rake_builder.rb +1 -1
  241. data/lib/rubygems/gem_runner.rb +4 -4
  242. data/lib/rubygems/gemcutter_utilities/webauthn_listener/response.rb +3 -3
  243. data/lib/rubygems/gemcutter_utilities/webauthn_poller.rb +3 -3
  244. data/lib/rubygems/gemcutter_utilities.rb +18 -19
  245. data/lib/rubygems/install_update_options.rb +18 -19
  246. data/lib/rubygems/installer.rb +66 -45
  247. data/lib/rubygems/installer_uninstaller_utils.rb +0 -2
  248. data/lib/rubygems/local_remote_options.rb +8 -11
  249. data/lib/rubygems/name_tuple.rb +7 -9
  250. data/lib/rubygems/net/http.rb +3 -0
  251. data/lib/rubygems/net-http/LICENSE.txt +22 -0
  252. data/lib/rubygems/net-http/lib/net/http/backward.rb +40 -0
  253. data/lib/rubygems/net-http/lib/net/http/exceptions.rb +34 -0
  254. data/lib/rubygems/net-http/lib/net/http/generic_request.rb +414 -0
  255. data/lib/rubygems/net-http/lib/net/http/header.rb +981 -0
  256. data/lib/rubygems/net-http/lib/net/http/proxy_delta.rb +17 -0
  257. data/lib/rubygems/net-http/lib/net/http/request.rb +88 -0
  258. data/lib/rubygems/net-http/lib/net/http/requests.rb +425 -0
  259. data/lib/rubygems/net-http/lib/net/http/response.rb +738 -0
  260. data/lib/rubygems/net-http/lib/net/http/responses.rb +1174 -0
  261. data/lib/rubygems/net-http/lib/net/http/status.rb +84 -0
  262. data/lib/rubygems/net-http/lib/net/http.rb +2496 -0
  263. data/lib/rubygems/net-http/lib/net/https.rb +23 -0
  264. data/lib/rubygems/net-protocol/LICENSE.txt +22 -0
  265. data/lib/rubygems/net-protocol/lib/net/protocol.rb +544 -0
  266. data/lib/rubygems/optparse/lib/optparse.rb +39 -17
  267. data/lib/rubygems/package/digest_io.rb +1 -1
  268. data/lib/rubygems/package/old.rb +2 -2
  269. data/lib/rubygems/package/tar_header.rb +45 -39
  270. data/lib/rubygems/package/tar_reader/entry.rb +5 -4
  271. data/lib/rubygems/package/tar_reader.rb +14 -5
  272. data/lib/rubygems/package/tar_writer.rb +20 -18
  273. data/lib/rubygems/package.rb +28 -27
  274. data/lib/rubygems/package_task.rb +2 -2
  275. data/lib/rubygems/path_support.rb +10 -11
  276. data/lib/rubygems/platform.rb +65 -48
  277. data/lib/rubygems/query_utils.rb +7 -9
  278. data/lib/rubygems/remote_fetcher.rb +17 -17
  279. data/lib/rubygems/request/connection_pools.rb +3 -3
  280. data/lib/rubygems/request.rb +20 -17
  281. data/lib/rubygems/request_set/gem_dependency_api.rb +120 -123
  282. data/lib/rubygems/request_set/lockfile/parser.rb +9 -9
  283. data/lib/rubygems/request_set/lockfile/tokenizer.rb +20 -12
  284. data/lib/rubygems/request_set/lockfile.rb +6 -11
  285. data/lib/rubygems/request_set.rb +5 -5
  286. data/lib/rubygems/requirement.rb +7 -7
  287. data/lib/rubygems/resolv/LICENSE.txt +22 -0
  288. data/lib/rubygems/resolv/lib/resolv.rb +3387 -0
  289. data/lib/rubygems/resolver/activation_request.rb +1 -3
  290. data/lib/rubygems/resolver/api_set/gem_parser.rb +7 -3
  291. data/lib/rubygems/resolver/best_set.rb +1 -1
  292. data/lib/rubygems/resolver/composed_set.rb +1 -1
  293. data/lib/rubygems/resolver/conflict.rb +4 -12
  294. data/lib/rubygems/resolver/index_set.rb +4 -4
  295. data/lib/rubygems/resolver/index_specification.rb +2 -2
  296. data/lib/rubygems/resolver/installer_set.rb +5 -6
  297. data/lib/rubygems/resolver/lock_set.rb +1 -1
  298. data/lib/rubygems/resolver.rb +6 -13
  299. data/lib/rubygems/s3_uri_signer.rb +6 -6
  300. data/lib/rubygems/safe_marshal/elements.rb +138 -0
  301. data/lib/rubygems/safe_marshal/reader.rb +306 -0
  302. data/lib/rubygems/safe_marshal/visitors/stream_printer.rb +31 -0
  303. data/lib/rubygems/safe_marshal/visitors/to_ruby.rb +385 -0
  304. data/lib/rubygems/safe_marshal/visitors/visitor.rb +74 -0
  305. data/lib/rubygems/safe_marshal.rb +74 -0
  306. data/lib/rubygems/safe_yaml.rb +5 -28
  307. data/lib/rubygems/security/policies.rb +36 -38
  308. data/lib/rubygems/security/policy.rb +7 -11
  309. data/lib/rubygems/security/signer.rb +1 -1
  310. data/lib/rubygems/security/trust_dir.rb +4 -4
  311. data/lib/rubygems/security.rb +8 -22
  312. data/lib/rubygems/source/git.rb +1 -3
  313. data/lib/rubygems/source/installed.rb +0 -2
  314. data/lib/rubygems/source/local.rb +7 -9
  315. data/lib/rubygems/source/lock.rb +1 -3
  316. data/lib/rubygems/source/specific_file.rb +0 -1
  317. data/lib/rubygems/source/vendor.rb +0 -2
  318. data/lib/rubygems/source.rb +12 -12
  319. data/lib/rubygems/source_list.rb +5 -5
  320. data/lib/rubygems/spec_fetcher.rb +31 -31
  321. data/lib/rubygems/specification.rb +145 -150
  322. data/lib/rubygems/specification_policy.rb +61 -31
  323. data/lib/rubygems/stub_specification.rb +4 -5
  324. data/lib/rubygems/text.rb +1 -2
  325. data/lib/rubygems/timeout/LICENSE.txt +22 -0
  326. data/lib/rubygems/timeout/lib/timeout.rb +199 -0
  327. data/lib/rubygems/timeout.rb +3 -0
  328. data/lib/rubygems/tsort/lib/tsort.rb +3 -0
  329. data/lib/rubygems/uninstaller.rb +9 -11
  330. data/lib/rubygems/update_suggestion.rb +5 -18
  331. data/lib/rubygems/uri_formatter.rb +1 -1
  332. data/lib/rubygems/user_interaction.rb +17 -23
  333. data/lib/rubygems/util/licenses.rb +113 -35
  334. data/lib/rubygems/util/list.rb +3 -1
  335. data/lib/rubygems/util.rb +2 -4
  336. data/lib/rubygems/validator.rb +6 -4
  337. data/lib/rubygems/version.rb +35 -29
  338. data/lib/rubygems/version_option.rb +2 -5
  339. data/lib/rubygems/yaml_serializer.rb +9 -4
  340. data/lib/rubygems.rb +42 -42
  341. data/rubygems-update.gemspec +4 -4
  342. data/setup.rb +2 -2
  343. metadata +43 -225
  344. data/lib/rubygems/indexer.rb +0 -428
  345. data/lib/rubygems/mock_gem_ui.rb +0 -86
  346. data/test/rubygems/alternate_cert.pem +0 -19
  347. data/test/rubygems/alternate_cert_32.pem +0 -19
  348. data/test/rubygems/alternate_key.pem +0 -27
  349. data/test/rubygems/bad_rake.rb +0 -3
  350. data/test/rubygems/bundler_test_gem.rb +0 -424
  351. data/test/rubygems/ca_cert.pem +0 -77
  352. data/test/rubygems/child_cert.pem +0 -19
  353. data/test/rubygems/child_cert_32.pem +0 -19
  354. data/test/rubygems/child_key.pem +0 -27
  355. data/test/rubygems/client.pem +0 -107
  356. data/test/rubygems/data/excon-0.7.7.gemspec.rz +0 -0
  357. data/test/rubygems/data/gem-private_key.pem +0 -27
  358. data/test/rubygems/data/gem-public_cert.pem +0 -20
  359. data/test/rubygems/data/null-required-ruby-version.gemspec.rz +0 -0
  360. data/test/rubygems/data/null-required-rubygems-version.gemspec.rz +0 -0
  361. data/test/rubygems/data/pry-0.4.7.gemspec.rz +0 -0
  362. data/test/rubygems/encrypted_private_key.pem +0 -30
  363. data/test/rubygems/expired_cert.pem +0 -19
  364. data/test/rubygems/fake_certlib/openssl.rb +0 -9
  365. data/test/rubygems/foo/discover.rb +0 -1
  366. data/test/rubygems/future_cert.pem +0 -19
  367. data/test/rubygems/future_cert_32.pem +0 -19
  368. data/test/rubygems/good_rake.rb +0 -3
  369. data/test/rubygems/grandchild_cert.pem +0 -19
  370. data/test/rubygems/grandchild_cert_32.pem +0 -19
  371. data/test/rubygems/grandchild_key.pem +0 -27
  372. data/test/rubygems/helper.rb +0 -1649
  373. data/test/rubygems/installer_test_case.rb +0 -248
  374. data/test/rubygems/invalid_client.pem +0 -49
  375. data/test/rubygems/invalid_issuer_cert.pem +0 -20
  376. data/test/rubygems/invalid_issuer_cert_32.pem +0 -20
  377. data/test/rubygems/invalid_key.pem +0 -27
  378. data/test/rubygems/invalid_signer_cert.pem +0 -19
  379. data/test/rubygems/invalid_signer_cert_32.pem +0 -19
  380. data/test/rubygems/invalidchild_cert.pem +0 -19
  381. data/test/rubygems/invalidchild_cert_32.pem +0 -19
  382. data/test/rubygems/invalidchild_key.pem +0 -27
  383. data/test/rubygems/multifactor_auth_utilities.rb +0 -111
  384. data/test/rubygems/package/tar_test_case.rb +0 -175
  385. data/test/rubygems/packages/Bluebie-legs-0.6.2.gem +0 -0
  386. data/test/rubygems/packages/ascii_binder-0.1.10.1.gem +0 -0
  387. data/test/rubygems/packages/ill-formatted-platform-1.0.0.10.gem +0 -0
  388. data/test/rubygems/plugin/exception/rubygems_plugin.rb +0 -4
  389. data/test/rubygems/plugin/load/rubygems_plugin.rb +0 -5
  390. data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +0 -4
  391. data/test/rubygems/private3072_key.pem +0 -40
  392. data/test/rubygems/private_ec_key.pem +0 -9
  393. data/test/rubygems/private_key.pem +0 -27
  394. data/test/rubygems/public3072_cert.pem +0 -25
  395. data/test/rubygems/public_cert.pem +0 -20
  396. data/test/rubygems/public_cert_32.pem +0 -19
  397. data/test/rubygems/public_key.pem +0 -9
  398. data/test/rubygems/rubygems/commands/crash_command.rb +0 -5
  399. data/test/rubygems/rubygems_plugin.rb +0 -24
  400. data/test/rubygems/sff/discover.rb +0 -1
  401. data/test/rubygems/simple_gem.rb +0 -68
  402. data/test/rubygems/specifications/bar-0.0.2.gemspec +0 -9
  403. data/test/rubygems/specifications/foo-0.0.1-x86-mswin32.gemspec +0 -0
  404. data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +0 -14
  405. data/test/rubygems/ssl_cert.pem +0 -80
  406. data/test/rubygems/ssl_key.pem +0 -27
  407. data/test/rubygems/test_bundled_ca.rb +0 -61
  408. data/test/rubygems/test_config.rb +0 -28
  409. data/test/rubygems/test_deprecate.rb +0 -158
  410. data/test/rubygems/test_exit.rb +0 -17
  411. data/test/rubygems/test_gem.rb +0 -1799
  412. data/test/rubygems/test_gem_available_set.rb +0 -130
  413. data/test/rubygems/test_gem_bundler_version_finder.rb +0 -127
  414. data/test/rubygems/test_gem_command.rb +0 -403
  415. data/test/rubygems/test_gem_command_manager.rb +0 -400
  416. data/test/rubygems/test_gem_commands_build_command.rb +0 -739
  417. data/test/rubygems/test_gem_commands_cert_command.rb +0 -866
  418. data/test/rubygems/test_gem_commands_check_command.rb +0 -68
  419. data/test/rubygems/test_gem_commands_cleanup_command.rb +0 -292
  420. data/test/rubygems/test_gem_commands_contents_command.rb +0 -271
  421. data/test/rubygems/test_gem_commands_dependency_command.rb +0 -228
  422. data/test/rubygems/test_gem_commands_environment_command.rb +0 -169
  423. data/test/rubygems/test_gem_commands_exec_command.rb +0 -857
  424. data/test/rubygems/test_gem_commands_fetch_command.rb +0 -258
  425. data/test/rubygems/test_gem_commands_generate_index_command.rb +0 -81
  426. data/test/rubygems/test_gem_commands_help_command.rb +0 -94
  427. data/test/rubygems/test_gem_commands_info_command.rb +0 -70
  428. data/test/rubygems/test_gem_commands_install_command.rb +0 -1573
  429. data/test/rubygems/test_gem_commands_list_command.rb +0 -33
  430. data/test/rubygems/test_gem_commands_lock_command.rb +0 -67
  431. data/test/rubygems/test_gem_commands_mirror.rb +0 -20
  432. data/test/rubygems/test_gem_commands_open_command.rb +0 -101
  433. data/test/rubygems/test_gem_commands_outdated_command.rb +0 -50
  434. data/test/rubygems/test_gem_commands_owner_command.rb +0 -503
  435. data/test/rubygems/test_gem_commands_pristine_command.rb +0 -708
  436. data/test/rubygems/test_gem_commands_push_command.rb +0 -603
  437. data/test/rubygems/test_gem_commands_query_command.rb +0 -858
  438. data/test/rubygems/test_gem_commands_search_command.rb +0 -16
  439. data/test/rubygems/test_gem_commands_server_command.rb +0 -20
  440. data/test/rubygems/test_gem_commands_setup_command.rb +0 -474
  441. data/test/rubygems/test_gem_commands_signin_command.rb +0 -259
  442. data/test/rubygems/test_gem_commands_signout_command.rb +0 -30
  443. data/test/rubygems/test_gem_commands_sources_command.rb +0 -534
  444. data/test/rubygems/test_gem_commands_specification_command.rb +0 -277
  445. data/test/rubygems/test_gem_commands_stale_command.rb +0 -43
  446. data/test/rubygems/test_gem_commands_uninstall_command.rb +0 -522
  447. data/test/rubygems/test_gem_commands_unpack_command.rb +0 -224
  448. data/test/rubygems/test_gem_commands_update_command.rb +0 -836
  449. data/test/rubygems/test_gem_commands_which_command.rb +0 -85
  450. data/test/rubygems/test_gem_commands_yank_command.rb +0 -299
  451. data/test/rubygems/test_gem_config_file.rb +0 -551
  452. data/test/rubygems/test_gem_dependency.rb +0 -398
  453. data/test/rubygems/test_gem_dependency_installer.rb +0 -1190
  454. data/test/rubygems/test_gem_dependency_list.rb +0 -265
  455. data/test/rubygems/test_gem_dependency_resolution_error.rb +0 -27
  456. data/test/rubygems/test_gem_doctor.rb +0 -195
  457. data/test/rubygems/test_gem_ext_builder.rb +0 -337
  458. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/.gitignore +0 -1
  459. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +0 -10
  460. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.lock +0 -249
  461. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.toml +0 -10
  462. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/src/lib.rs +0 -27
  463. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/lib/custom_name.rb +0 -3
  464. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/.gitignore +0 -1
  465. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +0 -249
  466. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +0 -10
  467. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/rust_ruby_example.gemspec +0 -10
  468. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs +0 -51
  469. data/test/rubygems/test_gem_ext_cargo_builder.rb +0 -167
  470. data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +0 -34
  471. data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +0 -60
  472. data/test/rubygems/test_gem_ext_cmake_builder.rb +0 -84
  473. data/test/rubygems/test_gem_ext_configure_builder.rb +0 -80
  474. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +0 -229
  475. data/test/rubygems/test_gem_ext_rake_builder.rb +0 -113
  476. data/test/rubygems/test_gem_gem_runner.rb +0 -119
  477. data/test/rubygems/test_gem_gemcutter_utilities.rb +0 -361
  478. data/test/rubygems/test_gem_impossible_dependencies_error.rb +0 -60
  479. data/test/rubygems/test_gem_indexer.rb +0 -381
  480. data/test/rubygems/test_gem_install_update_options.rb +0 -208
  481. data/test/rubygems/test_gem_installer.rb +0 -2512
  482. data/test/rubygems/test_gem_local_remote_options.rb +0 -133
  483. data/test/rubygems/test_gem_name_tuple.rb +0 -43
  484. data/test/rubygems/test_gem_package.rb +0 -1306
  485. data/test/rubygems/test_gem_package_old.rb +0 -91
  486. data/test/rubygems/test_gem_package_tar_header.rb +0 -226
  487. data/test/rubygems/test_gem_package_tar_reader.rb +0 -135
  488. data/test/rubygems/test_gem_package_tar_reader_entry.rb +0 -350
  489. data/test/rubygems/test_gem_package_tar_writer.rb +0 -331
  490. data/test/rubygems/test_gem_package_task.rb +0 -118
  491. data/test/rubygems/test_gem_path_support.rb +0 -139
  492. data/test/rubygems/test_gem_platform.rb +0 -497
  493. data/test/rubygems/test_gem_rdoc.rb +0 -137
  494. data/test/rubygems/test_gem_remote_fetcher.rb +0 -1227
  495. data/test/rubygems/test_gem_request.rb +0 -547
  496. data/test/rubygems/test_gem_request_connection_pools.rb +0 -152
  497. data/test/rubygems/test_gem_request_set.rb +0 -672
  498. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +0 -853
  499. data/test/rubygems/test_gem_request_set_lockfile.rb +0 -469
  500. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +0 -544
  501. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +0 -307
  502. data/test/rubygems/test_gem_requirement.rb +0 -505
  503. data/test/rubygems/test_gem_resolver.rb +0 -859
  504. data/test/rubygems/test_gem_resolver_activation_request.rb +0 -43
  505. data/test/rubygems/test_gem_resolver_api_set.rb +0 -210
  506. data/test/rubygems/test_gem_resolver_api_specification.rb +0 -167
  507. data/test/rubygems/test_gem_resolver_best_set.rb +0 -159
  508. data/test/rubygems/test_gem_resolver_composed_set.rb +0 -44
  509. data/test/rubygems/test_gem_resolver_conflict.rb +0 -82
  510. data/test/rubygems/test_gem_resolver_dependency_request.rb +0 -83
  511. data/test/rubygems/test_gem_resolver_git_set.rb +0 -188
  512. data/test/rubygems/test_gem_resolver_git_specification.rb +0 -114
  513. data/test/rubygems/test_gem_resolver_index_set.rb +0 -88
  514. data/test/rubygems/test_gem_resolver_index_specification.rb +0 -93
  515. data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -47
  516. data/test/rubygems/test_gem_resolver_installer_set.rb +0 -320
  517. data/test/rubygems/test_gem_resolver_local_specification.rb +0 -44
  518. data/test/rubygems/test_gem_resolver_lock_set.rb +0 -62
  519. data/test/rubygems/test_gem_resolver_lock_specification.rb +0 -98
  520. data/test/rubygems/test_gem_resolver_requirement_list.rb +0 -19
  521. data/test/rubygems/test_gem_resolver_specification.rb +0 -63
  522. data/test/rubygems/test_gem_resolver_vendor_set.rb +0 -82
  523. data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -82
  524. data/test/rubygems/test_gem_security.rb +0 -341
  525. data/test/rubygems/test_gem_security_policy.rb +0 -535
  526. data/test/rubygems/test_gem_security_signer.rb +0 -218
  527. data/test/rubygems/test_gem_security_trust_dir.rb +0 -99
  528. data/test/rubygems/test_gem_silent_ui.rb +0 -123
  529. data/test/rubygems/test_gem_source.rb +0 -254
  530. data/test/rubygems/test_gem_source_fetch_problem.rb +0 -37
  531. data/test/rubygems/test_gem_source_git.rb +0 -310
  532. data/test/rubygems/test_gem_source_installed.rb +0 -35
  533. data/test/rubygems/test_gem_source_list.rb +0 -119
  534. data/test/rubygems/test_gem_source_local.rb +0 -107
  535. data/test/rubygems/test_gem_source_lock.rb +0 -113
  536. data/test/rubygems/test_gem_source_specific_file.rb +0 -76
  537. data/test/rubygems/test_gem_source_subpath_problem.rb +0 -50
  538. data/test/rubygems/test_gem_source_vendor.rb +0 -30
  539. data/test/rubygems/test_gem_spec_fetcher.rb +0 -338
  540. data/test/rubygems/test_gem_specification.rb +0 -3856
  541. data/test/rubygems/test_gem_stream_ui.rb +0 -255
  542. data/test/rubygems/test_gem_stub_specification.rb +0 -278
  543. data/test/rubygems/test_gem_text.rb +0 -103
  544. data/test/rubygems/test_gem_uninstaller.rb +0 -675
  545. data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +0 -31
  546. data/test/rubygems/test_gem_update_suggestion.rb +0 -209
  547. data/test/rubygems/test_gem_uri.rb +0 -41
  548. data/test/rubygems/test_gem_uri_formatter.rb +0 -27
  549. data/test/rubygems/test_gem_util.rb +0 -91
  550. data/test/rubygems/test_gem_validator.rb +0 -42
  551. data/test/rubygems/test_gem_version.rb +0 -305
  552. data/test/rubygems/test_gem_version_option.rb +0 -165
  553. data/test/rubygems/test_kernel.rb +0 -124
  554. data/test/rubygems/test_project_sanity.rb +0 -49
  555. data/test/rubygems/test_remote_fetch_error.rb +0 -20
  556. data/test/rubygems/test_require.rb +0 -732
  557. data/test/rubygems/test_rubygems.rb +0 -76
  558. data/test/rubygems/test_webauthn_listener.rb +0 -143
  559. data/test/rubygems/test_webauthn_listener_response.rb +0 -93
  560. data/test/rubygems/test_webauthn_poller.rb +0 -124
  561. data/test/rubygems/utilities.rb +0 -436
  562. data/test/rubygems/wrong_key_cert.pem +0 -19
  563. data/test/rubygems/wrong_key_cert_32.pem +0 -19
  564. data/test/test_changelog_generator.rb +0 -17
@@ -33,22 +33,22 @@
33
33
 
34
34
  class Gem::RequestSet::GemDependencyAPI
35
35
  ENGINE_MAP = { # :nodoc:
36
- :jruby => %w[jruby],
37
- :jruby_18 => %w[jruby],
38
- :jruby_19 => %w[jruby],
39
- :maglev => %w[maglev],
40
- :mri => %w[ruby],
41
- :mri_18 => %w[ruby],
42
- :mri_19 => %w[ruby],
43
- :mri_20 => %w[ruby],
44
- :mri_21 => %w[ruby],
45
- :rbx => %w[rbx],
46
- :truffleruby => %w[truffleruby],
47
- :ruby => %w[ruby rbx maglev truffleruby],
48
- :ruby_18 => %w[ruby rbx maglev truffleruby],
49
- :ruby_19 => %w[ruby rbx maglev truffleruby],
50
- :ruby_20 => %w[ruby rbx maglev truffleruby],
51
- :ruby_21 => %w[ruby rbx maglev truffleruby],
36
+ jruby: %w[jruby],
37
+ jruby_18: %w[jruby],
38
+ jruby_19: %w[jruby],
39
+ maglev: %w[maglev],
40
+ mri: %w[ruby],
41
+ mri_18: %w[ruby],
42
+ mri_19: %w[ruby],
43
+ mri_20: %w[ruby],
44
+ mri_21: %w[ruby],
45
+ rbx: %w[rbx],
46
+ truffleruby: %w[truffleruby],
47
+ ruby: %w[ruby rbx maglev truffleruby],
48
+ ruby_18: %w[ruby rbx maglev truffleruby],
49
+ ruby_19: %w[ruby rbx maglev truffleruby],
50
+ ruby_20: %w[ruby rbx maglev truffleruby],
51
+ ruby_21: %w[ruby rbx maglev truffleruby],
52
52
  }.freeze
53
53
 
54
54
  mswin = Gem::Platform.new "x86-mswin32"
@@ -57,39 +57,39 @@ class Gem::RequestSet::GemDependencyAPI
57
57
  x64_mingw = Gem::Platform.new "x64-mingw32"
58
58
 
59
59
  PLATFORM_MAP = { # :nodoc:
60
- :jruby => Gem::Platform::RUBY,
61
- :jruby_18 => Gem::Platform::RUBY,
62
- :jruby_19 => Gem::Platform::RUBY,
63
- :maglev => Gem::Platform::RUBY,
64
- :mingw => x86_mingw,
65
- :mingw_18 => x86_mingw,
66
- :mingw_19 => x86_mingw,
67
- :mingw_20 => x86_mingw,
68
- :mingw_21 => x86_mingw,
69
- :mri => Gem::Platform::RUBY,
70
- :mri_18 => Gem::Platform::RUBY,
71
- :mri_19 => Gem::Platform::RUBY,
72
- :mri_20 => Gem::Platform::RUBY,
73
- :mri_21 => Gem::Platform::RUBY,
74
- :mswin => mswin,
75
- :mswin_18 => mswin,
76
- :mswin_19 => mswin,
77
- :mswin_20 => mswin,
78
- :mswin_21 => mswin,
79
- :mswin64 => mswin64,
80
- :mswin64_19 => mswin64,
81
- :mswin64_20 => mswin64,
82
- :mswin64_21 => mswin64,
83
- :rbx => Gem::Platform::RUBY,
84
- :ruby => Gem::Platform::RUBY,
85
- :ruby_18 => Gem::Platform::RUBY,
86
- :ruby_19 => Gem::Platform::RUBY,
87
- :ruby_20 => Gem::Platform::RUBY,
88
- :ruby_21 => Gem::Platform::RUBY,
89
- :truffleruby => Gem::Platform::RUBY,
90
- :x64_mingw => x64_mingw,
91
- :x64_mingw_20 => x64_mingw,
92
- :x64_mingw_21 => x64_mingw,
60
+ jruby: Gem::Platform::RUBY,
61
+ jruby_18: Gem::Platform::RUBY,
62
+ jruby_19: Gem::Platform::RUBY,
63
+ maglev: Gem::Platform::RUBY,
64
+ mingw: x86_mingw,
65
+ mingw_18: x86_mingw,
66
+ mingw_19: x86_mingw,
67
+ mingw_20: x86_mingw,
68
+ mingw_21: x86_mingw,
69
+ mri: Gem::Platform::RUBY,
70
+ mri_18: Gem::Platform::RUBY,
71
+ mri_19: Gem::Platform::RUBY,
72
+ mri_20: Gem::Platform::RUBY,
73
+ mri_21: Gem::Platform::RUBY,
74
+ mswin: mswin,
75
+ mswin_18: mswin,
76
+ mswin_19: mswin,
77
+ mswin_20: mswin,
78
+ mswin_21: mswin,
79
+ mswin64: mswin64,
80
+ mswin64_19: mswin64,
81
+ mswin64_20: mswin64,
82
+ mswin64_21: mswin64,
83
+ rbx: Gem::Platform::RUBY,
84
+ ruby: Gem::Platform::RUBY,
85
+ ruby_18: Gem::Platform::RUBY,
86
+ ruby_19: Gem::Platform::RUBY,
87
+ ruby_20: Gem::Platform::RUBY,
88
+ ruby_21: Gem::Platform::RUBY,
89
+ truffleruby: Gem::Platform::RUBY,
90
+ x64_mingw: x64_mingw,
91
+ x64_mingw_20: x64_mingw,
92
+ x64_mingw_21: x64_mingw,
93
93
  }.freeze
94
94
 
95
95
  gt_eq_0 = Gem::Requirement.new ">= 0"
@@ -99,70 +99,70 @@ class Gem::RequestSet::GemDependencyAPI
99
99
  tilde_gt_2_1_0 = Gem::Requirement.new "~> 2.1.0"
100
100
 
101
101
  VERSION_MAP = { # :nodoc:
102
- :jruby => gt_eq_0,
103
- :jruby_18 => tilde_gt_1_8_0,
104
- :jruby_19 => tilde_gt_1_9_0,
105
- :maglev => gt_eq_0,
106
- :mingw => gt_eq_0,
107
- :mingw_18 => tilde_gt_1_8_0,
108
- :mingw_19 => tilde_gt_1_9_0,
109
- :mingw_20 => tilde_gt_2_0_0,
110
- :mingw_21 => tilde_gt_2_1_0,
111
- :mri => gt_eq_0,
112
- :mri_18 => tilde_gt_1_8_0,
113
- :mri_19 => tilde_gt_1_9_0,
114
- :mri_20 => tilde_gt_2_0_0,
115
- :mri_21 => tilde_gt_2_1_0,
116
- :mswin => gt_eq_0,
117
- :mswin_18 => tilde_gt_1_8_0,
118
- :mswin_19 => tilde_gt_1_9_0,
119
- :mswin_20 => tilde_gt_2_0_0,
120
- :mswin_21 => tilde_gt_2_1_0,
121
- :mswin64 => gt_eq_0,
122
- :mswin64_19 => tilde_gt_1_9_0,
123
- :mswin64_20 => tilde_gt_2_0_0,
124
- :mswin64_21 => tilde_gt_2_1_0,
125
- :rbx => gt_eq_0,
126
- :ruby => gt_eq_0,
127
- :ruby_18 => tilde_gt_1_8_0,
128
- :ruby_19 => tilde_gt_1_9_0,
129
- :ruby_20 => tilde_gt_2_0_0,
130
- :ruby_21 => tilde_gt_2_1_0,
131
- :truffleruby => gt_eq_0,
132
- :x64_mingw => gt_eq_0,
133
- :x64_mingw_20 => tilde_gt_2_0_0,
134
- :x64_mingw_21 => tilde_gt_2_1_0,
102
+ jruby: gt_eq_0,
103
+ jruby_18: tilde_gt_1_8_0,
104
+ jruby_19: tilde_gt_1_9_0,
105
+ maglev: gt_eq_0,
106
+ mingw: gt_eq_0,
107
+ mingw_18: tilde_gt_1_8_0,
108
+ mingw_19: tilde_gt_1_9_0,
109
+ mingw_20: tilde_gt_2_0_0,
110
+ mingw_21: tilde_gt_2_1_0,
111
+ mri: gt_eq_0,
112
+ mri_18: tilde_gt_1_8_0,
113
+ mri_19: tilde_gt_1_9_0,
114
+ mri_20: tilde_gt_2_0_0,
115
+ mri_21: tilde_gt_2_1_0,
116
+ mswin: gt_eq_0,
117
+ mswin_18: tilde_gt_1_8_0,
118
+ mswin_19: tilde_gt_1_9_0,
119
+ mswin_20: tilde_gt_2_0_0,
120
+ mswin_21: tilde_gt_2_1_0,
121
+ mswin64: gt_eq_0,
122
+ mswin64_19: tilde_gt_1_9_0,
123
+ mswin64_20: tilde_gt_2_0_0,
124
+ mswin64_21: tilde_gt_2_1_0,
125
+ rbx: gt_eq_0,
126
+ ruby: gt_eq_0,
127
+ ruby_18: tilde_gt_1_8_0,
128
+ ruby_19: tilde_gt_1_9_0,
129
+ ruby_20: tilde_gt_2_0_0,
130
+ ruby_21: tilde_gt_2_1_0,
131
+ truffleruby: gt_eq_0,
132
+ x64_mingw: gt_eq_0,
133
+ x64_mingw_20: tilde_gt_2_0_0,
134
+ x64_mingw_21: tilde_gt_2_1_0,
135
135
  }.freeze
136
136
 
137
137
  WINDOWS = { # :nodoc:
138
- :mingw => :only,
139
- :mingw_18 => :only,
140
- :mingw_19 => :only,
141
- :mingw_20 => :only,
142
- :mingw_21 => :only,
143
- :mri => :never,
144
- :mri_18 => :never,
145
- :mri_19 => :never,
146
- :mri_20 => :never,
147
- :mri_21 => :never,
148
- :mswin => :only,
149
- :mswin_18 => :only,
150
- :mswin_19 => :only,
151
- :mswin_20 => :only,
152
- :mswin_21 => :only,
153
- :mswin64 => :only,
154
- :mswin64_19 => :only,
155
- :mswin64_20 => :only,
156
- :mswin64_21 => :only,
157
- :rbx => :never,
158
- :ruby => :never,
159
- :ruby_18 => :never,
160
- :ruby_19 => :never,
161
- :ruby_20 => :never,
162
- :ruby_21 => :never,
163
- :x64_mingw => :only,
164
- :x64_mingw_20 => :only,
165
- :x64_mingw_21 => :only,
138
+ mingw: :only,
139
+ mingw_18: :only,
140
+ mingw_19: :only,
141
+ mingw_20: :only,
142
+ mingw_21: :only,
143
+ mri: :never,
144
+ mri_18: :never,
145
+ mri_19: :never,
146
+ mri_20: :never,
147
+ mri_21: :never,
148
+ mswin: :only,
149
+ mswin_18: :only,
150
+ mswin_19: :only,
151
+ mswin_20: :only,
152
+ mswin_21: :only,
153
+ mswin64: :only,
154
+ mswin64_19: :only,
155
+ mswin64_20: :only,
156
+ mswin64_21: :only,
157
+ rbx: :never,
158
+ ruby: :never,
159
+ ruby_18: :never,
160
+ ruby_19: :never,
161
+ ruby_20: :never,
162
+ ruby_21: :never,
163
+ x64_mingw: :only,
164
+ x64_mingw_20: :only,
165
+ x64_mingw_21: :only,
166
166
  }.freeze
167
167
 
168
168
  ##
@@ -262,7 +262,7 @@ class Gem::RequestSet::GemDependencyAPI
262
262
  raise ArgumentError, "no gemspecs found at #{Dir.pwd}"
263
263
  else
264
264
  raise ArgumentError,
265
- "found multiple gemspecs at #{Dir.pwd}, " +
265
+ "found multiple gemspecs at #{Dir.pwd}, " \
266
266
  "use the name: option to specify the one you want"
267
267
  end
268
268
  end
@@ -280,7 +280,7 @@ class Gem::RequestSet::GemDependencyAPI
280
280
  # Loads the gem dependency file and returns self.
281
281
 
282
282
  def load
283
- instance_eval File.read(@path).tap(&Gem::UNTAINT), @path, 1
283
+ instance_eval File.read(@path), @path, 1
284
284
 
285
285
  self
286
286
  end
@@ -533,8 +533,8 @@ Gem dependencies file #{@path} includes git reference for both ref/branch and ta
533
533
  # platform matches the current platform.
534
534
 
535
535
  def gem_platforms(name, options) # :nodoc:
536
- platform_names = Array(options.delete :platform)
537
- platform_names.concat Array(options.delete :platforms)
536
+ platform_names = Array(options.delete(:platform))
537
+ platform_names.concat Array(options.delete(:platforms))
538
538
  platform_names.concat @current_platforms if @current_platforms
539
539
 
540
540
  return true if platform_names.empty?
@@ -593,7 +593,6 @@ Gem dependencies file #{@path} includes git reference for both ref/branch and ta
593
593
  @current_repository = repository
594
594
 
595
595
  yield
596
-
597
596
  ensure
598
597
  @current_repository = nil
599
598
  end
@@ -685,7 +684,6 @@ Gem dependencies file #{@path} includes git reference for both ref/branch and ta
685
684
  @current_groups = groups
686
685
 
687
686
  yield
688
-
689
687
  ensure
690
688
  @current_groups = nil
691
689
  end
@@ -760,7 +758,6 @@ Gem dependencies file #{@path} includes git reference for both ref/branch and ta
760
758
  @current_platforms = platforms
761
759
 
762
760
  yield
763
-
764
761
  ensure
765
762
  @current_platforms = nil
766
763
  end
@@ -771,7 +768,7 @@ Gem dependencies file #{@path} includes git reference for both ref/branch and ta
771
768
  # Block form for restricting gems to a particular set of platforms. See
772
769
  # #platform.
773
770
 
774
- alias :platforms :platform
771
+ alias_method :platforms, :platform
775
772
 
776
773
  ##
777
774
  # :category: Gem Dependencies DSL
@@ -793,15 +790,15 @@ Gem dependencies file #{@path} includes git reference for both ref/branch and ta
793
790
 
794
791
  return true if @installing
795
792
 
796
- unless RUBY_VERSION == version
797
- message = "Your Ruby version is #{RUBY_VERSION}, " +
793
+ unless version == RUBY_VERSION
794
+ message = "Your Ruby version is #{RUBY_VERSION}, " \
798
795
  "but your #{gem_deps_file} requires #{version}"
799
796
 
800
797
  raise Gem::RubyVersionMismatch, message
801
798
  end
802
799
 
803
800
  if engine && engine != Gem.ruby_engine
804
- message = "Your Ruby engine is #{Gem.ruby_engine}, " +
801
+ message = "Your Ruby engine is #{Gem.ruby_engine}, " \
805
802
  "but your #{gem_deps_file} requires #{engine}"
806
803
 
807
804
  raise Gem::RubyVersionMismatch, message
@@ -810,14 +807,14 @@ Gem dependencies file #{@path} includes git reference for both ref/branch and ta
810
807
  if engine_version
811
808
  if engine_version != RUBY_ENGINE_VERSION
812
809
  message =
813
- "Your Ruby engine version is #{Gem.ruby_engine} #{RUBY_ENGINE_VERSION}, " +
810
+ "Your Ruby engine version is #{Gem.ruby_engine} #{RUBY_ENGINE_VERSION}, " \
814
811
  "but your #{gem_deps_file} requires #{engine} #{engine_version}"
815
812
 
816
813
  raise Gem::RubyVersionMismatch, message
817
814
  end
818
815
  end
819
816
 
820
- return true
817
+ true
821
818
  end
822
819
 
823
820
  ##
@@ -48,7 +48,7 @@ class Gem::RequestSet::Lockfile::Parser
48
48
  if expected_types && !Array(expected_types).include?(token.type)
49
49
  unget token
50
50
 
51
- message = "unexpected token [#{token.type.inspect}, #{token.value.inspect}], " +
51
+ message = "unexpected token [#{token.type.inspect}, #{token.value.inspect}], " \
52
52
  "expected #{expected_types.inspect}"
53
53
 
54
54
  raise Gem::RequestSet::Lockfile::ParseError.new message, token.column, token.line, @filename
@@ -57,8 +57,8 @@ class Gem::RequestSet::Lockfile::Parser
57
57
  if expected_value && expected_value != token.value
58
58
  unget token
59
59
 
60
- message = "unexpected token [#{token.type.inspect}, #{token.value.inspect}], " +
61
- "expected [#{expected_types.inspect}, " +
60
+ message = "unexpected token [#{token.type.inspect}, #{token.value.inspect}], " \
61
+ "expected [#{expected_types.inspect}, " \
62
62
  "#{expected_value.inspect}]"
63
63
 
64
64
  raise Gem::RequestSet::Lockfile::ParseError.new message, token.column, token.line, @filename
@@ -68,7 +68,7 @@ class Gem::RequestSet::Lockfile::Parser
68
68
  end
69
69
 
70
70
  def parse_DEPENDENCIES # :nodoc:
71
- while !@tokens.empty? && :text == peek.type do
71
+ while !@tokens.empty? && peek.type == :text do
72
72
  token = get :text
73
73
 
74
74
  requirements = []
@@ -111,7 +111,7 @@ class Gem::RequestSet::Lockfile::Parser
111
111
  def parse_GEM # :nodoc:
112
112
  sources = []
113
113
 
114
- while [:entry, "remote"] == peek.first(2) do
114
+ while peek.first(2) == [:entry, "remote"] do
115
115
  get :entry, "remote"
116
116
  data = get(:text).value
117
117
  skip :newline
@@ -128,7 +128,7 @@ class Gem::RequestSet::Lockfile::Parser
128
128
  set = Gem::Resolver::LockSet.new sources
129
129
  last_specs = nil
130
130
 
131
- while !@tokens.empty? && :text == peek.type do
131
+ while !@tokens.empty? && peek.type == :text do
132
132
  token = get :text
133
133
  name = token.value
134
134
  column = token.column
@@ -200,7 +200,7 @@ class Gem::RequestSet::Lockfile::Parser
200
200
 
201
201
  last_spec = nil
202
202
 
203
- while !@tokens.empty? && :text == peek.type do
203
+ while !@tokens.empty? && peek.type == :text do
204
204
  token = get :text
205
205
  name = token.value
206
206
  column = token.column
@@ -247,7 +247,7 @@ class Gem::RequestSet::Lockfile::Parser
247
247
  set = Gem::Resolver::VendorSet.new
248
248
  last_spec = nil
249
249
 
250
- while !@tokens.empty? && :text == peek.first do
250
+ while !@tokens.empty? && peek.first == :text do
251
251
  token = get :text
252
252
  name = token.value
253
253
  column = token.column
@@ -282,7 +282,7 @@ class Gem::RequestSet::Lockfile::Parser
282
282
  end
283
283
 
284
284
  def parse_PLATFORMS # :nodoc:
285
- while !@tokens.empty? && :text == peek.first do
285
+ while !@tokens.empty? && peek.first == :text do
286
286
  name = get(:text).value
287
287
 
288
288
  @platforms << name
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- #) frozen_string_literal: true
3
+ # ) frozen_string_literal: true
4
4
  require_relative "parser"
5
5
 
6
6
  class Gem::RequestSet::Lockfile::Tokenizer
@@ -50,7 +50,7 @@ class Gem::RequestSet::Lockfile::Tokenizer
50
50
  def next_token
51
51
  @tokens.shift
52
52
  end
53
- alias :shift :next_token
53
+ alias_method :shift, :next_token
54
54
 
55
55
  def peek
56
56
  @tokens.first || EOF
@@ -75,13 +75,14 @@ class Gem::RequestSet::Lockfile::Tokenizer
75
75
  end
76
76
 
77
77
  @tokens <<
78
- case
79
- when s.scan(/\r?\n/) then
78
+ if s.scan(/\r?\n/)
79
+
80
80
  token = Token.new(:newline, nil, *token_pos(pos))
81
81
  @line_pos = s.pos
82
82
  @line += 1
83
83
  token
84
- when s.scan(/[A-Z]+/) then
84
+ elsif s.scan(/[A-Z]+/)
85
+
85
86
  if leading_whitespace
86
87
  text = s.matched
87
88
  text += s.scan(/[^\s)]*/).to_s # in case of no match
@@ -89,20 +90,27 @@ class Gem::RequestSet::Lockfile::Tokenizer
89
90
  else
90
91
  Token.new(:section, s.matched, *token_pos(pos))
91
92
  end
92
- when s.scan(/([a-z]+):\s/) then
93
+ elsif s.scan(/([a-z]+):\s/)
94
+
93
95
  s.pos -= 1 # rewind for possible newline
94
96
  Token.new(:entry, s[1], *token_pos(pos))
95
- when s.scan(/\(/) then
97
+ elsif s.scan(/\(/)
98
+
96
99
  Token.new(:l_paren, nil, *token_pos(pos))
97
- when s.scan(/\)/) then
100
+ elsif s.scan(/\)/)
101
+
98
102
  Token.new(:r_paren, nil, *token_pos(pos))
99
- when s.scan(/<=|>=|=|~>|<|>|!=/) then
103
+ elsif s.scan(/<=|>=|=|~>|<|>|!=/)
104
+
100
105
  Token.new(:requirement, s.matched, *token_pos(pos))
101
- when s.scan(/,/) then
106
+ elsif s.scan(/,/)
107
+
102
108
  Token.new(:comma, nil, *token_pos(pos))
103
- when s.scan(/!/) then
109
+ elsif s.scan(/!/)
110
+
104
111
  Token.new(:bang, nil, *token_pos(pos))
105
- when s.scan(/[^\s),!]*/) then
112
+ elsif s.scan(/[^\s),!]*/)
113
+
106
114
  Token.new(:text, s.matched, *token_pos(pos))
107
115
  else
108
116
  raise "BUG: can't create token for: #{s.string[s.pos..-1].inspect}"
@@ -76,18 +76,13 @@ class Gem::RequestSet::Lockfile
76
76
  @dependencies = dependencies
77
77
  @gem_deps_file = File.expand_path(gem_deps_file)
78
78
  @gem_deps_dir = File.dirname(@gem_deps_file)
79
-
80
- if RUBY_VERSION < "2.7"
81
- @gem_deps_file.untaint unless gem_deps_file.tainted?
82
- end
83
-
84
79
  @platforms = []
85
80
  end
86
81
 
87
82
  def add_DEPENDENCIES(out) # :nodoc:
88
83
  out << "DEPENDENCIES"
89
84
 
90
- out.concat @dependencies.sort_by {|name,| name }.map {|name, requirement|
85
+ out.concat @dependencies.sort.map {|name, requirement|
91
86
  " #{name}#{requirement.for_lockfile}"
92
87
  }
93
88
 
@@ -106,10 +101,10 @@ class Gem::RequestSet::Lockfile
106
101
  out << " remote: #{group}"
107
102
  out << " specs:"
108
103
 
109
- requests.sort_by {|request| request.name }.each do |request|
104
+ requests.sort_by(&:name).each do |request|
110
105
  next if request.spec.name == "bundler"
111
106
  platform = "-#{request.spec.platform}" unless
112
- Gem::Platform::RUBY == request.spec.platform
107
+ request.spec.platform == Gem::Platform::RUBY
113
108
 
114
109
  out << " #{request.name} (#{request.version}#{platform})"
115
110
 
@@ -138,10 +133,10 @@ class Gem::RequestSet::Lockfile
138
133
  out << " revision: #{revision}"
139
134
  out << " specs:"
140
135
 
141
- requests.sort_by {|request| request.name }.each do |request|
136
+ requests.sort_by(&:name).each do |request|
142
137
  out << " #{request.name} (#{request.version})"
143
138
 
144
- dependencies = request.spec.dependencies.sort_by {|dep| dep.name }
139
+ dependencies = request.spec.dependencies.sort_by(&:name)
145
140
  dependencies.each do |dep|
146
141
  out << " #{dep.name}#{dep.requirement.for_lockfile}"
147
142
  end
@@ -185,7 +180,7 @@ class Gem::RequestSet::Lockfile
185
180
 
186
181
  platforms = requests.map {|request| request.spec.platform }.uniq
187
182
 
188
- platforms = platforms.sort_by {|platform| platform.to_s }
183
+ platforms = platforms.sort_by(&:to_s)
189
184
 
190
185
  platforms.each do |platform|
191
186
  out << " #{platform}"
@@ -160,7 +160,7 @@ class Gem::RequestSet
160
160
  end
161
161
 
162
162
  # Create N threads in a pool, have them download all the gems
163
- threads = Gem.configuration.concurrent_downloads.times.map do
163
+ threads = Array.new(Gem.configuration.concurrent_downloads) do
164
164
  # When a thread pops this item, it knows to stop running. The symbol
165
165
  # is queued here so that there will be one symbol per thread.
166
166
  download_queue << :stop
@@ -324,7 +324,7 @@ class Gem::RequestSet
324
324
 
325
325
  @git_set.root_dir = @install_dir
326
326
 
327
- lock_file = "#{File.expand_path(path)}.lock".dup.tap(&Gem::UNTAINT)
327
+ lock_file = "#{File.expand_path(path)}.lock"
328
328
  begin
329
329
  tokenizer = Gem::RequestSet::Lockfile::Tokenizer.from_file lock_file
330
330
  parser = tokenizer.make_parser self, []
@@ -376,7 +376,7 @@ class Gem::RequestSet
376
376
  q.text "sets:"
377
377
 
378
378
  q.breakable
379
- q.pp @sets.map {|set| set.class }
379
+ q.pp @sets.map(&:class)
380
380
  end
381
381
  end
382
382
 
@@ -430,7 +430,7 @@ class Gem::RequestSet
430
430
  end
431
431
 
432
432
  def specs
433
- @specs ||= @requests.map {|r| r.full_spec }
433
+ @specs ||= @requests.map(&:full_spec)
434
434
  end
435
435
 
436
436
  def specs_in(dir)
@@ -448,7 +448,7 @@ class Gem::RequestSet
448
448
  next if dep.type == :development && !@development
449
449
 
450
450
  match = @requests.find do |r|
451
- dep.match? r.spec.name, r.spec.version, r.spec.is_a?(Gem::Resolver::InstalledSpecification) || @prerelease
451
+ dep.match?(r.spec.name, r.spec.version, r.spec.is_a?(Gem::Resolver::InstalledSpecification) || @prerelease)
452
452
  end
453
453
 
454
454
  unless match
@@ -10,7 +10,7 @@ require_relative "version"
10
10
  # together in RubyGems.
11
11
 
12
12
  class Gem::Requirement
13
- OPS = { #:nodoc:
13
+ OPS = { # :nodoc:
14
14
  "=" => lambda {|v, r| v == r },
15
15
  "!=" => lambda {|v, r| v != r },
16
16
  ">" => lambda {|v, r| v > r },
@@ -23,12 +23,12 @@ class Gem::Requirement
23
23
  SOURCE_SET_REQUIREMENT = Struct.new(:for_lockfile).new "!" # :nodoc:
24
24
 
25
25
  quoted = OPS.keys.map {|k| Regexp.quote k }.join "|"
26
- PATTERN_RAW = "\\s*(#{quoted})?\\s*(#{Gem::Version::VERSION_PATTERN})\\s*" # :nodoc:
26
+ PATTERN_RAW = "\\s*(#{quoted})?\\s*(#{Gem::Version::VERSION_PATTERN})\\s*".freeze # :nodoc:
27
27
 
28
28
  ##
29
29
  # A regular expression that matches a requirement
30
30
 
31
- PATTERN = /\A#{PATTERN_RAW}\z/.freeze
31
+ PATTERN = /\A#{PATTERN_RAW}\z/
32
32
 
33
33
  ##
34
34
  # The default requirement matches any non-prerelease version
@@ -120,7 +120,7 @@ class Gem::Requirement
120
120
  # An array of requirement pairs. The first element of the pair is
121
121
  # the op, and the second is the Gem::Version.
122
122
 
123
- attr_reader :requirements #:nodoc:
123
+ attr_reader :requirements # :nodoc:
124
124
 
125
125
  ##
126
126
  # Constructs a requirement from +requirements+. Requirements can be
@@ -156,7 +156,7 @@ class Gem::Requirement
156
156
  # Formats this requirement for use in a Gem::RequestSet::Lockfile.
157
157
 
158
158
  def for_lockfile # :nodoc:
159
- return if [DefaultRequirement] == @requirements
159
+ return if @requirements == [DefaultRequirement]
160
160
 
161
161
  list = requirements.sort_by do |_, version|
162
162
  version
@@ -245,8 +245,8 @@ class Gem::Requirement
245
245
  requirements.all? {|op, rv| OPS[op].call version, rv }
246
246
  end
247
247
 
248
- alias :=== :satisfied_by?
249
- alias :=~ :satisfied_by?
248
+ alias_method :===, :satisfied_by?
249
+ alias_method :=~, :satisfied_by?
250
250
 
251
251
  ##
252
252
  # True if the requirement will not always match the latest version.
@@ -0,0 +1,22 @@
1
+ Copyright (C) 1993-2013 Yukihiro Matsumoto. All rights reserved.
2
+
3
+ Redistribution and use in source and binary forms, with or without
4
+ modification, are permitted provided that the following conditions
5
+ are met:
6
+ 1. Redistributions of source code must retain the above copyright
7
+ notice, this list of conditions and the following disclaimer.
8
+ 2. Redistributions in binary form must reproduce the above copyright
9
+ notice, this list of conditions and the following disclaimer in the
10
+ documentation and/or other materials provided with the distribution.
11
+
12
+ THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
13
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
14
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
15
+ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
16
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
17
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
18
+ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
19
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
20
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
21
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
22
+ SUCH DAMAGE.