rubygems-update 3.4.22 → 3.5.1

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 (540) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +105 -2
  3. data/Manifest.txt +46 -221
  4. data/README.md +1 -3
  5. data/bundler/CHANGELOG.md +63 -0
  6. data/bundler/bundler.gemspec +4 -2
  7. data/bundler/exe/bundle +1 -10
  8. data/bundler/lib/bundler/build_metadata.rb +3 -3
  9. data/bundler/lib/bundler/capistrano.rb +1 -1
  10. data/bundler/lib/bundler/checksum.rb +254 -0
  11. data/bundler/lib/bundler/ci_detector.rb +75 -0
  12. data/bundler/lib/bundler/cli/add.rb +3 -3
  13. data/bundler/lib/bundler/cli/binstubs.rb +4 -4
  14. data/bundler/lib/bundler/cli/cache.rb +1 -1
  15. data/bundler/lib/bundler/cli/check.rb +1 -1
  16. data/bundler/lib/bundler/cli/common.rb +9 -1
  17. data/bundler/lib/bundler/cli/config.rb +8 -7
  18. data/bundler/lib/bundler/cli/console.rb +3 -2
  19. data/bundler/lib/bundler/cli/doctor.rb +2 -2
  20. data/bundler/lib/bundler/cli/exec.rb +1 -1
  21. data/bundler/lib/bundler/cli/gem.rb +28 -23
  22. data/bundler/lib/bundler/cli/info.rb +2 -13
  23. data/bundler/lib/bundler/cli/install.rb +5 -4
  24. data/bundler/lib/bundler/cli/issue.rb +1 -1
  25. data/bundler/lib/bundler/cli/lock.rb +4 -4
  26. data/bundler/lib/bundler/cli/open.rb +1 -1
  27. data/bundler/lib/bundler/cli/outdated.rb +6 -6
  28. data/bundler/lib/bundler/cli/plugin.rb +7 -14
  29. data/bundler/lib/bundler/cli/pristine.rb +38 -30
  30. data/bundler/lib/bundler/cli/show.rb +2 -2
  31. data/bundler/lib/bundler/cli/update.rb +5 -5
  32. data/bundler/lib/bundler/cli.rb +215 -263
  33. data/bundler/lib/bundler/compact_index_client/cache.rb +29 -9
  34. data/bundler/lib/bundler/compact_index_client/cache_file.rb +153 -0
  35. data/bundler/lib/bundler/compact_index_client/gem_parser.rb +7 -3
  36. data/bundler/lib/bundler/compact_index_client/updater.rb +79 -81
  37. data/bundler/lib/bundler/compact_index_client.rb +14 -7
  38. data/bundler/lib/bundler/constants.rb +1 -1
  39. data/bundler/lib/bundler/current_ruby.rb +5 -21
  40. data/bundler/lib/bundler/definition.rb +42 -15
  41. data/bundler/lib/bundler/dependency.rb +16 -12
  42. data/bundler/lib/bundler/digest.rb +2 -2
  43. data/bundler/lib/bundler/dsl.rb +46 -30
  44. data/bundler/lib/bundler/endpoint_specification.rb +5 -1
  45. data/bundler/lib/bundler/env.rb +1 -3
  46. data/bundler/lib/bundler/errors.rb +43 -0
  47. data/bundler/lib/bundler/fetcher/base.rb +3 -1
  48. data/bundler/lib/bundler/fetcher/compact_index.rb +4 -4
  49. data/bundler/lib/bundler/fetcher/downloader.rb +13 -11
  50. data/bundler/lib/bundler/fetcher/gem_remote_fetcher.rb +16 -0
  51. data/bundler/lib/bundler/fetcher/index.rb +1 -1
  52. data/bundler/lib/bundler/fetcher.rb +28 -25
  53. data/bundler/lib/bundler/friendly_errors.rb +5 -5
  54. data/bundler/lib/bundler/gem_helper.rb +1 -1
  55. data/bundler/lib/bundler/gem_helpers.rb +5 -2
  56. data/bundler/lib/bundler/graph.rb +9 -9
  57. data/bundler/lib/bundler/index.rb +1 -2
  58. data/bundler/lib/bundler/injector.rb +1 -1
  59. data/bundler/lib/bundler/inline.rb +3 -3
  60. data/bundler/lib/bundler/installer/gem_installer.rb +5 -5
  61. data/bundler/lib/bundler/installer/parallel_installer.rb +16 -8
  62. data/bundler/lib/bundler/installer/standalone.rb +2 -3
  63. data/bundler/lib/bundler/installer.rb +9 -9
  64. data/bundler/lib/bundler/lazy_specification.rb +24 -17
  65. data/bundler/lib/bundler/lockfile_generator.rb +9 -0
  66. data/bundler/lib/bundler/lockfile_parser.rb +81 -10
  67. data/bundler/lib/bundler/man/bundle-add.1 +3 -26
  68. data/bundler/lib/bundler/man/bundle-binstubs.1 +4 -16
  69. data/bundler/lib/bundler/man/bundle-cache.1 +3 -24
  70. data/bundler/lib/bundler/man/bundle-check.1 +3 -12
  71. data/bundler/lib/bundler/man/bundle-clean.1 +3 -10
  72. data/bundler/lib/bundler/man/bundle-config.1 +20 -211
  73. data/bundler/lib/bundler/man/bundle-config.1.ronn +6 -0
  74. data/bundler/lib/bundler/man/bundle-console.1 +4 -22
  75. data/bundler/lib/bundler/man/bundle-doctor.1 +4 -18
  76. data/bundler/lib/bundler/man/bundle-exec.1 +12 -73
  77. data/bundler/lib/bundler/man/bundle-gem.1 +13 -49
  78. data/bundler/lib/bundler/man/bundle-help.1 +3 -7
  79. data/bundler/lib/bundler/man/bundle-info.1 +3 -9
  80. data/bundler/lib/bundler/man/bundle-init.1 +3 -12
  81. data/bundler/lib/bundler/man/bundle-inject.1 +6 -19
  82. data/bundler/lib/bundler/man/bundle-install.1 +27 -125
  83. data/bundler/lib/bundler/man/bundle-install.1.ronn +1 -0
  84. data/bundler/lib/bundler/man/bundle-list.1 +4 -19
  85. data/bundler/lib/bundler/man/bundle-lock.1 +5 -29
  86. data/bundler/lib/bundler/man/bundle-open.1 +7 -27
  87. data/bundler/lib/bundler/man/bundle-outdated.1 +3 -55
  88. data/bundler/lib/bundler/man/bundle-outdated.1.ronn +1 -0
  89. data/bundler/lib/bundler/man/bundle-platform.1 +5 -27
  90. data/bundler/lib/bundler/man/bundle-plugin.1 +3 -29
  91. data/bundler/lib/bundler/man/bundle-pristine.1 +5 -16
  92. data/bundler/lib/bundler/man/bundle-remove.1 +4 -14
  93. data/bundler/lib/bundler/man/bundle-show.1 +3 -10
  94. data/bundler/lib/bundler/man/bundle-update.1 +18 -137
  95. data/bundler/lib/bundler/man/bundle-version.1 +3 -16
  96. data/bundler/lib/bundler/man/bundle-viz.1 +4 -16
  97. data/bundler/lib/bundler/man/bundle.1 +5 -44
  98. data/bundler/lib/bundler/man/gemfile.5 +24 -301
  99. data/bundler/lib/bundler/man/gemfile.5.ronn +4 -0
  100. data/bundler/lib/bundler/match_metadata.rb +4 -0
  101. data/bundler/lib/bundler/match_platform.rb +1 -1
  102. data/bundler/lib/bundler/plugin/api/source.rb +3 -2
  103. data/bundler/lib/bundler/plugin/installer.rb +1 -1
  104. data/bundler/lib/bundler/plugin.rb +3 -3
  105. data/bundler/lib/bundler/resolver/base.rb +1 -1
  106. data/bundler/lib/bundler/resolver/incompatibility.rb +1 -1
  107. data/bundler/lib/bundler/resolver/spec_group.rb +1 -4
  108. data/bundler/lib/bundler/resolver.rb +16 -16
  109. data/bundler/lib/bundler/ruby_dsl.rb +20 -12
  110. data/bundler/lib/bundler/ruby_version.rb +1 -1
  111. data/bundler/lib/bundler/rubygems_ext.rb +24 -50
  112. data/bundler/lib/bundler/rubygems_gem_installer.rb +6 -56
  113. data/bundler/lib/bundler/rubygems_integration.rb +25 -94
  114. data/bundler/lib/bundler/runtime.rb +2 -2
  115. data/bundler/lib/bundler/self_manager.rb +23 -7
  116. data/bundler/lib/bundler/settings.rb +27 -7
  117. data/bundler/lib/bundler/setup.rb +4 -1
  118. data/bundler/lib/bundler/shared_helpers.rb +35 -13
  119. data/bundler/lib/bundler/source/git/git_proxy.rb +15 -15
  120. data/bundler/lib/bundler/source/git.rb +4 -3
  121. data/bundler/lib/bundler/source/metadata.rb +15 -15
  122. data/bundler/lib/bundler/source/path.rb +7 -6
  123. data/bundler/lib/bundler/source/rubygems.rb +21 -14
  124. data/bundler/lib/bundler/source.rb +2 -0
  125. data/bundler/lib/bundler/spec_set.rb +38 -10
  126. data/bundler/lib/bundler/stub_specification.rb +1 -0
  127. data/bundler/lib/bundler/templates/Executable.bundler +1 -1
  128. data/bundler/lib/bundler/templates/newgem/README.md.tt +3 -3
  129. data/bundler/lib/bundler/templates/newgem/Rakefile.tt +2 -6
  130. data/bundler/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +1 -1
  131. data/bundler/lib/bundler/templates/newgem/standard.yml.tt +1 -1
  132. data/bundler/lib/bundler/ui/shell.rb +1 -1
  133. data/bundler/lib/bundler/vendor/connection_pool/.document +1 -0
  134. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +1 -1
  135. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +53 -6
  136. data/bundler/lib/bundler/vendor/fileutils/.document +1 -0
  137. data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +8 -20
  138. data/bundler/lib/bundler/vendor/net-http-persistent/.document +1 -0
  139. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +3 -3
  140. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +2 -2
  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 +34 -34
  143. data/bundler/lib/bundler/vendor/pub_grub/.document +1 -0
  144. data/bundler/lib/bundler/vendor/thor/.document +1 -0
  145. data/bundler/lib/bundler/vendor/tsort/.document +1 -0
  146. data/bundler/lib/bundler/vendor/tsort/lib/tsort.rb +3 -0
  147. data/bundler/lib/bundler/vendor/uri/.document +1 -0
  148. data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +256 -132
  149. data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +1 -0
  150. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +95 -31
  151. data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
  152. data/bundler/lib/bundler/vendored_net_http.rb +8 -0
  153. data/bundler/lib/bundler/vendored_persistent.rb +0 -4
  154. data/bundler/lib/bundler/vendored_timeout.rb +8 -0
  155. data/bundler/lib/bundler/version.rb +1 -1
  156. data/bundler/lib/bundler/vlad.rb +1 -1
  157. data/bundler/lib/bundler/yaml_serializer.rb +3 -3
  158. data/bundler/lib/bundler.rb +41 -32
  159. data/lib/rubygems/available_set.rb +4 -4
  160. data/lib/rubygems/basic_specification.rb +35 -37
  161. data/lib/rubygems/bundler_version_finder.rb +4 -4
  162. data/lib/rubygems/ci_detector.rb +75 -0
  163. data/lib/rubygems/command.rb +13 -15
  164. data/lib/rubygems/command_manager.rb +5 -4
  165. data/lib/rubygems/commands/build_command.rb +2 -2
  166. data/lib/rubygems/commands/cert_command.rb +1 -2
  167. data/lib/rubygems/commands/check_command.rb +4 -4
  168. data/lib/rubygems/commands/cleanup_command.rb +12 -14
  169. data/lib/rubygems/commands/contents_command.rb +4 -4
  170. data/lib/rubygems/commands/dependency_command.rb +4 -5
  171. data/lib/rubygems/commands/environment_command.rb +1 -3
  172. data/lib/rubygems/commands/exec_command.rb +1 -1
  173. data/lib/rubygems/commands/fetch_command.rb +2 -2
  174. data/lib/rubygems/commands/generate_index_command.rb +39 -74
  175. data/lib/rubygems/commands/help_command.rb +3 -3
  176. data/lib/rubygems/commands/info_command.rb +2 -2
  177. data/lib/rubygems/commands/install_command.rb +8 -16
  178. data/lib/rubygems/commands/list_command.rb +2 -2
  179. data/lib/rubygems/commands/lock_command.rb +1 -1
  180. data/lib/rubygems/commands/open_command.rb +1 -1
  181. data/lib/rubygems/commands/owner_command.rb +1 -1
  182. data/lib/rubygems/commands/pristine_command.rb +13 -15
  183. data/lib/rubygems/commands/push_command.rb +2 -2
  184. data/lib/rubygems/commands/query_command.rb +4 -5
  185. data/lib/rubygems/commands/rdoc_command.rb +2 -2
  186. data/lib/rubygems/commands/search_command.rb +2 -2
  187. data/lib/rubygems/commands/setup_command.rb +31 -34
  188. data/lib/rubygems/commands/sources_command.rb +12 -12
  189. data/lib/rubygems/commands/specification_command.rb +10 -10
  190. data/lib/rubygems/commands/stale_command.rb +1 -1
  191. data/lib/rubygems/commands/uninstall_command.rb +9 -10
  192. data/lib/rubygems/commands/unpack_command.rb +4 -4
  193. data/lib/rubygems/commands/update_command.rb +10 -12
  194. data/lib/rubygems/commands/which_command.rb +1 -1
  195. data/lib/rubygems/commands/yank_command.rb +1 -1
  196. data/lib/rubygems/compatibility.rb +5 -6
  197. data/lib/rubygems/config_file.rb +4 -4
  198. data/lib/rubygems/core_ext/kernel_gem.rb +0 -2
  199. data/lib/rubygems/core_ext/kernel_require.rb +19 -48
  200. data/lib/rubygems/core_ext/kernel_warn.rb +1 -1
  201. data/lib/rubygems/core_ext/tcpsocket_init.rb +1 -1
  202. data/lib/rubygems/defaults.rb +15 -3
  203. data/lib/rubygems/dependency.rb +12 -14
  204. data/lib/rubygems/dependency_installer.rb +29 -30
  205. data/lib/rubygems/dependency_list.rb +1 -1
  206. data/lib/rubygems/deprecate.rb +16 -15
  207. data/lib/rubygems/doctor.rb +5 -5
  208. data/lib/rubygems/errors.rb +2 -6
  209. data/lib/rubygems/exceptions.rb +2 -1
  210. data/lib/rubygems/ext/builder.rb +15 -10
  211. data/lib/rubygems/ext/cargo_builder.rb +5 -5
  212. data/lib/rubygems/ext/ext_conf_builder.rb +1 -3
  213. data/lib/rubygems/gem_runner.rb +4 -4
  214. data/lib/rubygems/gemcutter_utilities/webauthn_listener/response.rb +3 -3
  215. data/lib/rubygems/gemcutter_utilities/webauthn_poller.rb +3 -3
  216. data/lib/rubygems/gemcutter_utilities.rb +18 -19
  217. data/lib/rubygems/install_update_options.rb +18 -19
  218. data/lib/rubygems/installer.rb +59 -33
  219. data/lib/rubygems/installer_uninstaller_utils.rb +0 -2
  220. data/lib/rubygems/local_remote_options.rb +7 -10
  221. data/lib/rubygems/name_tuple.rb +7 -9
  222. data/lib/rubygems/net/http.rb +3 -0
  223. data/lib/rubygems/net-http/.document +1 -0
  224. data/lib/rubygems/net-http/LICENSE.txt +22 -0
  225. data/lib/rubygems/net-http/lib/net/http/backward.rb +40 -0
  226. data/lib/rubygems/net-http/lib/net/http/exceptions.rb +34 -0
  227. data/lib/rubygems/net-http/lib/net/http/generic_request.rb +414 -0
  228. data/lib/rubygems/net-http/lib/net/http/header.rb +981 -0
  229. data/lib/rubygems/net-http/lib/net/http/proxy_delta.rb +17 -0
  230. data/lib/rubygems/net-http/lib/net/http/request.rb +88 -0
  231. data/lib/rubygems/net-http/lib/net/http/requests.rb +425 -0
  232. data/lib/rubygems/net-http/lib/net/http/response.rb +738 -0
  233. data/lib/rubygems/net-http/lib/net/http/responses.rb +1174 -0
  234. data/lib/rubygems/net-http/lib/net/http/status.rb +84 -0
  235. data/lib/rubygems/net-http/lib/net/http.rb +2496 -0
  236. data/lib/rubygems/net-http/lib/net/https.rb +23 -0
  237. data/lib/rubygems/net-protocol/.document +1 -0
  238. data/lib/rubygems/net-protocol/LICENSE.txt +22 -0
  239. data/lib/rubygems/net-protocol/lib/net/protocol.rb +544 -0
  240. data/lib/rubygems/optparse/lib/optparse.rb +39 -17
  241. data/lib/rubygems/package/old.rb +2 -2
  242. data/lib/rubygems/package/tar_header.rb +45 -39
  243. data/lib/rubygems/package/tar_reader/entry.rb +5 -4
  244. data/lib/rubygems/package/tar_reader.rb +5 -3
  245. data/lib/rubygems/package/tar_writer.rb +19 -17
  246. data/lib/rubygems/package.rb +27 -26
  247. data/lib/rubygems/package_task.rb +2 -2
  248. data/lib/rubygems/path_support.rb +9 -10
  249. data/lib/rubygems/platform.rb +60 -45
  250. data/lib/rubygems/query_utils.rb +7 -9
  251. data/lib/rubygems/remote_fetcher.rb +15 -15
  252. data/lib/rubygems/request/connection_pools.rb +3 -3
  253. data/lib/rubygems/request.rb +20 -17
  254. data/lib/rubygems/request_set/gem_dependency_api.rb +119 -122
  255. data/lib/rubygems/request_set/lockfile/parser.rb +9 -9
  256. data/lib/rubygems/request_set/lockfile/tokenizer.rb +20 -12
  257. data/lib/rubygems/request_set/lockfile.rb +6 -11
  258. data/lib/rubygems/request_set.rb +5 -5
  259. data/lib/rubygems/requirement.rb +7 -7
  260. data/lib/rubygems/resolv/.document +1 -0
  261. data/lib/rubygems/resolv/LICENSE.txt +22 -0
  262. data/lib/rubygems/resolv/lib/resolv.rb +3387 -0
  263. data/lib/rubygems/resolver/activation_request.rb +1 -3
  264. data/lib/rubygems/resolver/api_set/gem_parser.rb +7 -3
  265. data/lib/rubygems/resolver/best_set.rb +1 -1
  266. data/lib/rubygems/resolver/composed_set.rb +1 -1
  267. data/lib/rubygems/resolver/conflict.rb +4 -12
  268. data/lib/rubygems/resolver/index_set.rb +4 -4
  269. data/lib/rubygems/resolver/index_specification.rb +2 -2
  270. data/lib/rubygems/resolver/installer_set.rb +5 -6
  271. data/lib/rubygems/resolver/lock_set.rb +1 -1
  272. data/lib/rubygems/resolver/molinillo/.document +1 -0
  273. data/lib/rubygems/resolver.rb +3 -10
  274. data/lib/rubygems/s3_uri_signer.rb +6 -6
  275. data/lib/rubygems/safe_marshal/elements.rb +138 -0
  276. data/lib/rubygems/safe_marshal/reader.rb +306 -0
  277. data/lib/rubygems/safe_marshal/visitors/stream_printer.rb +31 -0
  278. data/lib/rubygems/safe_marshal/visitors/to_ruby.rb +385 -0
  279. data/lib/rubygems/safe_marshal/visitors/visitor.rb +74 -0
  280. data/lib/rubygems/safe_marshal.rb +74 -0
  281. data/lib/rubygems/safe_yaml.rb +5 -28
  282. data/lib/rubygems/security/policies.rb +36 -38
  283. data/lib/rubygems/security/policy.rb +7 -11
  284. data/lib/rubygems/security/signer.rb +1 -1
  285. data/lib/rubygems/security/trust_dir.rb +3 -3
  286. data/lib/rubygems/security.rb +8 -22
  287. data/lib/rubygems/source/git.rb +1 -3
  288. data/lib/rubygems/source/installed.rb +0 -2
  289. data/lib/rubygems/source/local.rb +5 -8
  290. data/lib/rubygems/source/lock.rb +1 -3
  291. data/lib/rubygems/source/specific_file.rb +0 -1
  292. data/lib/rubygems/source/vendor.rb +0 -2
  293. data/lib/rubygems/source.rb +12 -12
  294. data/lib/rubygems/source_list.rb +4 -4
  295. data/lib/rubygems/spec_fetcher.rb +29 -29
  296. data/lib/rubygems/specification.rb +125 -138
  297. data/lib/rubygems/specification_policy.rb +55 -25
  298. data/lib/rubygems/stub_specification.rb +4 -5
  299. data/lib/rubygems/text.rb +1 -2
  300. data/lib/rubygems/timeout/.document +1 -0
  301. data/lib/rubygems/timeout/LICENSE.txt +22 -0
  302. data/lib/rubygems/timeout/lib/timeout.rb +199 -0
  303. data/lib/rubygems/timeout.rb +3 -0
  304. data/lib/rubygems/tsort/lib/tsort.rb +3 -0
  305. data/lib/rubygems/uninstaller.rb +7 -9
  306. data/lib/rubygems/update_suggestion.rb +5 -18
  307. data/lib/rubygems/uri_formatter.rb +1 -1
  308. data/lib/rubygems/user_interaction.rb +15 -21
  309. data/lib/rubygems/util/licenses.rb +65 -35
  310. data/lib/rubygems/util/list.rb +3 -1
  311. data/lib/rubygems/util.rb +2 -4
  312. data/lib/rubygems/validator.rb +5 -3
  313. data/lib/rubygems/version.rb +34 -28
  314. data/lib/rubygems/version_option.rb +2 -5
  315. data/lib/rubygems/yaml_serializer.rb +3 -3
  316. data/lib/rubygems.rb +37 -37
  317. data/rubygems-update.gemspec +4 -4
  318. data/setup.rb +2 -2
  319. metadata +50 -225
  320. data/lib/rubygems/indexer.rb +0 -428
  321. data/lib/rubygems/mock_gem_ui.rb +0 -86
  322. data/test/rubygems/alternate_cert.pem +0 -19
  323. data/test/rubygems/alternate_cert_32.pem +0 -19
  324. data/test/rubygems/alternate_key.pem +0 -27
  325. data/test/rubygems/bad_rake.rb +0 -3
  326. data/test/rubygems/bundler_test_gem.rb +0 -424
  327. data/test/rubygems/ca_cert.pem +0 -77
  328. data/test/rubygems/child_cert.pem +0 -19
  329. data/test/rubygems/child_cert_32.pem +0 -19
  330. data/test/rubygems/child_key.pem +0 -27
  331. data/test/rubygems/client.pem +0 -107
  332. data/test/rubygems/data/excon-0.7.7.gemspec.rz +0 -0
  333. data/test/rubygems/data/gem-private_key.pem +0 -27
  334. data/test/rubygems/data/gem-public_cert.pem +0 -20
  335. data/test/rubygems/data/null-required-ruby-version.gemspec.rz +0 -0
  336. data/test/rubygems/data/null-required-rubygems-version.gemspec.rz +0 -0
  337. data/test/rubygems/data/pry-0.4.7.gemspec.rz +0 -0
  338. data/test/rubygems/encrypted_private_key.pem +0 -30
  339. data/test/rubygems/expired_cert.pem +0 -19
  340. data/test/rubygems/fake_certlib/openssl.rb +0 -9
  341. data/test/rubygems/foo/discover.rb +0 -1
  342. data/test/rubygems/future_cert.pem +0 -19
  343. data/test/rubygems/future_cert_32.pem +0 -19
  344. data/test/rubygems/good_rake.rb +0 -3
  345. data/test/rubygems/grandchild_cert.pem +0 -19
  346. data/test/rubygems/grandchild_cert_32.pem +0 -19
  347. data/test/rubygems/grandchild_key.pem +0 -27
  348. data/test/rubygems/helper.rb +0 -1649
  349. data/test/rubygems/installer_test_case.rb +0 -248
  350. data/test/rubygems/invalid_client.pem +0 -49
  351. data/test/rubygems/invalid_issuer_cert.pem +0 -20
  352. data/test/rubygems/invalid_issuer_cert_32.pem +0 -20
  353. data/test/rubygems/invalid_key.pem +0 -27
  354. data/test/rubygems/invalid_signer_cert.pem +0 -19
  355. data/test/rubygems/invalid_signer_cert_32.pem +0 -19
  356. data/test/rubygems/invalidchild_cert.pem +0 -19
  357. data/test/rubygems/invalidchild_cert_32.pem +0 -19
  358. data/test/rubygems/invalidchild_key.pem +0 -27
  359. data/test/rubygems/multifactor_auth_utilities.rb +0 -111
  360. data/test/rubygems/package/tar_test_case.rb +0 -175
  361. data/test/rubygems/packages/Bluebie-legs-0.6.2.gem +0 -0
  362. data/test/rubygems/packages/ascii_binder-0.1.10.1.gem +0 -0
  363. data/test/rubygems/packages/ill-formatted-platform-1.0.0.10.gem +0 -0
  364. data/test/rubygems/plugin/exception/rubygems_plugin.rb +0 -4
  365. data/test/rubygems/plugin/load/rubygems_plugin.rb +0 -5
  366. data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +0 -4
  367. data/test/rubygems/private3072_key.pem +0 -40
  368. data/test/rubygems/private_ec_key.pem +0 -9
  369. data/test/rubygems/private_key.pem +0 -27
  370. data/test/rubygems/public3072_cert.pem +0 -25
  371. data/test/rubygems/public_cert.pem +0 -20
  372. data/test/rubygems/public_cert_32.pem +0 -19
  373. data/test/rubygems/public_key.pem +0 -9
  374. data/test/rubygems/rubygems/commands/crash_command.rb +0 -5
  375. data/test/rubygems/rubygems_plugin.rb +0 -24
  376. data/test/rubygems/sff/discover.rb +0 -1
  377. data/test/rubygems/simple_gem.rb +0 -68
  378. data/test/rubygems/specifications/bar-0.0.2.gemspec +0 -9
  379. data/test/rubygems/specifications/foo-0.0.1-x86-mswin32.gemspec +0 -0
  380. data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +0 -14
  381. data/test/rubygems/ssl_cert.pem +0 -80
  382. data/test/rubygems/ssl_key.pem +0 -27
  383. data/test/rubygems/test_bundled_ca.rb +0 -61
  384. data/test/rubygems/test_config.rb +0 -28
  385. data/test/rubygems/test_deprecate.rb +0 -158
  386. data/test/rubygems/test_exit.rb +0 -17
  387. data/test/rubygems/test_gem.rb +0 -1799
  388. data/test/rubygems/test_gem_available_set.rb +0 -130
  389. data/test/rubygems/test_gem_bundler_version_finder.rb +0 -127
  390. data/test/rubygems/test_gem_command.rb +0 -403
  391. data/test/rubygems/test_gem_command_manager.rb +0 -400
  392. data/test/rubygems/test_gem_commands_build_command.rb +0 -739
  393. data/test/rubygems/test_gem_commands_cert_command.rb +0 -866
  394. data/test/rubygems/test_gem_commands_check_command.rb +0 -68
  395. data/test/rubygems/test_gem_commands_cleanup_command.rb +0 -292
  396. data/test/rubygems/test_gem_commands_contents_command.rb +0 -271
  397. data/test/rubygems/test_gem_commands_dependency_command.rb +0 -228
  398. data/test/rubygems/test_gem_commands_environment_command.rb +0 -169
  399. data/test/rubygems/test_gem_commands_exec_command.rb +0 -857
  400. data/test/rubygems/test_gem_commands_fetch_command.rb +0 -258
  401. data/test/rubygems/test_gem_commands_generate_index_command.rb +0 -81
  402. data/test/rubygems/test_gem_commands_help_command.rb +0 -94
  403. data/test/rubygems/test_gem_commands_info_command.rb +0 -70
  404. data/test/rubygems/test_gem_commands_install_command.rb +0 -1573
  405. data/test/rubygems/test_gem_commands_list_command.rb +0 -33
  406. data/test/rubygems/test_gem_commands_lock_command.rb +0 -67
  407. data/test/rubygems/test_gem_commands_mirror.rb +0 -20
  408. data/test/rubygems/test_gem_commands_open_command.rb +0 -101
  409. data/test/rubygems/test_gem_commands_outdated_command.rb +0 -50
  410. data/test/rubygems/test_gem_commands_owner_command.rb +0 -503
  411. data/test/rubygems/test_gem_commands_pristine_command.rb +0 -708
  412. data/test/rubygems/test_gem_commands_push_command.rb +0 -603
  413. data/test/rubygems/test_gem_commands_query_command.rb +0 -858
  414. data/test/rubygems/test_gem_commands_search_command.rb +0 -16
  415. data/test/rubygems/test_gem_commands_server_command.rb +0 -20
  416. data/test/rubygems/test_gem_commands_setup_command.rb +0 -474
  417. data/test/rubygems/test_gem_commands_signin_command.rb +0 -259
  418. data/test/rubygems/test_gem_commands_signout_command.rb +0 -30
  419. data/test/rubygems/test_gem_commands_sources_command.rb +0 -534
  420. data/test/rubygems/test_gem_commands_specification_command.rb +0 -277
  421. data/test/rubygems/test_gem_commands_stale_command.rb +0 -43
  422. data/test/rubygems/test_gem_commands_uninstall_command.rb +0 -542
  423. data/test/rubygems/test_gem_commands_unpack_command.rb +0 -224
  424. data/test/rubygems/test_gem_commands_update_command.rb +0 -836
  425. data/test/rubygems/test_gem_commands_which_command.rb +0 -85
  426. data/test/rubygems/test_gem_commands_yank_command.rb +0 -299
  427. data/test/rubygems/test_gem_config_file.rb +0 -551
  428. data/test/rubygems/test_gem_dependency.rb +0 -398
  429. data/test/rubygems/test_gem_dependency_installer.rb +0 -1190
  430. data/test/rubygems/test_gem_dependency_list.rb +0 -265
  431. data/test/rubygems/test_gem_dependency_resolution_error.rb +0 -27
  432. data/test/rubygems/test_gem_doctor.rb +0 -195
  433. data/test/rubygems/test_gem_ext_builder.rb +0 -337
  434. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/.gitignore +0 -1
  435. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +0 -10
  436. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.lock +0 -249
  437. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.toml +0 -10
  438. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/src/lib.rs +0 -27
  439. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/lib/custom_name.rb +0 -3
  440. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/.gitignore +0 -1
  441. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +0 -249
  442. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +0 -10
  443. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/rust_ruby_example.gemspec +0 -10
  444. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs +0 -51
  445. data/test/rubygems/test_gem_ext_cargo_builder.rb +0 -167
  446. data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +0 -34
  447. data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +0 -60
  448. data/test/rubygems/test_gem_ext_cmake_builder.rb +0 -84
  449. data/test/rubygems/test_gem_ext_configure_builder.rb +0 -80
  450. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +0 -229
  451. data/test/rubygems/test_gem_ext_rake_builder.rb +0 -113
  452. data/test/rubygems/test_gem_gem_runner.rb +0 -119
  453. data/test/rubygems/test_gem_gemcutter_utilities.rb +0 -361
  454. data/test/rubygems/test_gem_impossible_dependencies_error.rb +0 -60
  455. data/test/rubygems/test_gem_indexer.rb +0 -381
  456. data/test/rubygems/test_gem_install_update_options.rb +0 -208
  457. data/test/rubygems/test_gem_installer.rb +0 -2512
  458. data/test/rubygems/test_gem_local_remote_options.rb +0 -133
  459. data/test/rubygems/test_gem_name_tuple.rb +0 -43
  460. data/test/rubygems/test_gem_package.rb +0 -1306
  461. data/test/rubygems/test_gem_package_old.rb +0 -91
  462. data/test/rubygems/test_gem_package_tar_header.rb +0 -226
  463. data/test/rubygems/test_gem_package_tar_reader.rb +0 -150
  464. data/test/rubygems/test_gem_package_tar_reader_entry.rb +0 -350
  465. data/test/rubygems/test_gem_package_tar_writer.rb +0 -331
  466. data/test/rubygems/test_gem_package_task.rb +0 -118
  467. data/test/rubygems/test_gem_path_support.rb +0 -139
  468. data/test/rubygems/test_gem_platform.rb +0 -497
  469. data/test/rubygems/test_gem_rdoc.rb +0 -137
  470. data/test/rubygems/test_gem_remote_fetcher.rb +0 -1227
  471. data/test/rubygems/test_gem_request.rb +0 -547
  472. data/test/rubygems/test_gem_request_connection_pools.rb +0 -152
  473. data/test/rubygems/test_gem_request_set.rb +0 -672
  474. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +0 -853
  475. data/test/rubygems/test_gem_request_set_lockfile.rb +0 -469
  476. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +0 -544
  477. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +0 -307
  478. data/test/rubygems/test_gem_requirement.rb +0 -505
  479. data/test/rubygems/test_gem_resolver.rb +0 -859
  480. data/test/rubygems/test_gem_resolver_activation_request.rb +0 -43
  481. data/test/rubygems/test_gem_resolver_api_set.rb +0 -210
  482. data/test/rubygems/test_gem_resolver_api_specification.rb +0 -167
  483. data/test/rubygems/test_gem_resolver_best_set.rb +0 -159
  484. data/test/rubygems/test_gem_resolver_composed_set.rb +0 -44
  485. data/test/rubygems/test_gem_resolver_conflict.rb +0 -82
  486. data/test/rubygems/test_gem_resolver_dependency_request.rb +0 -83
  487. data/test/rubygems/test_gem_resolver_git_set.rb +0 -188
  488. data/test/rubygems/test_gem_resolver_git_specification.rb +0 -114
  489. data/test/rubygems/test_gem_resolver_index_set.rb +0 -88
  490. data/test/rubygems/test_gem_resolver_index_specification.rb +0 -93
  491. data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -47
  492. data/test/rubygems/test_gem_resolver_installer_set.rb +0 -320
  493. data/test/rubygems/test_gem_resolver_local_specification.rb +0 -44
  494. data/test/rubygems/test_gem_resolver_lock_set.rb +0 -62
  495. data/test/rubygems/test_gem_resolver_lock_specification.rb +0 -98
  496. data/test/rubygems/test_gem_resolver_requirement_list.rb +0 -19
  497. data/test/rubygems/test_gem_resolver_specification.rb +0 -63
  498. data/test/rubygems/test_gem_resolver_vendor_set.rb +0 -82
  499. data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -82
  500. data/test/rubygems/test_gem_security.rb +0 -341
  501. data/test/rubygems/test_gem_security_policy.rb +0 -535
  502. data/test/rubygems/test_gem_security_signer.rb +0 -218
  503. data/test/rubygems/test_gem_security_trust_dir.rb +0 -99
  504. data/test/rubygems/test_gem_silent_ui.rb +0 -123
  505. data/test/rubygems/test_gem_source.rb +0 -254
  506. data/test/rubygems/test_gem_source_fetch_problem.rb +0 -37
  507. data/test/rubygems/test_gem_source_git.rb +0 -310
  508. data/test/rubygems/test_gem_source_installed.rb +0 -35
  509. data/test/rubygems/test_gem_source_list.rb +0 -119
  510. data/test/rubygems/test_gem_source_local.rb +0 -107
  511. data/test/rubygems/test_gem_source_lock.rb +0 -113
  512. data/test/rubygems/test_gem_source_specific_file.rb +0 -76
  513. data/test/rubygems/test_gem_source_subpath_problem.rb +0 -50
  514. data/test/rubygems/test_gem_source_vendor.rb +0 -30
  515. data/test/rubygems/test_gem_spec_fetcher.rb +0 -338
  516. data/test/rubygems/test_gem_specification.rb +0 -3856
  517. data/test/rubygems/test_gem_stream_ui.rb +0 -255
  518. data/test/rubygems/test_gem_stub_specification.rb +0 -278
  519. data/test/rubygems/test_gem_text.rb +0 -103
  520. data/test/rubygems/test_gem_uninstaller.rb +0 -675
  521. data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +0 -31
  522. data/test/rubygems/test_gem_update_suggestion.rb +0 -209
  523. data/test/rubygems/test_gem_uri.rb +0 -41
  524. data/test/rubygems/test_gem_uri_formatter.rb +0 -27
  525. data/test/rubygems/test_gem_util.rb +0 -91
  526. data/test/rubygems/test_gem_validator.rb +0 -42
  527. data/test/rubygems/test_gem_version.rb +0 -305
  528. data/test/rubygems/test_gem_version_option.rb +0 -165
  529. data/test/rubygems/test_kernel.rb +0 -124
  530. data/test/rubygems/test_project_sanity.rb +0 -49
  531. data/test/rubygems/test_remote_fetch_error.rb +0 -20
  532. data/test/rubygems/test_require.rb +0 -732
  533. data/test/rubygems/test_rubygems.rb +0 -76
  534. data/test/rubygems/test_webauthn_listener.rb +0 -143
  535. data/test/rubygems/test_webauthn_listener_response.rb +0 -93
  536. data/test/rubygems/test_webauthn_poller.rb +0 -124
  537. data/test/rubygems/utilities.rb +0 -436
  538. data/test/rubygems/wrong_key_cert.pem +0 -19
  539. data/test/rubygems/wrong_key_cert_32.pem +0 -19
  540. data/test/test_changelog_generator.rb +0 -17
