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
@@ -5,7 +5,7 @@ require_relative "../command"
5
5
  class Gem::Commands::WhichCommand < Gem::Command
6
6
  def initialize
7
7
  super "which", "Find the location of a library file you can require",
8
- :search_gems_first => false, :show_all => false
8
+ search_gems_first: false, show_all: false
9
9
 
10
10
  add_option "-a", "--[no-]all", "show all matching files" do |show_all, options|
11
11
  options[:show_all] = show_all
@@ -62,7 +62,7 @@ data you will need to change them immediately and yank your gem.
62
62
  end
63
63
 
64
64
  def yank_gem(version, platform)
65
- say "Yanking gem from #{self.host}..."
65
+ say "Yanking gem from #{host}..."
66
66
  args = [:delete, version, platform, "api/v1/gems/yank"]
67
67
  response = yank_api_request(*args)
68
68
 
@@ -26,17 +26,16 @@ module Gem
26
26
  rubylibdir
27
27
  ].freeze
28
28
 
29
- unless defined?(ConfigMap)
29
+ if defined?(ConfigMap)
30
+ RbConfigPriorities.each do |key|
31
+ ConfigMap[key.to_sym] = RbConfig::CONFIG[key]
32
+ end
33
+ else
30
34
  ##
31
35
  # Configuration settings from ::RbConfig
32
36
  ConfigMap = Hash.new do |cm, key|
33
37
  cm[key] = RbConfig::CONFIG[key.to_s]
34
38
  end
35
39
  deprecate_constant(:ConfigMap)
36
- else
37
- RbConfigPriorities.each do |key|
38
- ConfigMap[key.to_sym] = RbConfig::CONFIG[key]
39
- end
40
40
  end
41
-
42
41
  end
@@ -188,10 +188,10 @@ class Gem::ConfigFile
188
188
  operating_system_config = Marshal.load Marshal.dump(OPERATING_SYSTEM_DEFAULTS)
189
189
  platform_config = Marshal.load Marshal.dump(PLATFORM_DEFAULTS)
190
190
  system_config = load_file SYSTEM_WIDE_CONFIG_FILE
191
- user_config = load_file config_file_name.dup.tap(&Gem::UNTAINT)
191
+ user_config = load_file config_file_name
192
192
 
193
- environment_config = (ENV["GEMRC"] || "")
194
- .split(File::PATH_SEPARATOR).inject({}) do |result, file|
193
+ environment_config = (ENV["GEMRC"] || "").
194
+ split(File::PATH_SEPARATOR).inject({}) do |result, file|
195
195
  result.merge load_file file
196
196
  end
197
197
 
@@ -473,7 +473,7 @@ if you believe they were disclosed to a third party.
473
473
  yaml_hash[:ssl_client_cert] =
474
474
  @hash[:ssl_client_cert] if @hash.key? :ssl_client_cert
475
475
 
476
- keys = yaml_hash.keys.map {|key| key.to_s }
476
+ keys = yaml_hash.keys.map(&:to_s)
477
477
  keys << "debug"
478
478
  re = Regexp.union(*keys)
479
479
 
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Kernel
4
-
5
4
  ##
6
5
  # Use Kernel#gem to activate a specific version of +gem_name+.
7
6
  #
@@ -66,5 +65,4 @@ module Kernel
66
65
  end
67
66
 
68
67
  private :gem
69
-
70
68
  end
@@ -9,13 +9,12 @@
9
9
  require "monitor"
10
10
 
11
11
  module Kernel
12
-
13
12
  RUBYGEMS_ACTIVATION_MONITOR = Monitor.new # :nodoc:
14
13
 
15
14
  # Make sure we have a reference to Ruby's original Kernel#require
16
15
  unless defined?(gem_original_require)
17
16
  # :stopdoc:
18
- alias gem_original_require require
17
+ alias_method :gem_original_require, :require
19
18
  private :gem_original_require
20
19
  # :startdoc:
21
20
  end
