rubygems-update 3.1.1 → 3.2.0.rc.2

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 (518) hide show
  1. checksums.yaml +4 -4
  2. data/CODE_OF_CONDUCT.md +55 -19
  3. data/CONTRIBUTING.md +25 -11
  4. data/History.txt +389 -144
  5. data/Manifest.txt +37 -73
  6. data/POLICIES.md +2 -9
  7. data/README.md +5 -5
  8. data/Rakefile +47 -82
  9. data/bin/update_rubygems +2 -2
  10. data/bundler/CHANGELOG.md +1546 -1414
  11. data/bundler/README.md +6 -8
  12. data/bundler/UPGRADING.md +18 -32
  13. data/bundler/bundler.gemspec +3 -3
  14. data/bundler/exe/bundle +3 -0
  15. data/bundler/lib/bundler.rb +21 -7
  16. data/bundler/lib/bundler/build_metadata.rb +4 -12
  17. data/bundler/lib/bundler/cli.rb +54 -20
  18. data/bundler/lib/bundler/cli/add.rb +1 -1
  19. data/bundler/lib/bundler/cli/cache.rb +1 -7
  20. data/bundler/lib/bundler/cli/clean.rb +1 -1
  21. data/bundler/lib/bundler/cli/common.rb +14 -0
  22. data/bundler/lib/bundler/cli/console.rb +1 -1
  23. data/bundler/lib/bundler/cli/doctor.rb +1 -1
  24. data/bundler/lib/bundler/cli/exec.rb +4 -13
  25. data/bundler/lib/bundler/cli/fund.rb +36 -0
  26. data/bundler/lib/bundler/cli/gem.rb +84 -11
  27. data/bundler/lib/bundler/cli/info.rb +15 -4
  28. data/bundler/lib/bundler/cli/init.rb +2 -2
  29. data/bundler/lib/bundler/cli/inject.rb +1 -1
  30. data/bundler/lib/bundler/cli/install.rb +12 -18
  31. data/bundler/lib/bundler/cli/issue.rb +2 -2
  32. data/bundler/lib/bundler/cli/list.rb +12 -10
  33. data/bundler/lib/bundler/cli/outdated.rb +89 -66
  34. data/bundler/lib/bundler/cli/plugin.rb +10 -0
  35. data/bundler/lib/bundler/cli/pristine.rb +5 -0
  36. data/bundler/lib/bundler/cli/show.rb +1 -1
  37. data/bundler/lib/bundler/cli/update.rb +2 -0
  38. data/bundler/lib/bundler/compact_index_client.rb +1 -1
  39. data/bundler/lib/bundler/compact_index_client/cache.rb +1 -1
  40. data/bundler/lib/bundler/definition.rb +51 -60
  41. data/bundler/lib/bundler/dep_proxy.rb +1 -1
  42. data/bundler/lib/bundler/dependency.rb +0 -9
  43. data/bundler/lib/bundler/dsl.rb +5 -9
  44. data/bundler/lib/bundler/endpoint_specification.rb +1 -1
  45. data/bundler/lib/bundler/environment_preserver.rb +26 -2
  46. data/bundler/lib/bundler/errors.rb +1 -0
  47. data/bundler/lib/bundler/feature_flag.rb +0 -2
  48. data/bundler/lib/bundler/fetcher.rb +4 -3
  49. data/bundler/lib/bundler/fetcher/base.rb +1 -1
  50. data/bundler/lib/bundler/fetcher/compact_index.rb +1 -1
  51. data/bundler/lib/bundler/fetcher/downloader.rb +1 -1
  52. data/bundler/lib/bundler/fetcher/index.rb +1 -1
  53. data/bundler/lib/bundler/friendly_errors.rb +7 -13
  54. data/bundler/lib/bundler/gem_helper.rb +33 -19
  55. data/bundler/lib/bundler/gem_helpers.rb +6 -1
  56. data/bundler/lib/bundler/gem_version_promoter.rb +2 -2
  57. data/bundler/lib/bundler/graph.rb +1 -1
  58. data/bundler/lib/bundler/index.rb +1 -1
  59. data/bundler/lib/bundler/injector.rb +15 -4
  60. data/bundler/lib/bundler/inline.rb +2 -2
  61. data/bundler/lib/bundler/installer.rb +30 -29
  62. data/bundler/lib/bundler/installer/gem_installer.rb +3 -3
  63. data/bundler/lib/bundler/installer/parallel_installer.rb +10 -10
  64. data/bundler/lib/bundler/installer/standalone.rb +2 -2
  65. data/bundler/lib/bundler/lazy_specification.rb +19 -6
  66. data/bundler/lib/bundler/lockfile_generator.rb +1 -1
  67. data/bundler/lib/bundler/lockfile_parser.rb +1 -1
  68. data/bundler/lib/bundler/mirror.rb +2 -2
  69. data/bundler/lib/bundler/plugin.rb +30 -5
  70. data/bundler/lib/bundler/plugin/index.rb +10 -1
  71. data/bundler/lib/bundler/plugin/installer.rb +1 -1
  72. data/bundler/lib/bundler/plugin/installer/rubygems.rb +1 -1
  73. data/bundler/lib/bundler/plugin/source_list.rb +1 -1
  74. data/bundler/lib/bundler/psyched_yaml.rb +0 -15
  75. data/bundler/lib/bundler/remote_specification.rb +5 -2
  76. data/bundler/lib/bundler/resolver.rb +32 -9
  77. data/bundler/lib/bundler/resolver/spec_group.rb +27 -6
  78. data/bundler/lib/bundler/retry.rb +1 -1
  79. data/bundler/lib/bundler/ruby_version.rb +1 -1
  80. data/bundler/lib/bundler/rubygems_ext.rb +53 -9
  81. data/bundler/lib/bundler/rubygems_gem_installer.rb +3 -9
  82. data/bundler/lib/bundler/rubygems_integration.rb +31 -54
  83. data/bundler/lib/bundler/runtime.rb +4 -14
  84. data/bundler/lib/bundler/settings.rb +49 -45
  85. data/bundler/lib/bundler/setup.rb +5 -0
  86. data/bundler/lib/bundler/shared_helpers.rb +2 -2
  87. data/bundler/lib/bundler/similarity_detector.rb +1 -1
  88. data/bundler/lib/bundler/source.rb +1 -1
  89. data/bundler/lib/bundler/source/git.rb +5 -5
  90. data/bundler/lib/bundler/source/git/git_proxy.rb +56 -59
  91. data/bundler/lib/bundler/source/path.rb +7 -3
  92. data/bundler/lib/bundler/source/path/installer.rb +8 -10
  93. data/bundler/lib/bundler/source/rubygems.rb +13 -16
  94. data/bundler/lib/bundler/source/rubygems/remote.rb +1 -1
  95. data/bundler/lib/bundler/source_list.rb +2 -2
  96. data/bundler/lib/bundler/spec_set.rb +1 -1
  97. data/bundler/lib/bundler/stub_specification.rb +17 -5
  98. data/bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +57 -47
  99. data/bundler/lib/bundler/templates/newgem/Gemfile.tt +9 -1
  100. data/bundler/lib/bundler/templates/newgem/README.md.tt +1 -1
  101. data/bundler/lib/bundler/templates/newgem/Rakefile.tt +19 -5
  102. data/bundler/lib/bundler/templates/newgem/bin/console.tt +1 -0
  103. data/bundler/lib/bundler/templates/newgem/circleci/config.yml.tt +13 -0
  104. data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt +2 -0
  105. data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +18 -0
  106. data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +9 -0
  107. data/bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt +2 -0
  108. data/bundler/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +2 -0
  109. data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +8 -6
  110. data/bundler/lib/bundler/templates/newgem/rubocop.yml.tt +10 -0
  111. data/bundler/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +2 -0
  112. data/bundler/lib/bundler/templates/newgem/spec/spec_helper.rb.tt +2 -1
  113. data/bundler/lib/bundler/templates/newgem/test/{newgem_test.rb.tt → minitest/newgem_test.rb.tt} +2 -0
  114. data/bundler/lib/bundler/templates/newgem/test/{test_helper.rb.tt → minitest/test_helper.rb.tt} +2 -0
  115. data/bundler/lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt +15 -0
  116. data/bundler/lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt +6 -0
  117. data/bundler/lib/bundler/ui/shell.rb +5 -5
  118. data/bundler/lib/bundler/uri_credentials_filter.rb +1 -1
  119. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +79 -212
  120. data/bundler/lib/bundler/vendor/thor/lib/thor.rb +0 -7
  121. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +2 -1
  122. data/bundler/lib/bundler/vendor/thor/lib/thor/base.rb +9 -0
  123. data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
  124. data/bundler/lib/bundler/vendored_persistent.rb +0 -7
  125. data/bundler/lib/bundler/version.rb +1 -1
  126. data/bundler/lib/bundler/worker.rb +1 -1
  127. data/bundler/lib/bundler/yaml_serializer.rb +1 -1
  128. data/bundler/man/bundle-add.1 +1 -1
  129. data/bundler/man/{bundle-add.ronn → bundle-add.1.ronn} +0 -0
  130. data/bundler/man/bundle-binstubs.1 +5 -3
  131. data/bundler/man/{bundle-binstubs.ronn → bundle-binstubs.1.ronn} +2 -4
  132. data/bundler/man/bundle-cache.1 +1 -1
  133. data/bundler/man/{bundle-cache.ronn → bundle-cache.1.ronn} +0 -0
  134. data/bundler/man/bundle-check.1 +1 -1
  135. data/bundler/man/{bundle-check.ronn → bundle-check.1.ronn} +0 -0
  136. data/bundler/man/bundle-clean.1 +1 -1
  137. data/bundler/man/{bundle-clean.ronn → bundle-clean.1.ronn} +0 -0
  138. data/bundler/man/bundle-config.1 +16 -22
  139. data/bundler/man/{bundle-config.ronn → bundle-config.1.ronn} +19 -22
  140. data/bundler/man/bundle-doctor.1 +1 -1
  141. data/bundler/man/{bundle-doctor.ronn → bundle-doctor.1.ronn} +0 -0
  142. data/bundler/man/bundle-exec.1 +1 -1
  143. data/bundler/man/{bundle-exec.ronn → bundle-exec.1.ronn} +0 -0
  144. data/bundler/man/bundle-gem.1 +25 -3
  145. data/bundler/man/{bundle-gem.ronn → bundle-gem.1.ronn} +30 -7
  146. data/bundler/man/bundle-info.1 +1 -1
  147. data/bundler/man/{bundle-info.ronn → bundle-info.1.ronn} +0 -0
  148. data/bundler/man/bundle-init.1 +1 -1
  149. data/bundler/man/{bundle-init.ronn → bundle-init.1.ronn} +0 -0
  150. data/bundler/man/bundle-inject.1 +1 -1
  151. data/bundler/man/{bundle-inject.ronn → bundle-inject.1.ronn} +0 -0
  152. data/bundler/man/bundle-install.1 +29 -2
  153. data/bundler/man/{bundle-install.ronn → bundle-install.1.ronn} +24 -2
  154. data/bundler/man/bundle-list.1 +7 -7
  155. data/bundler/man/{bundle-list.ronn → bundle-list.1.ronn} +6 -6
  156. data/bundler/man/bundle-lock.1 +1 -1
  157. data/bundler/man/{bundle-lock.ronn → bundle-lock.1.ronn} +0 -0
  158. data/bundler/man/bundle-open.1 +1 -1
  159. data/bundler/man/{bundle-open.ronn → bundle-open.1.ronn} +0 -0
  160. data/bundler/man/bundle-outdated.1 +1 -1
  161. data/bundler/man/{bundle-outdated.ronn → bundle-outdated.1.ronn} +0 -0
  162. data/bundler/man/bundle-platform.1 +1 -1
  163. data/bundler/man/{bundle-platform.ronn → bundle-platform.1.ronn} +0 -0
  164. data/bundler/man/bundle-pristine.1 +1 -1
  165. data/bundler/man/{bundle-pristine.ronn → bundle-pristine.1.ronn} +0 -0
  166. data/bundler/man/bundle-remove.1 +1 -1
  167. data/bundler/man/{bundle-remove.ronn → bundle-remove.1.ronn} +0 -0
  168. data/bundler/man/bundle-show.1 +1 -1
  169. data/bundler/man/{bundle-show.ronn → bundle-show.1.ronn} +0 -0
  170. data/bundler/man/bundle-update.1 +1 -1
  171. data/bundler/man/{bundle-update.ronn → bundle-update.1.ronn} +0 -0
  172. data/bundler/man/bundle-viz.1 +1 -1
  173. data/bundler/man/{bundle-viz.ronn → bundle-viz.1.ronn} +0 -0
  174. data/bundler/man/bundle.1 +1 -1
  175. data/bundler/man/{bundle.ronn → bundle.1.ronn} +0 -0
  176. data/bundler/man/gemfile.5 +4 -4
  177. data/bundler/man/gemfile.5.ronn +4 -4
  178. data/lib/rubygems.rb +133 -186
  179. data/lib/rubygems/available_set.rb +4 -6
  180. data/lib/rubygems/basic_specification.rb +12 -10
  181. data/lib/rubygems/bundler_version_finder.rb +14 -9
  182. data/lib/rubygems/command.rb +17 -17
  183. data/lib/rubygems/command_manager.rb +4 -5
  184. data/lib/rubygems/commands/build_command.rb +4 -1
  185. data/lib/rubygems/commands/cert_command.rb +1 -9
  186. data/lib/rubygems/commands/check_command.rb +0 -2
  187. data/lib/rubygems/commands/cleanup_command.rb +11 -7
  188. data/lib/rubygems/commands/contents_command.rb +4 -6
  189. data/lib/rubygems/commands/dependency_command.rb +6 -8
  190. data/lib/rubygems/commands/environment_command.rb +1 -3
  191. data/lib/rubygems/commands/fetch_command.rb +2 -4
  192. data/lib/rubygems/commands/generate_index_command.rb +0 -2
  193. data/lib/rubygems/commands/help_command.rb +2 -4
  194. data/lib/rubygems/commands/info_command.rb +8 -5
  195. data/lib/rubygems/commands/install_command.rb +3 -5
  196. data/lib/rubygems/commands/list_command.rb +8 -7
  197. data/lib/rubygems/commands/lock_command.rb +1 -3
  198. data/lib/rubygems/commands/mirror_command.rb +0 -2
  199. data/lib/rubygems/commands/open_command.rb +0 -4
  200. data/lib/rubygems/commands/outdated_command.rb +0 -2
  201. data/lib/rubygems/commands/owner_command.rb +0 -2
  202. data/lib/rubygems/commands/pristine_command.rb +10 -4
  203. data/lib/rubygems/commands/push_command.rb +4 -44
  204. data/lib/rubygems/commands/query_command.rb +6 -353
  205. data/lib/rubygems/commands/rdoc_command.rb +0 -2
  206. data/lib/rubygems/commands/search_command.rb +7 -7
  207. data/lib/rubygems/commands/server_command.rb +0 -2
  208. data/lib/rubygems/commands/setup_command.rb +156 -48
  209. data/lib/rubygems/commands/signin_command.rb +0 -2
  210. data/lib/rubygems/commands/signout_command.rb +0 -2
  211. data/lib/rubygems/commands/sources_command.rb +3 -5
  212. data/lib/rubygems/commands/specification_command.rb +2 -4
  213. data/lib/rubygems/commands/stale_command.rb +1 -3
  214. data/lib/rubygems/commands/uninstall_command.rb +2 -4
  215. data/lib/rubygems/commands/unpack_command.rb +1 -3
  216. data/lib/rubygems/commands/update_command.rb +59 -14
  217. data/lib/rubygems/commands/which_command.rb +0 -2
  218. data/lib/rubygems/commands/yank_command.rb +0 -2
  219. data/lib/rubygems/config_file.rb +11 -4
  220. data/lib/rubygems/core_ext/kernel_require.rb +26 -36
  221. data/lib/rubygems/core_ext/kernel_warn.rb +6 -6
  222. data/lib/rubygems/defaults.rb +99 -5
  223. data/lib/rubygems/dependency.rb +2 -7
  224. data/lib/rubygems/dependency_installer.rb +1 -75
  225. data/lib/rubygems/dependency_list.rb +7 -9
  226. data/lib/rubygems/deprecate.rb +46 -1
  227. data/lib/rubygems/doctor.rb +4 -4
  228. data/lib/rubygems/errors.rb +3 -14
  229. data/lib/rubygems/exceptions.rb +2 -33
  230. data/lib/rubygems/ext.rb +6 -6
  231. data/lib/rubygems/ext/build_error.rb +2 -0
  232. data/lib/rubygems/ext/builder.rb +4 -4
  233. data/lib/rubygems/ext/cmake_builder.rb +1 -3
  234. data/lib/rubygems/ext/configure_builder.rb +0 -2
  235. data/lib/rubygems/ext/ext_conf_builder.rb +6 -9
  236. data/lib/rubygems/ext/rake_builder.rb +0 -2
  237. data/lib/rubygems/gem_runner.rb +3 -10
  238. data/lib/rubygems/gemcutter_utilities.rb +1 -1
  239. data/lib/rubygems/indexer.rb +1 -21
  240. data/lib/rubygems/install_update_options.rb +5 -5
  241. data/lib/rubygems/installer.rb +47 -48
  242. data/lib/rubygems/installer_test_case.rb +18 -5
  243. data/lib/rubygems/installer_uninstaller_utils.rb +24 -0
  244. data/lib/rubygems/local_remote_options.rb +1 -1
  245. data/lib/rubygems/mock_gem_ui.rb +0 -6
  246. data/lib/rubygems/name_tuple.rb +2 -6
  247. data/lib/rubygems/openssl.rb +7 -0
  248. data/lib/rubygems/package.rb +11 -23
  249. data/lib/rubygems/package/digest_io.rb +0 -2
  250. data/lib/rubygems/package/file_source.rb +0 -2
  251. data/lib/rubygems/package/io_source.rb +0 -2
  252. data/lib/rubygems/package/old.rb +1 -3
  253. data/lib/rubygems/package/tar_header.rb +3 -5
  254. data/lib/rubygems/package/tar_reader.rb +0 -3
  255. data/lib/rubygems/package/tar_reader/entry.rb +0 -3
  256. data/lib/rubygems/package/tar_test_case.rb +1 -3
  257. data/lib/rubygems/package/tar_writer.rb +2 -12
  258. data/lib/rubygems/package_task.rb +1 -7
  259. data/lib/rubygems/path_support.rb +1 -3
  260. data/lib/rubygems/platform.rb +3 -5
  261. data/lib/rubygems/psych_tree.rb +0 -2
  262. data/lib/rubygems/query_utils.rb +362 -0
  263. data/lib/rubygems/rdoc.rb +0 -12
  264. data/lib/rubygems/remote_fetcher.rb +9 -25
  265. data/lib/rubygems/request.rb +1 -9
  266. data/lib/rubygems/request/connection_pools.rb +1 -5
  267. data/lib/rubygems/request/http_pool.rb +0 -2
  268. data/lib/rubygems/request/https_pool.rb +0 -2
  269. data/lib/rubygems/request_set.rb +5 -7
  270. data/lib/rubygems/request_set/gem_dependency_api.rb +2 -4
  271. data/lib/rubygems/request_set/lockfile.rb +8 -12
  272. data/lib/rubygems/request_set/lockfile/parser.rb +0 -2
  273. data/lib/rubygems/request_set/lockfile/tokenizer.rb +1 -3
  274. data/lib/rubygems/requirement.rb +20 -21
  275. data/lib/rubygems/resolver.rb +7 -10
  276. data/lib/rubygems/resolver/activation_request.rb +0 -2
  277. data/lib/rubygems/resolver/api_set.rb +4 -6
  278. data/lib/rubygems/resolver/api_specification.rb +16 -7
  279. data/lib/rubygems/resolver/best_set.rb +0 -2
  280. data/lib/rubygems/resolver/composed_set.rb +3 -5
  281. data/lib/rubygems/resolver/conflict.rb +1 -3
  282. data/lib/rubygems/resolver/current_set.rb +0 -2
  283. data/lib/rubygems/resolver/dependency_request.rb +0 -2
  284. data/lib/rubygems/resolver/git_set.rb +0 -2
  285. data/lib/rubygems/resolver/git_specification.rb +0 -2
  286. data/lib/rubygems/resolver/index_set.rb +1 -3
  287. data/lib/rubygems/resolver/index_specification.rb +0 -2
  288. data/lib/rubygems/resolver/installed_specification.rb +0 -2
  289. data/lib/rubygems/resolver/installer_set.rb +3 -5
  290. data/lib/rubygems/resolver/local_specification.rb +0 -2
  291. data/lib/rubygems/resolver/lock_set.rb +1 -3
  292. data/lib/rubygems/resolver/lock_specification.rb +0 -2
  293. data/lib/rubygems/resolver/requirement_list.rb +0 -2
  294. data/lib/rubygems/resolver/set.rb +0 -2
  295. data/lib/rubygems/resolver/source_set.rb +0 -2
  296. data/lib/rubygems/resolver/spec_specification.rb +0 -2
  297. data/lib/rubygems/resolver/specification.rb +0 -2
  298. data/lib/rubygems/resolver/stats.rb +0 -2
  299. data/lib/rubygems/resolver/vendor_set.rb +0 -2
  300. data/lib/rubygems/resolver/vendor_specification.rb +0 -2
  301. data/lib/rubygems/s3_uri_signer.rb +1 -7
  302. data/lib/rubygems/safe_yaml.rb +4 -4
  303. data/lib/rubygems/security.rb +26 -32
  304. data/lib/rubygems/security/policy.rb +3 -7
  305. data/lib/rubygems/security/signer.rb +4 -6
  306. data/lib/rubygems/security/trust_dir.rb +1 -3
  307. data/lib/rubygems/server.rb +9 -11
  308. data/lib/rubygems/source.rb +4 -4
  309. data/lib/rubygems/source/git.rb +7 -8
  310. data/lib/rubygems/source/installed.rb +0 -2
  311. data/lib/rubygems/source/local.rb +2 -4
  312. data/lib/rubygems/source/lock.rb +0 -2
  313. data/lib/rubygems/source/specific_file.rb +0 -2
  314. data/lib/rubygems/source/vendor.rb +0 -2
  315. data/lib/rubygems/source_list.rb +6 -7
  316. data/lib/rubygems/spec_fetcher.rb +18 -17
  317. data/lib/rubygems/specification.rb +107 -120
  318. data/lib/rubygems/specification_policy.rb +88 -30
  319. data/lib/rubygems/stub_specification.rb +0 -4
  320. data/lib/rubygems/syck_hack.rb +0 -2
  321. data/lib/rubygems/test_case.rb +122 -92
  322. data/lib/rubygems/test_utilities.rb +6 -14
  323. data/lib/rubygems/uninstaller.rb +35 -16
  324. data/lib/rubygems/uri_formatter.rb +0 -2
  325. data/lib/rubygems/uri_parser.rb +0 -2
  326. data/lib/rubygems/user_interaction.rb +1 -26
  327. data/lib/rubygems/util.rb +15 -3
  328. data/lib/rubygems/util/licenses.rb +4 -6
  329. data/lib/rubygems/util/list.rb +0 -2
  330. data/lib/rubygems/validator.rb +1 -3
  331. data/lib/rubygems/version.rb +5 -7
  332. data/rubygems-update.gemspec +2 -2
  333. data/setup.rb +2 -7
  334. data/test/rubygems/plugin/load/rubygems_plugin.rb +0 -2
  335. data/test/rubygems/rubygems/commands/crash_command.rb +0 -2
  336. data/test/rubygems/rubygems_plugin.rb +0 -2
  337. data/test/rubygems/specifications/bar-0.0.2.gemspec +0 -2
  338. data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +12 -0
  339. data/test/rubygems/test_bundled_ca.rb +38 -45
  340. data/test/rubygems/test_config.rb +0 -2
  341. data/test/rubygems/test_deprecate.rb +40 -7
  342. data/test/rubygems/test_gem.rb +150 -103
  343. data/test/rubygems/test_gem_available_set.rb +3 -5
  344. data/test/rubygems/test_gem_bundler_version_finder.rb +19 -3
  345. data/test/rubygems/test_gem_command.rb +24 -7
  346. data/test/rubygems/test_gem_command_manager.rb +36 -5
  347. data/test/rubygems/test_gem_commands_build_command.rb +53 -10
  348. data/test/rubygems/test_gem_commands_cert_command.rb +2 -4
  349. data/test/rubygems/test_gem_commands_check_command.rb +0 -2
  350. data/test/rubygems/test_gem_commands_cleanup_command.rb +13 -4
  351. data/test/rubygems/test_gem_commands_contents_command.rb +48 -17
  352. data/test/rubygems/test_gem_commands_dependency_command.rb +0 -2
  353. data/test/rubygems/test_gem_commands_environment_command.rb +21 -23
  354. data/test/rubygems/test_gem_commands_fetch_command.rb +0 -2
  355. data/test/rubygems/test_gem_commands_generate_index_command.rb +1 -7
  356. data/test/rubygems/test_gem_commands_help_command.rb +0 -2
  357. data/test/rubygems/test_gem_commands_info_command.rb +6 -8
  358. data/test/rubygems/test_gem_commands_install_command.rb +31 -33
  359. data/test/rubygems/test_gem_commands_list_command.rb +0 -2
  360. data/test/rubygems/test_gem_commands_lock_command.rb +0 -2
  361. data/test/rubygems/test_gem_commands_mirror.rb +1 -3
  362. data/test/rubygems/test_gem_commands_open_command.rb +4 -6
  363. data/test/rubygems/test_gem_commands_outdated_command.rb +0 -2
  364. data/test/rubygems/test_gem_commands_owner_command.rb +11 -5
  365. data/test/rubygems/test_gem_commands_pristine_command.rb +41 -10
  366. data/test/rubygems/test_gem_commands_push_command.rb +7 -4
  367. data/test/rubygems/test_gem_commands_query_command.rb +9 -9
  368. data/test/rubygems/test_gem_commands_search_command.rb +0 -2
  369. data/test/rubygems/test_gem_commands_server_command.rb +0 -2
  370. data/test/rubygems/test_gem_commands_setup_command.rb +210 -118
  371. data/test/rubygems/test_gem_commands_signin_command.rb +6 -6
  372. data/test/rubygems/test_gem_commands_signout_command.rb +0 -7
  373. data/test/rubygems/test_gem_commands_sources_command.rb +39 -3
  374. data/test/rubygems/test_gem_commands_specification_command.rb +18 -20
  375. data/test/rubygems/test_gem_commands_stale_command.rb +0 -2
  376. data/test/rubygems/test_gem_commands_uninstall_command.rb +2 -3
  377. data/test/rubygems/test_gem_commands_unpack_command.rb +0 -2
  378. data/test/rubygems/test_gem_commands_update_command.rb +116 -7
  379. data/test/rubygems/test_gem_commands_which_command.rb +3 -5
  380. data/test/rubygems/test_gem_commands_yank_command.rb +14 -8
  381. data/test/rubygems/test_gem_config_file.rb +7 -12
  382. data/test/rubygems/test_gem_dependency.rb +0 -2
  383. data/test/rubygems/test_gem_dependency_installer.rb +54 -191
  384. data/test/rubygems/test_gem_dependency_list.rb +8 -10
  385. data/test/rubygems/test_gem_dependency_resolution_error.rb +1 -3
  386. data/test/rubygems/test_gem_doctor.rb +28 -2
  387. data/test/rubygems/test_gem_ext_builder.rb +16 -33
  388. data/test/rubygems/test_gem_ext_cmake_builder.rb +13 -14
  389. data/test/rubygems/test_gem_ext_configure_builder.rb +1 -11
  390. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +0 -3
  391. data/test/rubygems/test_gem_ext_rake_builder.rb +9 -11
  392. data/test/rubygems/test_gem_gem_runner.rb +43 -1
  393. data/test/rubygems/test_gem_gemcutter_utilities.rb +5 -2
  394. data/test/rubygems/test_gem_impossible_dependencies_error.rb +0 -2
  395. data/test/rubygems/test_gem_indexer.rb +9 -15
  396. data/test/rubygems/test_gem_install_update_options.rb +0 -2
  397. data/test/rubygems/test_gem_installer.rb +192 -71
  398. data/test/rubygems/test_gem_local_remote_options.rb +0 -2
  399. data/test/rubygems/test_gem_name_tuple.rb +0 -2
  400. data/test/rubygems/test_gem_package.rb +33 -31
  401. data/test/rubygems/test_gem_package_old.rb +0 -2
  402. data/test/rubygems/test_gem_package_tar_header.rb +18 -1
  403. data/test/rubygems/test_gem_package_tar_reader.rb +0 -2
  404. data/test/rubygems/test_gem_package_tar_reader_entry.rb +0 -2
  405. data/test/rubygems/test_gem_package_tar_writer.rb +8 -5
  406. data/test/rubygems/test_gem_package_task.rb +46 -13
  407. data/test/rubygems/test_gem_path_support.rb +0 -2
  408. data/test/rubygems/test_gem_platform.rb +0 -2
  409. data/test/rubygems/test_gem_rdoc.rb +0 -2
  410. data/test/rubygems/test_gem_remote_fetcher.rb +156 -195
  411. data/test/rubygems/test_gem_request.rb +11 -15
  412. data/test/rubygems/test_gem_request_connection_pools.rb +0 -4
  413. data/test/rubygems/test_gem_request_set.rb +72 -22
  414. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +3 -5
  415. data/test/rubygems/test_gem_request_set_lockfile.rb +0 -2
  416. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +9 -11
  417. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +118 -120
  418. data/test/rubygems/test_gem_requirement.rb +10 -4
  419. data/test/rubygems/test_gem_resolver.rb +6 -8
  420. data/test/rubygems/test_gem_resolver_activation_request.rb +0 -2
  421. data/test/rubygems/test_gem_resolver_api_set.rb +3 -5
  422. data/test/rubygems/test_gem_resolver_api_specification.rb +0 -2
  423. data/test/rubygems/test_gem_resolver_best_set.rb +2 -4
  424. data/test/rubygems/test_gem_resolver_composed_set.rb +0 -2
  425. data/test/rubygems/test_gem_resolver_conflict.rb +0 -2
  426. data/test/rubygems/test_gem_resolver_dependency_request.rb +0 -2
  427. data/test/rubygems/test_gem_resolver_git_set.rb +0 -2
  428. data/test/rubygems/test_gem_resolver_git_specification.rb +0 -2
  429. data/test/rubygems/test_gem_resolver_index_set.rb +2 -4
  430. data/test/rubygems/test_gem_resolver_index_specification.rb +0 -2
  431. data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -2
  432. data/test/rubygems/test_gem_resolver_installer_set.rb +7 -9
  433. data/test/rubygems/test_gem_resolver_local_specification.rb +0 -2
  434. data/test/rubygems/test_gem_resolver_lock_set.rb +3 -5
  435. data/test/rubygems/test_gem_resolver_lock_specification.rb +0 -2
  436. data/test/rubygems/test_gem_resolver_requirement_list.rb +0 -2
  437. data/test/rubygems/test_gem_resolver_specification.rb +0 -4
  438. data/test/rubygems/test_gem_resolver_vendor_set.rb +0 -2
  439. data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -2
  440. data/test/rubygems/test_gem_security.rb +20 -22
  441. data/test/rubygems/test_gem_security_policy.rb +5 -10
  442. data/test/rubygems/test_gem_security_signer.rb +8 -10
  443. data/test/rubygems/test_gem_security_trust_dir.rb +2 -4
  444. data/test/rubygems/test_gem_server.rb +10 -14
  445. data/test/rubygems/test_gem_silent_ui.rb +0 -2
  446. data/test/rubygems/test_gem_source.rb +12 -16
  447. data/test/rubygems/test_gem_source_fetch_problem.rb +0 -2
  448. data/test/rubygems/test_gem_source_git.rb +12 -13
  449. data/test/rubygems/test_gem_source_installed.rb +7 -9
  450. data/test/rubygems/test_gem_source_list.rb +1 -2
  451. data/test/rubygems/test_gem_source_local.rb +8 -10
  452. data/test/rubygems/test_gem_source_lock.rb +10 -12
  453. data/test/rubygems/test_gem_source_specific_file.rb +7 -9
  454. data/test/rubygems/test_gem_source_vendor.rb +7 -9
  455. data/test/rubygems/test_gem_spec_fetcher.rb +11 -4
  456. data/test/rubygems/test_gem_specification.rb +179 -129
  457. data/test/rubygems/test_gem_stream_ui.rb +3 -3
  458. data/test/rubygems/test_gem_stub_specification.rb +4 -7
  459. data/test/rubygems/test_gem_text.rb +1 -3
  460. data/test/rubygems/test_gem_uninstaller.rb +133 -11
  461. data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +0 -2
  462. data/test/rubygems/test_gem_uri_formatter.rb +0 -2
  463. data/test/rubygems/test_gem_util.rb +7 -7
  464. data/test/rubygems/test_gem_validator.rb +0 -2
  465. data/test/rubygems/test_gem_version.rb +1 -3
  466. data/test/rubygems/test_gem_version_option.rb +0 -2
  467. data/test/rubygems/test_kernel.rb +25 -10
  468. data/test/rubygems/test_project_sanity.rb +7 -2
  469. data/test/rubygems/test_remote_fetch_error.rb +0 -2
  470. data/test/rubygems/test_require.rb +241 -47
  471. metadata +59 -96
  472. data/.bundle/config +0 -2
  473. data/.rubocop.yml +0 -91
  474. data/Gemfile +0 -8
  475. data/Gemfile.lock +0 -43
  476. data/bundler/CODE_OF_CONDUCT.md +0 -136
  477. data/bundler/man/bundle-add.1.txt +0 -58
  478. data/bundler/man/bundle-binstubs.1.txt +0 -48
  479. data/bundler/man/bundle-cache.1.txt +0 -78
  480. data/bundler/man/bundle-check.1.txt +0 -33
  481. data/bundler/man/bundle-clean.1.txt +0 -26
  482. data/bundler/man/bundle-config.1.txt +0 -528
  483. data/bundler/man/bundle-doctor.1.txt +0 -44
  484. data/bundler/man/bundle-exec.1.txt +0 -178
  485. data/bundler/man/bundle-gem.1.txt +0 -91
  486. data/bundler/man/bundle-info.1.txt +0 -21
  487. data/bundler/man/bundle-init.1.txt +0 -34
  488. data/bundler/man/bundle-inject.1.txt +0 -32
  489. data/bundler/man/bundle-install.1.txt +0 -401
  490. data/bundler/man/bundle-list.1.txt +0 -43
  491. data/bundler/man/bundle-lock.1.txt +0 -93
  492. data/bundler/man/bundle-open.1.txt +0 -29
  493. data/bundler/man/bundle-outdated.1.txt +0 -131
  494. data/bundler/man/bundle-platform.1.txt +0 -57
  495. data/bundler/man/bundle-pristine.1.txt +0 -44
  496. data/bundler/man/bundle-remove.1.txt +0 -34
  497. data/bundler/man/bundle-show.1.txt +0 -27
  498. data/bundler/man/bundle-update.1.txt +0 -390
  499. data/bundler/man/bundle-viz.1.txt +0 -39
  500. data/bundler/man/bundle.1.txt +0 -116
  501. data/bundler/man/gemfile.5.txt +0 -649
  502. data/bundler/man/index.txt +0 -25
  503. data/lib/rubygems/source_local.rb +0 -7
  504. data/lib/rubygems/source_specific_file.rb +0 -6
  505. data/lib/ubygems.rb +0 -14
  506. data/tmp/.keep +0 -0
  507. data/util/CL2notes +0 -55
  508. data/util/bisect +0 -10
  509. data/util/ci.sh +0 -62
  510. data/util/cops/deprecations.rb +0 -52
  511. data/util/create_certs.rb +0 -171
  512. data/util/create_certs.sh +0 -27
  513. data/util/create_encrypted_key.rb +0 -16
  514. data/util/generate_spdx_license_list.rb +0 -63
  515. data/util/patch_with_prs.rb +0 -77
  516. data/util/rubocop +0 -8
  517. data/util/update_bundled_ca_certificates.rb +0 -139
  518. data/util/update_changelog.rb +0 -67