@@ -13,6 +13,8 @@ require_relative "stub_specification"
13
13
  require_relative "platform"
14
14
  require_relative "util/list"
15
15
 
16
+ require "rbconfig"
17
+
16
18
  ##
17
19
  # The Specification class contains the information for a gem. Typically
18
20
  # defined in a .gemspec file or a Rakefile, and looks like this:
@@ -106,7 +108,7 @@ class Gem::Specification < Gem::BasicSpecification
106
108
  @load_cache = {} # :nodoc:
107
109
  @load_cache_mutex = Thread::Mutex.new
108
110
 
109
- VALID_NAME_PATTERN = /\A[a-zA-Z0-9\.\-\_]+\z/.freeze # :nodoc:
111
+ VALID_NAME_PATTERN = /\A[a-zA-Z0-9\.\-\_]+\z/ # :nodoc:
110
112
 
111
113
  # :startdoc:
112
114
 
@@ -125,35 +127,35 @@ class Gem::Specification < Gem::BasicSpecification
125
127
  # Map of attribute names to default values.
126
128
 
127
129
  @@default_value = {
128
- :authors => [],
129
- :autorequire => nil,
130
- :bindir => "bin",
131
- :cert_chain => [],
132
- :date => nil,
133
- :dependencies => [],
134
- :description => nil,
135
- :email => nil,
136
- :executables => [],
137
- :extensions => [],
138
- :extra_rdoc_files => [],
139
- :files => [],
140
- :homepage => nil,
141
- :licenses => [],
142
- :metadata => {},
143
- :name => nil,
144
- :platform => Gem::Platform::RUBY,
145
- :post_install_message => nil,
146
- :rdoc_options => [],
147
- :require_paths => ["lib"],
148
- :required_ruby_version => Gem::Requirement.default,
149
- :required_rubygems_version => Gem::Requirement.default,
150
- :requirements => [],
151
- :rubygems_version => Gem::VERSION,
152
- :signing_key => nil,
153
- :specification_version => CURRENT_SPECIFICATION_VERSION,
154
- :summary => nil,
155
- :test_files => [],
156
- :version => nil,
130
+ authors: [],
131
+ autorequire: nil,
132
+ bindir: "bin",
133
+ cert_chain: [],
134
+ date: nil,
135
+ dependencies: [],
136
+ description: nil,
137
+ email: nil,
138
+ executables: [],
139
+ extensions: [],
140
+ extra_rdoc_files: [],
141
+ files: [],
142
+ homepage: nil,
143
+ licenses: [],
144
+ metadata: {},
145
+ name: nil,
146
+ platform: Gem::Platform::RUBY,
147
+ post_install_message: nil,
148
+ rdoc_options: [],
149
+ require_paths: ["lib"],
150
+ required_ruby_version: Gem::Requirement.default,
151
+ required_rubygems_version: Gem::Requirement.default,
152
+ requirements: [],
153
+ rubygems_version: Gem::VERSION,
154
+ signing_key: nil,
155
+ specification_version: CURRENT_SPECIFICATION_VERSION,
156
+ summary: nil,
157
+ test_files: [],
158
+ version: nil,
157
159
  }.freeze