@@ -37,53 +36,36 @@ module Kernel
37
36
  def require(path) # :doc:
38
37
  return gem_original_require(path) unless Gem.discover_gems_on_require
39
38
 
40
- begin
41
- RUBYGEMS_ACTIVATION_MONITOR.enter
42
-
43
- path = path.to_path if path.respond_to? :to_path
39
+ RUBYGEMS_ACTIVATION_MONITOR.synchronize do
40
+ path = File.path(path)
44
41
 
45
42
  if spec = Gem.find_unresolved_default_spec(path)
46
43
  # Ensure -I beats a default gem
47
44
  resolved_path = begin
48
45
  rp = nil
49
46
  load_path_check_index = Gem.load_path_insert_index - Gem.activated_gem_paths
50
- Gem.suffixes.each do |s|
51
- $LOAD_PATH[0...load_path_check_index].each do |lp|
52
- safe_lp = lp.dup.tap(&Gem::UNTAINT)
53
- begin
54
- if File.symlink? safe_lp # for backward compatibility
55
- next
56
- end
57
- rescue SecurityError
58
- RUBYGEMS_ACTIVATION_MONITOR.exit
59
- raise
47
+ Gem.suffixes.find do |s|
48
+ $LOAD_PATH[0...load_path_check_index].find do |lp|
49
+ if File.symlink? lp # for backward compatibility
50
+ next
60
51
  end
61
52
 
62
- full_path = File.expand_path(File.join(safe_lp, "#{path}#{s}"))
63
- if File.file?(full_path)
64
- rp = full_path
65
- break
66
- end
53
+ full_path = File.expand_path(File.join(lp, "#{path}#{s}"))
54
+ rp = full_path if File.file?(full_path)
67
55
  end
68
- break if rp
69
56
  end
70
57
  rp
71
58
  end
72
59
 
73
- begin
74
- Kernel.send(:gem, spec.name, Gem::Requirement.default_prerelease)
75
- rescue Exception
76
- RUBYGEMS_ACTIVATION_MONITOR.exit
77
- raise
78
- end unless resolved_path
60
+ Kernel.send(:gem, spec.name, Gem::Requirement.default_prerelease) unless
61
+ resolved_path
79
62
  end
80
63
 
81
64
  # If there are no unresolved deps, then we can use just try
82
65
  # normal require handle loading a gem from the rescue below.
83
66
 
84
67
  if Gem::Specification.unresolved_deps.empty?
85
- RUBYGEMS_ACTIVATION_MONITOR.exit
86
- return gem_original_require(path)
68
+ next
87
69
  end
88
70
 
89
71
  # If +path+ is for a gem that has already been loaded, don't
@@ -93,8 +75,7 @@ module Kernel
93
75
  # TODO request access to the C implementation of this to speed up RubyGems
94
76
 
95
77
  if Gem::Specification.find_active_stub_by_path(path)
96
- RUBYGEMS_ACTIVATION_MONITOR.exit
97
- return gem_original_require(path)
78
+ next
98
79
  end
99
80
 
100
81
  # Attempt to find +path+ in any unresolved gems...
@@ -114,9 +95,7 @@ module Kernel
114
95
  if found_specs.empty?
115
96
  found_specs = Gem::Specification.find_in_unresolved_tree path
116
97
 
117
- found_specs.each do |found_spec|
118
- found_spec.activate
119
- end
98
+ found_specs.each(&:activate)
120
99
 
121
100
  # We found +path+ directly in an unresolved gem. Now we figure out, of
122
101
  # the possible found specs, which one we should activate.
@@ -127,7 +106,6 @@ module Kernel
127
106
  names = found_specs.map(&:name).uniq
128
107
 
129
108
  if names.size > 1
130
- RUBYGEMS_ACTIVATION_MONITOR.exit
131
109
  raise Gem::LoadError, "#{path} found in multiple gems: #{names.join ", "}"
132
110
  end
133
111
 
@@ -138,26 +116,20 @@ module Kernel
138
116
  unless valid