@@ -4,7 +4,6 @@
4
4
  # Kind off like BestSet but filters the sources for gems
5
5
 
6
6
  class Gem::Resolver::SourceSet < Gem::Resolver::Set
7
-
8
7
  ##
9
8
  # Creates a SourceSet for the given +sources+ or Gem::sources if none are
10
9
  # specified. +sources+ must be a Gem::SourceList.
@@ -43,5 +42,4 @@ class Gem::Resolver::SourceSet < Gem::Resolver::Set
43
42
  link = @links[name]
44
43
  @sets[link] ||= Gem::Source.new(link).dependency_resolver_set if link
45
44
  end
46
-
47
45
  end
@@ -4,7 +4,6 @@
4
4
  # Resolver specifications that are backed by a Gem::Specification.
5
5
 
6
6
  class Gem::Resolver::SpecSpecification < Gem::Resolver::Specification
7
-
8
7
  ##
9
8
  # A SpecSpecification is created for a +set+ for a Gem::Specification in
10
9
  # +spec+. The +source+ is either where the +spec+ came from, or should be
@@ -52,5 +51,4 @@ class Gem::Resolver::SpecSpecification < Gem::Resolver::Specification
52
51
  def version
53
52
  spec.version
54
53
  end
55
-
56
54
  end
@@ -5,7 +5,6 @@
5
5
  # dependency resolution in the resolver is included.