158
160
 
159
161
  # rubocop:disable Style/MutableConstant
@@ -162,19 +164,17 @@ class Gem::Specification < Gem::BasicSpecification
162
164
 
163
165
  @@default_value.each do |k,v|
164
166
  INITIALIZE_CODE_FOR_DEFAULTS[k] = case v
165
- when [], {}, true, false, nil, Numeric, Symbol
166
- v.inspect
167
- when String
168
- v.dump
169
- when Numeric
170
- "default_value(:#{k})"
171
- else
172
- "default_value(:#{k}).dup"
167
+ when [], {}, true, false, nil, Numeric, Symbol
168
+ v.inspect
169
+ when String
170
+ v.dump
171
+ else
172
+ "default_value(:#{k}).dup"
173
173
  end
174
174
  end
175
175
 
176
- @@attributes = @@default_value.keys.sort_by {|s| s.to_s }
177
- @@array_attributes = @@default_value.reject {|k,v| v != [] }.keys
176
+ @@attributes = @@default_value.keys.sort_by(&:to_s)
177
+ @@array_attributes = @@default_value.reject {|_k,v| v != [] }.keys
178
178
  @@nil_attributes, @@non_nil_attributes = @@default_value.keys.partition do |k|
179
179
  @@default_value[k].nil?