139
117
  le = Gem::LoadError.new "unable to find a version of '#{names.first}' to activate"
140
118
  le.name = names.first
141
- RUBYGEMS_ACTIVATION_MONITOR.exit
142
119
  raise le
143
120
  end
144
121
 
145
122
  valid.activate
146
123
  end
124
+ end
147
125
 
148
- RUBYGEMS_ACTIVATION_MONITOR.exit
126
+ begin
149
127
  gem_original_require(path)
150
128
  rescue LoadError => load_error
151
- if load_error.path == path
152
- RUBYGEMS_ACTIVATION_MONITOR.enter
153
-
154
- begin
155
- require_again = Gem.try_activate(path)
156
- ensure
157
- RUBYGEMS_ACTIVATION_MONITOR.exit
158
- end
129
+ if load_error.path == path &&
130
+ RUBYGEMS_ACTIVATION_MONITOR.synchronize { Gem.try_activate(path) }
159
131
 
160
- return gem_original_require(path) if require_again
132
+ return gem_original_require(path)
161
133
  end
162
134
 
163
135
  raise load_error
@@ -165,5 +137,4 @@ module Kernel
165
137
  end
166
138
 
167
139
  private :require
168
-
169
140
  end
@@ -36,7 +36,7 @@ module Kernel
36
36
  start += 1
37
37
 
38
38
  next unless path = loc.path
39
- unless path.start_with?(rubygems_path) || path.start_with?("<internal:")
39
+ unless path.start_with?(rubygems_path, "<internal:")
40
40
  # Non-rubygems frames
41
41
  uplevel -= 1
42
42
  end
@@ -19,7 +19,7 @@ module CoreExtensions
19
19
  cond_var = Thread::ConditionVariable.new
20
20
 
21
21
  Addrinfo.foreach(host, serv, nil, :STREAM) do |addr|
22
- Thread.report_on_exception = false if defined? Thread.report_on_exception = ()
22
+ Thread.report_on_exception = false
23
23
 
24
24
  threads << Thread.new(addr) do
25
25
  # give head start to ipv6 addresses
@@ -94,7 +94,7 @@ module Gem
94
94
  # The home directory for the user.
95
95
 
96
96
  def self.user_home
97
- @user_home ||= find_home.tap(&Gem::UNTAINT)
97
+ @user_home ||= find_home
98
98
  end
99
99
 
100
100
  ##
@@ -131,14 +131,14 @@ module Gem
131
131
  # The path to standard location of the user's .gemrc file.
132
132
 
133
133
  def self.config_file
134
- @config_file ||= find_config_file.tap(&Gem::UNTAINT)
134
+ @config_file ||= find_config_file
135
135
  end
136
136
 
137
137
  ##
138
138
  # The path to standard location of the user's state file.
139
139
 
140
140
  def self.state_file
141
- @state_file ||= File.join(Gem.state_home, "gem", "last_update_check").tap(&Gem::UNTAINT)
141
+ @state_file ||= File.join(Gem.state_home, "gem", "last_update_check")
142
142
  end
143
143
 
144
144
  ##
@@ -235,6 +235,18 @@ module Gem
235
235
  default_cert_path
236
236
  end
237
237
 
238
+ ##
239
+ # Enables automatic installation into user directory
240
+
241
+ def self.default_user_install # :nodoc:
242
+ if !ENV.key?("GEM_HOME") && (File.exist?(Gem.dir) && !File.writable?(Gem.dir))
243
+ Gem.ui.say "Defaulting to user installation because default installation directory (#{Gem.dir}) is not writable."
244
+ return true
245
+ end
246
+
247
+ false
248
+ end
249
+
238
250
  ##
239
251
  # Install extensions into lib as well as into the extension directory.
240
252
 
@@ -46,10 +46,10 @@ class Gem::Dependency
46
46
  end
47
47
 
48
48
  type = Symbol === requirements.last ? requirements.pop : :runtime