6
6
 
7
7
  class Gem::Resolver::Specification
8
-
9
8
  ##
10
9
  # The dependencies of the gem for this specification
11
10
 
@@ -111,5 +110,4 @@ class Gem::Resolver::Specification
111
110
  def local? # :nodoc:
112
111
  false
113
112
  end
114
-
115
113
  end
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
  class Gem::Resolver::Stats
3
-
4
3
  def initialize
5
4
  @max_depth = 0
6
5
  @max_requirements = 0
@@ -43,5 +42,4 @@ class Gem::Resolver::Stats
43
42
  $stdout.printf PATTERN, "Backtracking #", @backtracking
44
43
  $stdout.printf PATTERN, "Iteration #", @iterations
45
44
  end
46
-
47
45
  end
@@ -15,7 +15,6 @@
15
15
  # rake.gemspec (watching the given name).
16
16
 
17
17
  class Gem::Resolver::VendorSet < Gem::Resolver::Set
18
-
19
18
  ##
20
19
  # The specifications for this set.
21
20
 
@@ -83,5 +82,4 @@ class Gem::Resolver::VendorSet < Gem::Resolver::Set
83
82
  end
84
83
  end
85
84
  end
86
-
87
85
  end
@@ -5,7 +5,6 @@
5
5
  # option.