180
180
  end
@@ -263,8 +263,7 @@ class Gem::Specification < Gem::BasicSpecification
263
263
  @test_files,
264
264
  add_bindir(@executables),
265
265
  @extra_rdoc_files,
266
- @extensions,
267
- ].flatten.compact.uniq.sort
266
+ @extensions].flatten.compact.uniq.sort
268
267
  end
269
268
 
270
269
  ##
@@ -503,8 +502,6 @@ class Gem::Specification < Gem::BasicSpecification
503
502
  @platform = @new_platform.to_s
504
503
 
505
504
  invalidate_memoized_attributes
506
-
507
- @new_platform
508
505
  end
509
506
 
510
507
  ##
@@ -571,7 +568,7 @@ class Gem::Specification < Gem::BasicSpecification
571
568
  ##
572
569
  # Executables included in the gem.
573
570
  #
574
- # For example, the rake gem has rake as an executable. You dont specify the
571
+ # For example, the rake gem has rake as an executable. You don't specify the
575
572
  # full path (as in bin/rake); all application-style files are expected to be
576
573
  # found in bindir. These files must be executable Ruby files. Files that
577
574
  # use bash or other interpreters will not work.
@@ -592,7 +589,7 @@ class Gem::Specification < Gem::BasicSpecification
592
589
  # extconf.rb-style files used to compile extensions.