49
- requirements = requirements.first if 1 == requirements.length # unpack
49
+ requirements = requirements.first if requirements.length == 1 # unpack
50
50
 
51
51
  unless TYPES.include? type
52
- raise ArgumentError, "Valid types are #{TYPES.inspect}, " +
52
+ raise ArgumentError, "Valid types are #{TYPES.inspect}, " \
53
53
  "not #{type.inspect}"
54
54
  end
55
55
 
@@ -74,11 +74,9 @@ class Gem::Dependency
74
74
 
75
75
  def inspect # :nodoc:
76
76
  if prerelease?
77
- "<%s type=%p name=%p requirements=%p prerelease=ok>" %
78
- [self.class, self.type, self.name, requirement.to_s]
77
+ format("<%s type=%p name=%p requirements=%p prerelease=ok>", self.class, type, name, requirement.to_s)
79
78
  else
80
- "<%s type=%p name=%p requirements=%p>" %
81
- [self.class, self.type, self.name, requirement.to_s]
79
+ format("<%s type=%p name=%p requirements=%p>", self.class, type, name, requirement.to_s)
82
80
  end
83
81
  end
84
82
 
@@ -169,16 +167,16 @@ class Gem::Dependency
169
167
 
170
168
  def ==(other) # :nodoc:
171
169
  Gem::Dependency === other &&
172
- self.name == other.name &&
173
- self.type == other.type &&
174
- self.requirement == other.requirement
170
+ name == other.name &&
171
+ type == other.type &&
172
+ requirement == other.requirement
175
173
  end
176
174
 
177
175
  ##
178
176
  # Dependencies are ordered by name.
179
177
 
180
178
  def <=>(other)
181
- self.name <=> other.name
179
+ name <=> other.name
182
180
  end
183
181
 
184
182
  ##
@@ -205,7 +203,7 @@ class Gem::Dependency
205
203
  requirement.satisfied_by? version
206
204
  end
207
205
 
208
- alias === =~
206
+ alias_method :===, :=~
209
207
 
210
208
  ##
211
209
  # :call-seq:
@@ -263,7 +261,7 @@ class Gem::Dependency
263
261
  end
264
262
 
265
263
  default = Gem::Requirement.default
266
- self_req = self.requirement
264
+ self_req = requirement
267
265
  other_req = other.requirement
268
266
 
269
267
  return self.class.new name, self_req if other_req == default
@@ -324,9 +322,9 @@ class Gem::Dependency
324
322
  end
325
323
 
326
324
  def to_spec
327
- matches = self.to_specs.compact
325
+ matches = to_specs.compact
328
326
 
329
- active = matches.find {|spec| spec.activated? }
327
+ active = matches.find(&:activated?)
330
328
  return active if active
331
329
 
332
330
  unless prerelease?
@@ -17,18 +17,18 @@ class Gem::DependencyInstaller
17
17
  extend Gem::Deprecate
18
18
 
19
19
  DEFAULT_OPTIONS = { # :nodoc:
20
- :env_shebang => false,
21
- :document => %w[ri],
22
- :domain => :both, # HACK: dup
23
- :force => false,
24
- :format_executable => false, # HACK: dup
25
- :ignore_dependencies => false,
26
- :prerelease => false,
27
- :security_policy => nil, # HACK: NoSecurity requires OpenSSL. AlmostNo? Low?
28
- :wrappers => true,
29
- :build_args => nil,
30
- :build_docs_in_background => false,
31
- :install_as_default => false,
20
+ env_shebang: false,
21
+ document: %w[ri],
22
+ domain: :both, # HACK: dup
23
+ force: false,
24
+ format_executable: false, # HACK: dup
25
+ ignore_dependencies: false,
26
+ prerelease: false,
27
+ security_policy: nil, # HACK: NoSecurity requires OpenSSL. AlmostNo? Low?
28
+ wrappers: true,
29
+ build_args: nil,
30
+ build_docs_in_background: false,
31
+ install_as_default: false,
32
32
  }.freeze