6
6
 
7
7
  class Gem::Resolver::VendorSpecification < Gem::Resolver::SpecSpecification
8
-
9
8
  def ==(other) # :nodoc:
10
9
  self.class === other and
11
10
  @set == other.set and
@@ -20,5 +19,4 @@ class Gem::Resolver::VendorSpecification < Gem::Resolver::SpecSpecification
20
19
  def install(options = {})
21
20
  yield nil
22
21
  end
23
-
24
22
  end
@@ -1,14 +1,12 @@
1
1
  require 'base64'
2
2
  require 'digest'
3
- require 'openssl'
3
+ require 'rubygems/openssl'
4
4
 
5
5
  ##
6
6
  # S3URISigner implements AWS SigV4 for S3 Source to avoid a dependency on the aws-sdk-* gems
7
7
  # More on AWS SigV4: https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html
8
8
  class Gem::S3URISigner
9
-
10
9
  class ConfigurationError < Gem::Exception
11
-
12
10
  def initialize(message)
13
11
  super message
14
12
  end
@@ -16,11 +14,9 @@ class Gem::S3URISigner
16
14
  def to_s # :nodoc:
17
15
  "#{super}"
18
16
  end
19
-
20
17
  end
21
18
 
22
19
  class InstanceProfileError < Gem::Exception