593
590
  #
594
591
  # These files will be run when the gem is installed, causing the C (or
595
- # whatever) code to be compiled on the users machine.
592
+ # whatever) code to be compiled on the user's machine.
596
593
  #
597
594
  # Usage:
598
595
  #
@@ -743,7 +740,7 @@ class Gem::Specification < Gem::BasicSpecification
743
740
 
744
741
  attr_accessor :activated
745
742
 
746
- alias :activated? :activated
743
+ alias_method :activated?, :activated
747
744
 
748
745
  ##
749
746
  # Autorequire was used by old RubyGems to automatically require a file.
@@ -786,7 +783,7 @@ class Gem::Specification < Gem::BasicSpecification
786
783
  def self.each_gemspec(dirs) # :nodoc:
787
784
  dirs.each do |dir|
788
785
  Gem::Util.glob_files_in_dir("*.gemspec", dir).each do |path|
789
- yield path.tap(&Gem::UNTAINT)
786
+ yield path
790
787
  end
791
788
  end
792
789
  end
@@ -865,7 +862,7 @@ class Gem::Specification < Gem::BasicSpecification
865
862
  installed_stubs = installed_stubs(Gem::Specification.dirs, pattern)
866
863
  installed_stubs.select! {|s| Gem::Platform.match_spec? s } if match_platform