33
33
 
34
34
  ##
@@ -66,7 +66,7 @@ class Gem::DependencyInstaller
66
66
  # :build_args:: See Gem::Installer::new
67
67
 
68
68
  def initialize(options = {})
69
- @only_install_dir = !!options[:install_dir]
69
+ @only_install_dir = !options[:install_dir].nil?
70
70
  @install_dir = options[:install_dir] || Gem.dir
71
71
  @build_root = options[:build_root]
72
72
 
@@ -177,7 +177,6 @@ class Gem::DependencyInstaller
177
177
  end
178
178
 
179
179
  set << specs
180
-
181
180
  rescue Gem::RemoteFetcher::FetchError => e
182
181
  # FIX if there is a problem talking to the network, we either need to always tell
183
182
  # the user (no really_verbose) or fail hard, not silently tell them that we just
@@ -229,22 +228,22 @@ class Gem::DependencyInstaller
229
228
  @installed_gems = []
230
229
 
231
230
  options = {
232
- :bin_dir => @bin_dir,
233
- :build_args => @build_args,
234
- :document => @document,
235
- :env_shebang => @env_shebang,
236
- :force => @force,
237
- :format_executable => @format_executable,
238
- :ignore_dependencies => @ignore_dependencies,
239
- :prerelease => @prerelease,
240
- :security_policy => @security_policy,
241
- :user_install => @user_install,
242
- :wrappers => @wrappers,
243
- :build_root => @build_root,
244
- :install_as_default => @install_as_default,
245
- :dir_mode => @dir_mode,
246
- :data_mode => @data_mode,
247
- :prog_mode => @prog_mode,
231
+ bin_dir: @bin_dir,
232
+ build_args: @build_args,
233
+ document: @document,
234
+ env_shebang: @env_shebang,
235
+ force: @force,
236
+ format_executable: @format_executable,
237
+ ignore_dependencies: @ignore_dependencies,
238
+ prerelease: @prerelease,
239
+ security_policy: @security_policy,
240
+ user_install: @user_install,
241
+ wrappers: @wrappers,
242
+ build_root: @build_root,
243
+ install_as_default: @install_as_default,
244
+ dir_mode: @dir_mode,
245
+ data_mode: @data_mode,
246
+ prog_mode: @prog_mode,
248
247
  }
249
248
  options[:install_dir] = @install_dir if @only_install_dir
250
249
 
@@ -105,7 +105,7 @@ class Gem::DependencyList
105
105
  end
106
106
 
107
107
  def inspect # :nodoc:
108
- "%s %p>" % [super[0..-2], map {|s| s.full_name }]
108
+ format("%s %p>", super[0..-2], map(&:full_name))
109
109
  end
110
110
 
111
111
  ##
@@ -70,7 +70,6 @@
70
70
  # end
71
71
 
72
72
  module Gem::Deprecate
73
-
74
73
  def self.skip # :nodoc:
75
74
  @skip ||= false
76
75
  end
@@ -105,12 +104,13 @@ module Gem::Deprecate
105
104
  old = "_deprecated_#{name}"
106
105
  alias_method old, name
107
106
  define_method name do |*args, &block|
108
- klass = self.is_a? Module
107
+ klass = is_a? Module
109
108
  target = klass ? "#{self}." : "#{self.class}#"