23
-
24
20
  def initialize(message)
25
21
  super message
26
22
  end
@@ -28,7 +24,6 @@ class Gem::S3URISigner
28
24
  def to_s # :nodoc:
29
25
  "#{super}"
30
26
  end
31
-
32
27
  end
33
28
 
34
29
  attr_accessor :uri
@@ -179,5 +174,4 @@ class Gem::S3URISigner
179
174
  BASE64_URI_TRANSLATE = { "+" => "%2B", "/" => "%2F", "=" => "%3D", "\n" => "" }.freeze
180
175
  EC2_IAM_INFO = "http://169.254.169.254/latest/meta-data/iam/info".freeze
181
176
  EC2_IAM_SECURITY_CREDENTIALS = "http://169.254.169.254/latest/meta-data/iam/security-credentials/".freeze
182
-
183
177
  end
@@ -7,7 +7,7 @@ module Gem
7
7
  # Psych.safe_load
8
8
 
9
9
  module SafeYAML
10
- PERMITTED_CLASSES = %w(
10
+ PERMITTED_CLASSES = %w[
11
11
  Symbol
12
12
  Time
13
13
  Date
@@ -19,12 +19,12 @@ module Gem
19
19
  Gem::Version::Requirement
20
20
  YAML::Syck::DefaultKey
21
21
  Syck::DefaultKey
22
- ).freeze
22
+ ].freeze
23
23
 