867
864
  stubs = installed_stubs + default_stubs(pattern)
868
- stubs = stubs.uniq {|stub| stub.full_name }
865
+ stubs = stubs.uniq(&:full_name)
869
866
  _resort!(stubs)
870
867
  stubs
871
868
  end
@@ -946,7 +943,7 @@ class Gem::Specification < Gem::BasicSpecification
946
943
  # Return full names of all specs in sorted order.
947
944
 
948
945
  def self.all_names
949
- self._all.map(&:full_name)
946
+ _all.map(&:full_name)
950
947
  end
951
948
 
952
949
  ##
@@ -972,7 +969,7 @@ class Gem::Specification < Gem::BasicSpecification
972
969
 
973
970
  def self.dirs
974
971
  @@dirs ||= Gem.path.collect do |dir|
975
- File.join dir.dup.tap(&Gem::UNTAINT), "specifications"
972
+ File.join dir, "specifications"
976
973
  end
977
974
  end
978
975
 
@@ -981,7 +978,7 @@ class Gem::Specification < Gem::BasicSpecification
981
978
  # this resets the list of known specs.
982
979
 
983
980
  def self.dirs=(dirs)
984
- self.reset
981
+ reset
985
982
 
986
983
  @@dirs = Array(dirs).map {|dir| File.join dir, "specifications" }
987
984
  end
@@ -995,7 +992,7 @@ class Gem::Specification < Gem::BasicSpecification
995
992
  def self.each
996
993
  return enum_for(:each) unless block_given?
997
994
 
998
- self._all.each do |x|
995
+ _all.each do |x|
999
996
  yield x
1000
997
  end
1001
998
  end
@@ -1041,9 +1038,10 @@ class Gem::Specification < Gem::BasicSpecification
1041
1038
 
1042
1039
  def self.find_by_path(path)
1043
1040
  path = path.dup.freeze
1044
- spec = @@spec_with_requirable_file[path] ||= (stubs.find do |s|
1041
+ spec = @@spec_with_requirable_file[path] ||= stubs.find do |s|
1045
1042
  s.contains_requirable_file? path
1046
- end || NOT_FOUND)
1043
+ end || NOT_FOUND
1044
+
1047
1045
  spec.to_spec
1048
1046
  end
1049
1047
 
@@ -1060,9 +1058,10 @@ class Gem::Specification < Gem::BasicSpecification
1060
1058
  end
1061
1059
 
1062
1060
  def self.find_active_stub_by_path(path)
1063
- stub = @@active_stub_with_requirable_file[path] ||= (stubs.find do |s|
1061
+ stub = @@active_stub_with_requirable_file[path] ||= stubs.find do |s|
1064
1062
  s.activated? && s.contains_requirable_file?(path)
1065
- end || NOT_FOUND)
1063
+ end || NOT_FOUND
1064
+
1066
1065
  stub.this
1067
1066
  end
1068
1067
 
@@ -1079,7 +1078,7 @@ class Gem::Specification < Gem::BasicSpecification
1079
1078
 
1080
1079
  def self.find_in_unresolved_tree(path)
1081
1080
  unresolved_specs.each do |spec|
1082
- spec.traverse do |from_spec, dep, to_spec, trail|
1081
+ spec.traverse do |_from_spec, _dep, to_spec, trail|
1083
1082
  if to_spec.has_conflicts? || to_spec.conficts_when_loaded_with?(trail)
1084
1083
  :next
1085
1084
  else
@@ -1092,7 +1091,7 @@ class Gem::Specification < Gem::BasicSpecification
1092
1091
  end
1093
1092
 
1094
1093
  def self.unresolved_specs
1095
- unresolved_deps.values.map {|dep| dep.to_specs }.flatten
1094
+ unresolved_deps.values.map(&:to_specs).flatten
1096
1095
  end
1097
1096
  private_class_method :unresolved_specs
1098
1097
 
@@ -1144,12 +1143,14 @@ class Gem::Specification < Gem::BasicSpecification
1144
1143
  result = {}
1145
1144
 
1146
1145
  specs.reverse_each do |spec|
1147
- next if spec.version.prerelease? unless prerelease
1146
+ unless prerelease
1147
+ next if spec.version.prerelease?
1148
+ end
1148
1149
 
1149
1150
  result[spec.name] = spec
1150
1151
  end
1151
1152
 
1152
- result.map(&:last).flatten.sort_by {|tup| tup.name }
1153
+ result.map(&:last).flatten.sort_by(&:name)
1153
1154
  end
1154
1155
 
1155
1156
  ##
@@ -1158,36 +1159,33 @@ class Gem::Specification < Gem::BasicSpecification
1158
1159
  def self.load(file)
1159
1160
  return unless file
1160
1161
 
1161
- _spec = @load_cache_mutex.synchronize { @load_cache[file] }
1162
- return _spec if _spec
1162
+ spec = @load_cache_mutex.synchronize { @load_cache[file] }
1163
+ return spec if spec
1163
1164
 
1164
- file = file.dup.tap(&Gem::UNTAINT)
1165
1165
  return unless File.file?(file)
1166
1166
 