110
- msg = [ "NOTE: #{target}#{name} is deprecated",
111
- repl == :none ? " with no replacement" : "; use #{repl} instead",
112
- ". It will be removed on or after %4d-%02d." % [year, month],
113
- "\n#{target}#{name} called from #{Gem.location_of_caller.join(":")}",
109
+ msg = [
110
+ "NOTE: #{target}#{name} is deprecated",
111
+ repl == :none ? " with no replacement" : "; use #{repl} instead",
112
+ format(". It will be removed on or after %4d-%02d.", year, month),
113
+ "\n#{target}#{name} called from #{Gem.location_of_caller.join(":")}",
114
114
  ]
115
115
  warn "#{msg.join}." unless Gem::Deprecate.skip
116
116
  send old, *args, &block
@@ -130,12 +130,13 @@ module Gem::Deprecate
130
130
  old = "_deprecated_#{name}"
131
131
  alias_method old, name
132
132
  define_method name do |*args, &block|
133
- klass = self.is_a? Module
133
+ klass = is_a? Module
134
134
  target = klass ? "#{self}." : "#{self.class}#"
135
- msg = [ "NOTE: #{target}#{name} is deprecated",
136
- replacement == :none ? " with no replacement" : "; use #{replacement} instead",
137
- ". It will be removed in Rubygems #{Gem::Deprecate.next_rubygems_major_version}",
138
- "\n#{target}#{name} called from #{Gem.location_of_caller.join(":")}",
135
+ msg = [
136
+ "NOTE: #{target}#{name} is deprecated",
137
+ replacement == :none ? " with no replacement" : "; use #{replacement} instead",
138
+ ". It will be removed in Rubygems #{Gem::Deprecate.next_rubygems_major_version}",
139
+ "\n#{target}#{name} called from #{Gem.location_of_caller.join(":")}",
139
140
  ]
140
141
  warn "#{msg.join}." unless Gem::Deprecate.skip
141
142
  send old, *args, &block
@@ -152,15 +153,15 @@ module Gem::Deprecate
152
153
  end
153
154
 
154
155
  define_method "deprecation_warning" do
155
- msg = [ "#{self.command} command is deprecated",
156
- ". It will be removed in Rubygems #{version}.\n",
156
+ msg = [
157
+ "#{command} command is deprecated",
158
+ ". It will be removed in Rubygems #{version}.\n",
157
159
  ]
158
160
 
159
- alert_warning "#{msg.join}" unless Gem::Deprecate.skip
161
+ alert_warning msg.join.to_s unless Gem::Deprecate.skip
160
162
  end
161
163
  end
162
164
  end
163
165
 
164
166
  module_function :rubygems_deprecate, :rubygems_deprecate_command, :skip_during
165
-
166
167
  end
@@ -53,7 +53,7 @@ class Gem::Doctor
53
53
  # Specs installed in this gem repository
54
54
 
55
55
  def installed_specs # :nodoc:
56
- @installed_specs ||= Gem::Specification.map {|s| s.full_name }
56
+ @installed_specs ||= Gem::Specification.map(&:full_name)
57
57
  end
58
58
 
59
59
  ##
@@ -75,7 +75,7 @@ class Gem::Doctor
75
75
  Gem.use_paths @gem_repository.to_s
76
76
 
77
77
  unless gem_repository?
78
- say "This directory does not appear to be a RubyGems repository, " +
78
+ say "This directory does not appear to be a RubyGems repository, " \
79
79
  "skipping"
80
80
  say
81
81
  return
@@ -104,7 +104,7 @@ class Gem::Doctor
104
104
  directory = File.join(@gem_repository, sub_directory)
105
105
 
106
106
  Dir.entries(directory).sort.each do |ent|
107
- next if ent == "." || ent == ".."
107
+ next if [".", ".."].include?(ent)
108
108
 
109
109
  child = File.join(directory, ent)
110
110
  next unless File.exist?(child)
@@ -112,8 +112,8 @@ class Gem::Doctor
112
112
  basename = File.basename(child, extension)
113
113
  next if installed_specs.include? basename
114
114
  next if /^rubygems-\d/.match?(basename)
115
- next if "specifications" == sub_directory && "default" == basename
116
- next if "plugins" == sub_directory && Gem.plugin_suffix_regexp =~ (basename)
115
+ next if sub_directory == "specifications" && basename == "default"
116
+ next if sub_directory == "plugins" && Gem.plugin_suffix_regexp =~ (basename)
117
117
 
118
118
  type = File.directory?(child) ? "directory" : "file"
119
119
 
@@ -134,11 +134,7 @@ module Gem
134
134
  ##
135
135
  # A wordy description of the error.
136
136
  def wordy
137
- "Found %s (%s), but was for platform%s %s" %
138
- [@name,
139
- @version,
140
- @platforms.size == 1 ? "" : "s",
141
- @platforms.join(" ,")]
137
+ format("Found %s (%s), but was for platform%s %s", @name, @version, @platforms.size == 1 ? "" : "s", @platforms.join(" ,"))
142
138
  end
143
139
  end
144
140
 
@@ -175,6 +171,6 @@ module Gem
175
171
  ##
176
172
  # The "exception" alias allows you to call raise on a SourceFetchProblem.
177
173
 
178
- alias exception error
174
+ alias_method :exception, :error
179
175
  end
180
176
  end
@@ -172,6 +172,7 @@ class Gem::ImpossibleDependenciesError < Gem::Exception
172
172
  end
173
173
 
174
174
  class Gem::InstallError < Gem::Exception; end
175
+
175
176
  class Gem::RuntimeRequirementNotMetError < Gem::InstallError
176
177
  attr_accessor :suggestion
177
178
  def message
@@ -231,7 +232,7 @@ class Gem::SystemExitException < SystemExit
231
232
  ##
232
233
  # The exit code for the process
233
234
 
234
- alias exit_code status
235
+ alias_method :exit_code, :status
235
236
 
236
237
  ##
237
238
  # Creates a new SystemExitException with the given +exit_code+
@@ -27,19 +27,17 @@ class Gem::Ext::Builder
27
27
  # try to find make program from Ruby configure arguments first
28
28
  RbConfig::CONFIG["configure_args"] =~ /with-make-prog\=(\w+)/
29
29
  make_program_name = ENV["MAKE"] || ENV["make"] || $1
30
- unless make_program_name
31
- make_program_name = (RUBY_PLATFORM.include?("mswin")) ? "nmake" : "make"
32
- end
30
+ make_program_name ||= RUBY_PLATFORM.include?("mswin") ? "nmake" : "make"
33
31
  make_program = Shellwords.split(make_program_name)
34
32
 
35
33
  # The installation of the bundled gems is failed when DESTDIR is empty in mswin platform.
36
- destdir = (/\bnmake/i !~ make_program_name || ENV["DESTDIR"] && ENV["DESTDIR"] != "") ? "DESTDIR=%s" % ENV["DESTDIR"] : ""
34
+ destdir = /\bnmake/i !~ make_program_name || ENV["DESTDIR"] && ENV["DESTDIR"] != "" ? format("DESTDIR=%s", ENV["DESTDIR"]) : ""
37
35
 
38
36
  env = [destdir]
39
37
 
40
38
  if sitedir
41
- env << "sitearchdir=%s" % sitedir
42
- env << "sitelibdir=%s" % sitedir
39
+ env << format("sitearchdir=%s", sitedir)
40
+ env << format("sitelibdir=%s", sitedir)
43
41
  end
44
42
 
45
43
  targets.each do |target|
@@ -90,13 +88,20 @@ class Gem::Ext::Builder
90
88
  # Set $SOURCE_DATE_EPOCH for the subprocess.
91
89
  build_env = { "SOURCE_DATE_EPOCH" => Gem.source_date_epoch_string }.merge(env)
92
90
  output, status = begin
93
- Open3.capture2e(build_env, *command, :chdir => dir)
91
+ Open3.popen2e(build_env, *command, chdir: dir) do |_stdin, stdouterr, wait_thread|
92
+ output = String.new
93
+ while line = stdouterr.gets
94
+ output << line
95
+ if verbose
96
+ print line
97
+ end
98
+ end
99
+ [output, wait_thread.value]
100
+ end
94
101
  rescue StandardError => error
95
102
  raise Gem::InstallError, "#{command_name || class_name} failed#{error.message}"
96
103
  end
97
- if verbose
98
- puts output
99
- else
104
+ unless verbose
100
105
  results << output
101
106
  end
102
107
  ensure