24
- PERMITTED_SYMBOLS = %w(
24
+ PERMITTED_SYMBOLS = %w[
25
25
  development
26
26
  runtime
27
- ).freeze
27
+ ].freeze
28
28
 
29
29
  if ::YAML.respond_to? :safe_load
30
30
  def self.safe_load(input)
@@ -7,13 +7,7 @@
7
7
 
8
8
  require 'rubygems/exceptions'
9
9
  require 'fileutils'
10
-
11
- begin
12
- require 'openssl'
13
- rescue LoadError => e
14
- raise unless (e.respond_to?(:path) && e.path == 'openssl') ||
15
- e.message =~ / -- openssl$/
16
- end
10
+ require_relative 'openssl'
17
11
 
18
12
  ##
19
13
  # = Signing gems
@@ -62,11 +56,11 @@ end
62
56
  #
63
57
  # $ tar tf your-gem-1.0.gem
64
58
  # metadata.gz
65
- # metadata.gz.sum
66
59
  # metadata.gz.sig # metadata signature
67
60
  # data.tar.gz
68
- # data.tar.gz.sum
69
61
  # data.tar.gz.sig # data signature
62
+ # checksums.yaml.gz
63
+ # checksums.yaml.gz.sig # checksums signature
70
64
  #
71
65
  # === Manually signing gems