1167
1167
  code = Gem.open_file(file, "r:UTF-8:-", &:read)
1168
1168
 
1169
- code.tap(&Gem::UNTAINT)
1170
-
1171
1169
  begin
1172
- _spec = eval code, binding, file
1170
+ spec = eval code, binding, file
1173
1171
 
1174
- if Gem::Specification === _spec
1175
- _spec.loaded_from = File.expand_path file.to_s
1172
+ if Gem::Specification === spec
1173
+ spec.loaded_from = File.expand_path file.to_s
1176
1174
  @load_cache_mutex.synchronize do
1177
1175
  prev = @load_cache[file]
1178
1176
  if prev
1179
- _spec = prev
1177
+ spec = prev
1180
1178
  else
1181
- @load_cache[file] = _spec
1179
+ @load_cache[file] = spec
1182
1180
  end
1183
1181
  end
1184
- return _spec
1182
+ return spec
1185
1183
  end
1186
1184
 
1187
- warn "[#{file}] isn't a Gem::Specification (#{_spec.class} instead)."
1185
+ warn "[#{file}] isn't a Gem::Specification (#{spec.class} instead)."
1188
1186
  rescue SignalException, SystemExit
1189
1187
  raise
1190
- rescue SyntaxError, Exception => e
1188
+ rescue SyntaxError, StandardError => e
1191
1189
  warn "Invalid gemspec in [#{file}]: #{e}"
1192
1190
  end
1193
1191
 
@@ -1275,7 +1273,7 @@ class Gem::Specification < Gem::BasicSpecification
1275
1273
 
1276
1274
  def self.reset
1277
1275
  @@dirs = nil
1278
- Gem.pre_reset_hooks.each {|hook| hook.call }
1276
+ Gem.pre_reset_hooks.each(&:call)
1279
1277
  clear_specs
1280
1278
  clear_load_cache
1281
1279
  unresolved = unresolved_deps
@@ -1294,7 +1292,7 @@ class Gem::Specification < Gem::BasicSpecification
1294
1292
  warn "Please report a bug if this causes problems."
1295
1293
  unresolved.clear
1296
1294
  end
1297
- Gem.post_reset_hooks.each {|hook| hook.call }
1295
+ Gem.post_reset_hooks.each(&:call)
1298
1296
  end
1299
1297
 
1300
1298
  # DOC: This method needs documented or nodoc'd
@@ -1307,12 +1305,13 @@ class Gem::Specification < Gem::BasicSpecification
1307
1305
 
1308
1306
  def self._load(str)
1309
1307
  Gem.load_yaml
1308
+ Gem.load_safe_marshal
1310
1309
 
1311
1310
  yaml_set = false
1312
1311
  retry_count = 0
1313
1312
 
1314
1313
  array = begin
1315
- Marshal.load str
1314
+ Gem::SafeMarshal.safe_load str
1316
1315
  rescue ArgumentError => e
1317
1316
  # Avoid an infinite retry loop when the argument error has nothing to do
1318
1317
  # with the classes not being defined.
@@ -1442,7 +1441,7 @@ class Gem::Specification < Gem::BasicSpecification
1442
1441
  # there are conflicts upon activation.
1443
1442
 
1444
1443
  def activate
1445
- other = Gem.loaded_specs[self.name]
1444
+ other = Gem.loaded_specs[name]
1446
1445
  if other
1447
1446
  check_version_conflict other
1448
1447
  return false
@@ -1453,7 +1452,7 @@ class Gem::Specification < Gem::BasicSpecification
1453
1452
  activate_dependencies
1454
1453
  add_self_to_load_path
1455
1454
 
1456
- Gem.loaded_specs[self.name] = self
1455
+ Gem.loaded_specs[name] = self
1457
1456
  @activated = true
1458
1457
  @loaded = true
1459
1458
 
@@ -1468,7 +1467,7 @@ class Gem::Specification < Gem::BasicSpecification
1468
1467
  def activate_dependencies
1469
1468
  unresolved = Gem::Specification.unresolved_deps
1470
1469
 
1471
- self.runtime_dependencies.each do |spec_dep|
1470
+ runtime_dependencies.each do |spec_dep|
1472
1471
  if loaded = Gem.loaded_specs[spec_dep.name]
1473
1472
  next if spec_dep.matches_spec? loaded
1474
1473
 
@@ -1482,7 +1481,7 @@ class Gem::Specification < Gem::BasicSpecification
1482
1481
  begin
1483
1482
  specs = spec_dep.to_specs
1484
1483
  rescue Gem::MissingSpecError => e
1485
- raise Gem::MissingSpecError.new(e.name, e.requirement, "at: #{self.spec_file}")
1484
+ raise Gem::MissingSpecError.new(e.name, e.requirement, "at: #{spec_file}")
1486
1485
  end
1487
1486
 
1488
1487
  if specs.size == 1
@@ -1572,7 +1571,7 @@ class Gem::Specification < Gem::BasicSpecification
1572
1571
 
1573
1572
  private :add_dependency_with_type
1574
1573
 
1575
- alias add_dependency add_runtime_dependency
1574
+ alias_method :add_dependency, :add_runtime_dependency
1576
1575
 
1577
1576
  ##
1578
1577
  # Adds this spec's require paths to LOAD_PATH, in the proper location.
@@ -1624,7 +1623,7 @@ class Gem::Specification < Gem::BasicSpecification
1624
1623
  def build_args
1625
1624
  if File.exist? build_info_file
1626
1625
  build_info = File.readlines build_info_file
1627
- build_info = build_info.map {|x| x.strip }
1626
+ build_info = build_info.map(&:strip)
1628
1627
  build_info.delete ""
1629
1628
  build_info
1630
1629
  else
@@ -1701,7 +1700,7 @@ class Gem::Specification < Gem::BasicSpecification
1701
1700
 
1702
1701
  def conflicts
1703
1702
  conflicts = {}
1704
- self.runtime_dependencies.each do |dep|
1703
+ runtime_dependencies.each do |dep|
1705
1704
  spec = Gem.loaded_specs[dep.name]
1706
1705
  if spec && !spec.satisfies_requirement?(dep)
1707
1706
  (conflicts[spec] ||= []) << dep
@@ -1717,7 +1716,7 @@ class Gem::Specification < Gem::BasicSpecification
1717
1716
 
1718
1717
  def conficts_when_loaded_with?(list_of_specs) # :nodoc:
1719
1718
  result = list_of_specs.any? do |spec|
1720
- spec.dependencies.any? {|dep| dep.runtime? && (dep.name == name) && !satisfies_requirement?(dep) }
1719
+ spec.runtime_dependencies.any? {|dep| (dep.name == name) && !satisfies_requirement?(dep) }
1721
1720
  end
1722
1721
  result
1723
1722
  end
@@ -1727,14 +1726,12 @@ class Gem::Specification < Gem::BasicSpecification
1727
1726
 
1728
1727
  def has_conflicts?
1729
1728
  return true unless Gem.env_requirement(name).satisfied_by?(version)
1730
- self.dependencies.any? do |dep|
1731
- if dep.runtime?
1732
- spec = Gem.loaded_specs[dep.name]
1733
- spec && !spec.satisfies_requirement?(dep)
1734
- else
1735
- false
1736
- end
1729
+ runtime_dependencies.any? do |dep|
1730
+ spec = Gem.loaded_specs[dep.name]
1731
+ spec && !spec.satisfies_requirement?(dep)
1737
1732
  end
1733
+ rescue ArgumentError => e
1734
+ raise e, "#{name} #{version}: #{e.message}"
1738
1735
  end
1739
1736
 
1740
1737
  # The date this gem was created.
@@ -1758,7 +1755,7 @@ class Gem::Specification < Gem::BasicSpecification
1758
1755
  /\A
1759
1756
  (\d{4})-(\d{2})-(\d{2})
1760
1757
  (\s+ \d{2}:\d{2}:\d{2}\.\d+ \s* (Z | [-+]\d\d:\d\d) )?
1761
- \Z/x.freeze
1758
+ \Z/x
1762
1759
 
1763
1760
  ##
1764
1761
  # The date this gem was created
@@ -1770,17 +1767,17 @@ class Gem::Specification < Gem::BasicSpecification
1770
1767
  # This is the cleanest, most-readable, faster-than-using-Date
1771
1768
  # way to do it.
1772
1769
  @date = case date
1773
- when String then
1774
- if DateTimeFormat =~ date
1775
- Time.utc($1.to_i, $2.to_i, $3.to_i)
1776
- else
1777
- raise(Gem::InvalidSpecificationException,
1778
- "invalid date format in specification: #{date.inspect}")
1779
- end
1780
- when Time, DateLike then
1781
- Time.utc(date.year, date.month, date.day)
1782
- else
1783
- TODAY
1770
+ when String then
1771
+ if DateTimeFormat =~ date
1772
+ Time.utc($1.to_i, $2.to_i, $3.to_i)
1773
+ else
1774
+ raise(Gem::InvalidSpecificationException,
1775
+ "invalid date format in specification: #{date.inspect}")
1776
+ end
1777
+ when Time, DateLike then
1778
+ Time.utc(date.year, date.month, date.day)
1779
+ else
1780
+ TODAY
1784
1781
  end
1785
1782
  end
1786
1783
 
@@ -1830,7 +1827,7 @@ class Gem::Specification < Gem::BasicSpecification
1830
1827
  Gem::Specification.each do |spec|
1831
1828
  deps = check_dev ? spec.dependencies : spec.runtime_dependencies
1832
1829
  deps.each do |dep|
1833
- next unless self.satisfies_requirement?(dep)
1830
+ next unless satisfies_requirement?(dep)
1834
1831
  sats = []
1835
1832
  find_all_satisfiers(dep) do |sat|
1836
1833
  sats << sat
@@ -1845,7 +1842,7 @@ class Gem::Specification < Gem::BasicSpecification
1845
1842
  # Returns all specs that matches this spec's runtime dependencies.
1846
1843
 
1847
1844
  def dependent_specs
1848
- runtime_dependencies.map {|dep| dep.to_specs }.flatten
1845
+ runtime_dependencies.map(&:to_specs).flatten
1849
1846
  end
1850
1847
 
1851
1848
  ##
@@ -1886,12 +1883,12 @@ class Gem::Specification < Gem::BasicSpecification
1886
1883
  coder.add "name", @name
1887
1884
  coder.add "version", @version
1888
1885
  platform = case @original_platform
1889
- when nil, "" then
1890
- "ruby"
1891
- when String then
1892
- @original_platform
1893
- else
1894
- @original_platform.to_s
1886
+ when nil, "" then
1887
+ "ruby"
1888
+ when String then
1889
+ @original_platform
1890
+ else
1891
+ @original_platform.to_s
1895
1892
  end
1896
1893
  coder.add "platform", platform
1897
1894
 
@@ -2014,7 +2011,7 @@ class Gem::Specification < Gem::BasicSpecification
2014
2011
  end
2015
2012
  rubygems_deprecate :has_rdoc=
2016
2013
 
2017
- alias :has_rdoc? :has_rdoc # :nodoc:
2014
+ alias_method :has_rdoc?, :has_rdoc # :nodoc:
2018
2015
  rubygems_deprecate :has_rdoc?
2019
2016
 
2020
2017
  ##
@@ -2025,7 +2022,7 @@ class Gem::Specification < Gem::BasicSpecification
2025
2022
  end
2026
2023
 
2027
2024
  # :stopdoc:
2028
- alias has_test_suite? has_unit_tests?
2025
+ alias_method :has_test_suite?, :has_unit_tests?
2029
2026
  # :startdoc:
2030
2027
 
2031
2028
  def hash # :nodoc:
@@ -2272,8 +2269,8 @@ class Gem::Specification < Gem::BasicSpecification
2272
2269
  attributes.unshift :name
2273
2270
 
2274
2271
  attributes.each do |attr_name|
2275
- current_value = self.send attr_name
2276
- current_value = current_value.sort if %i[files test_files].include? attr_name
2272
+ current_value = send attr_name
2273
+ current_value = current_value.sort if [:files, :test_files].include? attr_name
2277
2274
  next unless current_value != default_value(attr_name) ||
2278
2275
  self.class.required_attribute?(attr_name)
2279
2276
 
@@ -2297,7 +2294,7 @@ class Gem::Specification < Gem::BasicSpecification
2297
2294
  # that is already loaded (+other+)
2298
2295
 
2299
2296
  def check_version_conflict(other) # :nodoc:
2300
- return if self.version == other.version
2297
+ return if version == other.version
2301
2298
 
2302
2299
  # This gem is already loaded. If the currently loaded gem is not in the
2303
2300
  # list of candidate gems, then we have a version conflict.
@@ -2305,7 +2302,7 @@ class Gem::Specification < Gem::BasicSpecification
2305
2302
  msg = "can't activate #{full_name}, already activated #{other.full_name}"
2306
2303
 
2307
2304
  e = Gem::LoadError.new msg
2308
- e.name = self.name
2305
+ e.name = name
2309
2306
 
2310
2307
  raise e
2311
2308
  end
@@ -2397,7 +2394,7 @@ class Gem::Specification < Gem::BasicSpecification
2397
2394
  # True if this gem has the same attributes as +other+.
2398
2395
 
2399
2396
  def same_attributes?(spec)
2400
- @@attributes.all? {|name, default| self.send(name) == spec.send(name) }
2397
+ @@attributes.all? {|name, _default| send(name) == spec.send(name) }
2401
2398
  end
2402
2399
 
2403
2400
  private :same_attributes?
@@ -2534,7 +2531,7 @@ class Gem::Specification < Gem::BasicSpecification
2534
2531
 
2535
2532
  @@attributes.each do |attr_name|
2536
2533
  next if handled.include? attr_name
2537
- current_value = self.send(attr_name)
2534
+ current_value = send(attr_name)
2538
2535
  if current_value != default_value(attr_name) || self.class.required_attribute?(attr_name)
2539
2536
  result << " s.#{attr_name} = #{ruby_code current_value}"
2540
2537
  end
@@ -2617,10 +2614,9 @@ class Gem::Specification < Gem::BasicSpecification
2617
2614
  def traverse(trail = [], visited = {}, &block)
2618
2615
  trail.push(self)
2619
2616
  begin
2620
- dependencies.each do |dep|
2621
- next unless dep.runtime?
2617
+ runtime_dependencies.each do |dep|
2622
2618
  dep.matching_specs(true).each do |dep_spec|
2623
- next if visited.has_key?(dep_spec)
2619
+ next if visited.key?(dep_spec)
2624
2620
  visited[dep_spec] = true
2625
2621
  trail.push(dep_spec)
2626
2622
  begin
@@ -2678,22 +2674,13 @@ class Gem::Specification < Gem::BasicSpecification
2678
2674
  rubygems_deprecate :validate_permissions
2679
2675
 
2680
2676
  ##
2681
- # Set the version to +version+, potentially also setting
2682
- # required_rubygems_version if +version+ indicates it is a
2683
- # prerelease.
2677
+ # Set the version to +version+.
2684
2678
 
2685
2679
  def version=(version)
2686
2680
  @version = Gem::Version.create(version)
2687
2681
  return if @version.nil?
2688
2682
 
2689
- # skip to set required_ruby_version when pre-released rubygems.
2690
- # It caused to raise CircularDependencyError
2691
- if @version.prerelease? && (@name.nil? || @name.strip != "rubygems")
2692
- self.required_rubygems_version = "> 1.3.1"
2693
- end
2694
2683
  invalidate_memoized_attributes
2695
-
2696
- @version
2697
2684
  end
2698
2685
 
2699
2686
  def stubbed?
@@ -2705,9 +2692,9 @@ class Gem::Specification < Gem::BasicSpecification
2705
2692
  case ivar
2706
2693
  when "date"
2707
2694
  # Force Date to go through the extra coerce logic in date=
2708
- self.date = val.tap(&Gem::UNTAINT)
2695
+ self.date = val
2709
2696
  else
2710
- instance_variable_set "@#{ivar}", val.tap(&Gem::UNTAINT)
2697
+ instance_variable_set "@#{ivar}", val
2711
2698
  end
2712
2699
  end
2713
2700
 
@@ -2724,11 +2711,11 @@ class Gem::Specification < Gem::BasicSpecification
2724
2711
  end
2725
2712
 
2726
2713
  nil_attributes.each do |attribute|
2727
- default = self.default_value attribute
2714
+ default = default_value attribute
2728
2715
 
2729
2716
  value = case default
2730
- when Time, Numeric, Symbol, true, false, nil then default
2731
- else default.dup
2717
+ when Time, Numeric, Symbol, true, false, nil then default
2718
+ else default.dup
2732
2719
  end
2733
2720
 
2734
2721
  instance_variable_set "@#{attribute}", value