72
66
  #
@@ -161,6 +155,8 @@ end
161
155
  # -K, --private-key KEY Key for --sign or --build
162
156
  # -s, --sign CERT Signs CERT with the key from -K
163
157
  # and the certificate from -C
158
+ # -d, --days NUMBER_OF_DAYS Days before the certificate expires
159
+ # -R, --re-sign Re-signs the certificate from -C with the key from -K
164
160
  #
165
161
  # We've already covered the <code>--build</code> option, and the
166
162
  # <code>--add</code>, <code>--list</code>, and <code>--remove</code> commands
@@ -265,7 +261,7 @@ end
265
261
  # 2. Grab the public key from the gemspec
266
262
  #
267
263
  # gem spec some_signed_gem-1.0.gem cert_chain | \
268
- # ruby -ryaml -e 'puts YAML.load_documents($stdin)' > public_key.crt
264
+ # ruby -ryaml -e 'puts YAML.load($stdin)' > public_key.crt
269
265
  #
270
266
  # 3. Generate a SHA1 hash of the data.tar.gz
271
267
  #
@@ -336,28 +332,10 @@ module Gem::Security
336
332
 
337
333
  class Exception < Gem::Exception; end
338
334
 
339
- ##
340
- # Digest algorithm used to sign gems
341
-
342
- DIGEST_ALGORITHM =
343
- if defined?(OpenSSL::Digest::SHA256)
344
- OpenSSL::Digest::SHA256
345
- elsif defined?(OpenSSL::Digest::SHA1)
346
- OpenSSL::Digest::SHA1
347
- else
348
- require 'digest'
349
- Digest::SHA512
350
- end
351
-
352
335
  ##
353
336
  # Used internally to select the signing digest from all computed digests
354
337
 
355
- DIGEST_NAME = # :nodoc:
356
- if DIGEST_ALGORITHM.method_defined? :name
357
- DIGEST_ALGORITHM.new.name
358
- else
359
- DIGEST_ALGORITHM.name[/::([^:]+)\z/, 1]
360
- end
338
+ DIGEST_NAME = 'SHA256' # :nodoc:
361
339
 
362
340
  ##
363
341
  # Algorithm for creating the key pair used to sign gems
@@ -465,6 +443,22 @@ module Gem::Security
465
443
  sign certificate, key, certificate, age, extensions, serial
466
444
  end
467
445
 
446
+ ##
447
+ # Creates a new digest instance using the specified +algorithm+. The default
448
+ # is SHA256.
449
+
450
+ if defined?(OpenSSL::Digest)
451
+ def self.create_digest(algorithm = DIGEST_NAME)
452
+ OpenSSL::Digest.new(algorithm)
453
+ end
454
+ else
455
+ require 'digest'
456
+
457
+ def self.create_digest(algorithm = DIGEST_NAME)
458
+ Digest.const_get(algorithm).new
459
+ end
460
+ end
461
+
468
462
  ##
469
463
  # Creates a new key pair of the specified +length+ and +algorithm+. The
470
464
  # default is a 3072 bit RSA key.
@@ -483,7 +477,7 @@ module Gem::Security
483
477
 
484
478
  dcs = dcs.split '.'
485
479
 
486
- name = "CN=#{cn}/#{dcs.map { |dc| "DC=#{dc}" }.join '/'}"
480
+ name = "CN=#{cn}/#{dcs.map {|dc| "DC=#{dc}" }.join '/'}"
487
481
 
488
482
  OpenSSL::X509::Name.parse name
489
483
  end
@@ -526,7 +520,7 @@ module Gem::Security
526
520
 
527
521
  ##
528
522
  # Sign the public key from +certificate+ with the +signing_key+ and
529
- # +signing_cert+, using the Gem::Security::DIGEST_ALGORITHM. Uses the
523
+ # +signing_cert+, using the Gem::Security::DIGEST_NAME. Uses the
530
524
  # default certificate validity range and extensions.
531
525
  #
532
526
  # Returns the newly signed certificate.
@@ -553,7 +547,7 @@ module Gem::Security
553
547
  signed = create_cert signee_subject, signee_key, age, extensions, serial
554
548
  signed.issuer = signing_cert.subject
555
549
 
556
- signed.sign signing_key, Gem::Security::DIGEST_ALGORITHM.new
550
+ signed.sign signing_key, Gem::Security::DIGEST_NAME
557
551
  end
558
552
 
559
553
  ##
@@ -8,7 +8,6 @@ require 'rubygems/user_interaction'
8
8
  # Gem::Security::Policies.
9
9
 
10
10
  class Gem::Security::Policy
11
-
12
11
  include Gem::UserInteraction
13
12
 
14
13
  attr_reader :name
@@ -25,8 +24,6 @@ class Gem::Security::Policy
25
24
  # options.
26
25
 
27
26
  def initialize(name, policy = {}, opt = {})
28
- require 'openssl'
29
-
30
27
  @name = name
31
28
 
32
29
  @opt = opt
@@ -76,7 +73,7 @@ class Gem::Security::Policy
76
73
 
77
74
  def check_data(public_key, digest, signature, data)
78
75
  raise Gem::Security::Exception, "invalid signature" unless
79
- public_key.verify digest.new, signature, data.digest
76
+ public_key.verify digest, signature, data.digest
80
77
 
81
78
  true
82
79
  end
@@ -139,7 +136,7 @@ class Gem::Security::Policy
139
136
  raise Gem::Security::Exception,
140
137
  "root certificate #{root.subject} is not self-signed " +
141
138
  "(issuer #{root.issuer})" if
142
- root.issuer.to_s != root.subject.to_s # HACK to_s is for ruby 1.8
139
+ root.issuer != root.subject
143
140
 
144
141
  check_cert root, root, time
145
142
  end
@@ -224,7 +221,7 @@ class Gem::Security::Policy
224
221
  end
225
222
 
226
223
  opt = @opt
227
- digester = Gem::Security::DIGEST_ALGORITHM
224
+ digester = Gem::Security.create_digest
228
225
  trust_dir = opt[:trust_dir]
229
226
  time = Time.now
230
227
 
@@ -291,5 +288,4 @@ class Gem::Security::Policy
291
288
  end
292
289
 
293
290
  alias to_s name # :nodoc:
294
-
295
291
  end
@@ -5,7 +5,6 @@
5
5
  require "rubygems/user_interaction"
6
6
 
7
7
  class Gem::Security::Signer
8
-
9
8
  include Gem::UserInteraction
10
9
 
11
10
  ##
@@ -39,7 +38,7 @@ class Gem::Security::Signer
39
38
  }.freeze
40
39
 
41
40
  ##
42
- # Attemps to re-sign an expired cert with a given private key
41
+ # Attempts to re-sign an expired cert with a given private key
43
42
  def self.re_sign_cert(expired_cert, expired_cert_path, private_key)
44
43
  return unless expired_cert.not_after < Time.now
45
44
 
@@ -81,8 +80,8 @@ class Gem::Security::Signer
81
80
  @cert_chain = [default_cert] if File.exist? default_cert
82
81
  end
83
82
 
84
- @digest_algorithm = Gem::Security::DIGEST_ALGORITHM
85
83
  @digest_name = Gem::Security::DIGEST_NAME
84
+ @digest_algorithm = Gem::Security.create_digest(@digest_name)
86
85
 
87
86
  if @key && !@key.is_a?(OpenSSL::PKey::RSA)
88
87
  @key = OpenSSL::PKey::RSA.new(File.read(@key), @passphrase)
@@ -106,10 +105,10 @@ class Gem::Security::Signer
106
105
  # this value is preferred, otherwise the subject is used.
107
106
 
108
107
  def extract_name(cert) # :nodoc:
109
- subject_alt_name = cert.extensions.find { |e| 'subjectAltName' == e.oid }
108
+ subject_alt_name = cert.extensions.find {|e| 'subjectAltName' == e.oid }
110
109
 
111
110
  if subject_alt_name
112
- /\Aemail:/ =~ subject_alt_name.value
111
+ /\Aemail:/ =~ subject_alt_name.value # rubocop:disable Performance/StartWith
113
112
 
114
113
  $' || subject_alt_name.value
115
114
  else
@@ -202,5 +201,4 @@ class Gem::Security::Signer
202
201
  end
203
202
  end
204
203
  end
205
-
206
204
  end
@@ -4,7 +4,6 @@
4
4
  # verification.
5
5
 
6
6
  class Gem::Security::TrustDir
7
-
8
7
  ##
9
8
  # Default permissions for the trust directory and its contents
10
9
 
@@ -26,7 +25,7 @@ class Gem::Security::TrustDir
26
25
  @dir = dir
27
26
  @permissions = permissions
28
27
 
29
- @digester = Gem::Security::DIGEST_ALGORITHM
28
+ @digester = Gem::Security.create_digest
30
29
  end
31
30
 
32
31
  ##
@@ -115,5 +114,4 @@ class Gem::Security::TrustDir
115
114
  FileUtils.mkdir_p @dir, :mode => @permissions[:trust_dir]
116
115
  end
117
116
  end
118
-
119
117
  end
@@ -29,7 +29,6 @@ require 'rubygems/rdoc'
29
29
  # TODO Refactor into a real WEBrick servlet to remove code duplication.
30
30
 
31
31
  class Gem::Server
32
-
33
32
  attr_reader :spec_dirs
34
33
 
35
34
  include ERB::Util
@@ -442,8 +441,8 @@ div.method-source-code pre { color: #ffdead; overflow: hidden; }
442
441
  logger = WEBrick::Log.new nil, WEBrick::BasicLog::FATAL
443
442
  @server = WEBrick::HTTPServer.new :DoNotListen => true, :Logger => logger
444
443
 
445
- @spec_dirs = @gem_dirs.map { |gem_dir| File.join gem_dir, 'specifications' }
446
- @spec_dirs.reject! { |spec_dir| !File.directory? spec_dir }
444
+ @spec_dirs = @gem_dirs.map {|gem_dir| File.join gem_dir, 'specifications' }
445
+ @spec_dirs.reject! {|spec_dir| !File.directory? spec_dir }
447
446
 
448
447
  reset_gems
449
448
 
@@ -458,7 +457,7 @@ div.method-source-code pre { color: #ffdead; overflow: hidden; }
458
457
 
459
458
  def uri_encode(str)
460
459
  str.gsub(URI::UNSAFE) do |match|
461
- match.each_byte.map { |c| sprintf('%%%02X', c.ord) }.join
460
+ match.each_byte.map {|c| sprintf('%%%02X', c.ord) }.join
462
461
  end
463
462
  end
464
463
 
@@ -573,7 +572,7 @@ div.method-source-code pre { color: #ffdead; overflow: hidden; }
573
572
  add_date res
574
573
 
575
574
  case req.request_uri.path
576
- when %r|^/quick/(Marshal.#{Regexp.escape Gem.marshal_version}/)?(.*?)\.gemspec\.rz$| then
575
+ when %r{^/quick/(Marshal.#{Regexp.escape Gem.marshal_version}/)?(.*?)\.gemspec\.rz$} then
577
576
  marshal_format, full_name = $1, $2
578
577
  specs = Gem::Specification.find_all_by_full_name(full_name)
579
578
 
@@ -615,11 +614,11 @@ div.method-source-code pre { color: #ffdead; overflow: hidden; }
615
614
  }
616
615
  end
617
616
 
618
- deps = deps.sort_by { |dep| [dep["name"].downcase, dep["version"]] }
617
+ deps = deps.sort_by {|dep| [dep["name"].downcase, dep["version"]] }
619
618
  deps.last["is_last"] = true unless deps.empty?
620
619
 
621
620
  # executables
622
- executables = spec.executables.sort.collect { |exec| {"executable" => exec} }
621
+ executables = spec.executables.sort.collect {|exec| {"executable" => exec} }
623
622
  executables = nil if executables.empty?
624
623
  executables.last["is_last"] = true if executables
625
624
 
@@ -661,14 +660,14 @@ div.method-source-code pre { color: #ffdead; overflow: hidden; }
661
660
  "only_one_executable" => true,
662
661
  "full_name" => "rubygems-#{Gem::VERSION}",
663
662
  "has_deps" => false,
664
- "homepage" => "http://guides.rubygems.org/",
663
+ "homepage" => "https://guides.rubygems.org/",
665
664
  "name" => 'rubygems',
666
665
  "ri_installed" => true,
667
666
  "summary" => "RubyGems itself",
668
667
  "version" => Gem::VERSION,
669
668
  }
670
669
 
671
- specs = specs.sort_by { |spec| [spec["name"].downcase, spec["version"]] }
670
+ specs = specs.sort_by {|spec| [spec["name"].downcase, spec["version"]] }
672
671
  specs.last["is_last"] = true
673
672
 
674
673
  # tag all specs with first_name_entry
@@ -869,11 +868,10 @@ div.method-source-code pre { color: #ffdead; overflow: hidden; }
869
868
  listeners = @server.listeners.map{|l| l.addr[2] }
870
869
 
871
870
  # TODO: 0.0.0.0 == any, not localhost.
872
- host = listeners.any?{|l| l == '0.0.0.0'} ? 'localhost' : listeners.first
871
+ host = listeners.any?{|l| l == '0.0.0.0' } ? 'localhost' : listeners.first
873
872
 
874
873
  say "Launching browser to http://#{host}:#{@port}"
875
874
 
876
875
  system("#{@launch} http://#{host}:#{@port}")
877
876
  end
878
-
879
877
  end