rubygems-update 3.0.6 → 3.2.14

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 (628) hide show
  1. checksums.yaml +4 -4
  2. data/{History.txt → CHANGELOG.md} +1100 -436
  3. data/CODE_OF_CONDUCT.md +55 -19
  4. data/CONTRIBUTING.md +37 -10
  5. data/MAINTAINERS.txt +1 -6
  6. data/Manifest.txt +104 -64
  7. data/POLICIES.md +6 -12
  8. data/README.md +6 -6
  9. data/Rakefile +121 -111
  10. data/bin/gem +0 -6
  11. data/bin/update_rubygems +2 -2
  12. data/bundler/CHANGELOG.md +1788 -1251
  13. data/bundler/LICENSE.md +18 -19
  14. data/bundler/README.md +9 -10
  15. data/bundler/UPGRADING.md +215 -0
  16. data/bundler/bundler.gemspec +9 -26
  17. data/bundler/exe/bundle +22 -3
  18. data/bundler/lib/bundler.rb +233 -94
  19. data/bundler/lib/bundler/build_metadata.rb +5 -13
  20. data/bundler/lib/bundler/capistrano.rb +4 -4
  21. data/bundler/lib/bundler/cli.rb +221 -148
  22. data/bundler/lib/bundler/cli/add.rb +28 -16
  23. data/bundler/lib/bundler/cli/binstubs.rb +6 -2
  24. data/bundler/lib/bundler/cli/cache.rb +24 -17
  25. data/bundler/lib/bundler/cli/clean.rb +1 -1
  26. data/bundler/lib/bundler/cli/common.rb +25 -12
  27. data/bundler/lib/bundler/cli/config.rb +161 -86
  28. data/bundler/lib/bundler/cli/console.rb +1 -1
  29. data/bundler/lib/bundler/cli/doctor.rb +5 -5
  30. data/bundler/lib/bundler/cli/exec.rb +8 -20
  31. data/bundler/lib/bundler/cli/fund.rb +36 -0
  32. data/bundler/lib/bundler/cli/gem.rb +125 -32
  33. data/bundler/lib/bundler/cli/info.rb +29 -6
  34. data/bundler/lib/bundler/cli/init.rb +2 -2
  35. data/bundler/lib/bundler/cli/inject.rb +1 -1
  36. data/bundler/lib/bundler/cli/install.rb +27 -23
  37. data/bundler/lib/bundler/cli/issue.rb +5 -5
  38. data/bundler/lib/bundler/cli/list.rb +12 -10
  39. data/bundler/lib/bundler/cli/open.rb +10 -6
  40. data/bundler/lib/bundler/cli/outdated.rb +134 -109
  41. data/bundler/lib/bundler/cli/plugin.rb +19 -2
  42. data/bundler/lib/bundler/cli/pristine.rb +6 -1
  43. data/bundler/lib/bundler/cli/show.rb +2 -2
  44. data/bundler/lib/bundler/cli/update.rb +34 -12
  45. data/bundler/lib/bundler/compact_index_client.rb +26 -10
  46. data/bundler/lib/bundler/compact_index_client/cache.rb +6 -14
  47. data/bundler/lib/bundler/compact_index_client/gem_parser.rb +28 -0
  48. data/bundler/lib/bundler/compact_index_client/updater.rb +8 -20
  49. data/bundler/lib/bundler/current_ruby.rb +9 -7
  50. data/bundler/lib/bundler/definition.rb +133 -132
  51. data/bundler/lib/bundler/dep_proxy.rb +16 -9
  52. data/bundler/lib/bundler/dependency.rb +19 -14
  53. data/bundler/lib/bundler/deployment.rb +1 -1
  54. data/bundler/lib/bundler/dsl.rb +54 -71
  55. data/bundler/lib/bundler/endpoint_specification.rb +1 -1
  56. data/bundler/lib/bundler/env.rb +9 -14
  57. data/bundler/lib/bundler/environment_preserver.rb +26 -3
  58. data/bundler/lib/bundler/errors.rb +1 -0
  59. data/bundler/lib/bundler/feature_flag.rb +19 -34
  60. data/bundler/lib/bundler/fetcher.rb +19 -16
  61. data/bundler/lib/bundler/fetcher/base.rb +1 -1
  62. data/bundler/lib/bundler/fetcher/compact_index.rb +27 -13
  63. data/bundler/lib/bundler/fetcher/dependency.rb +1 -1
  64. data/bundler/lib/bundler/fetcher/downloader.rb +6 -3
  65. data/bundler/lib/bundler/fetcher/index.rb +8 -7
  66. data/bundler/lib/bundler/friendly_errors.rb +27 -19
  67. data/bundler/lib/bundler/gem_helper.rb +68 -37
  68. data/bundler/lib/bundler/gem_helpers.rb +38 -29
  69. data/bundler/lib/bundler/gem_tasks.rb +1 -1
  70. data/bundler/lib/bundler/gem_version_promoter.rb +5 -5
  71. data/bundler/lib/bundler/graph.rb +3 -3
  72. data/bundler/lib/bundler/index.rb +12 -7
  73. data/bundler/lib/bundler/injector.rb +32 -12
  74. data/bundler/lib/bundler/inline.rb +41 -30
  75. data/bundler/lib/bundler/installer.rb +41 -60
  76. data/bundler/lib/bundler/installer/gem_installer.rb +8 -4
  77. data/bundler/lib/bundler/installer/parallel_installer.rb +20 -26
  78. data/bundler/lib/bundler/installer/standalone.rb +18 -4
  79. data/bundler/lib/bundler/lazy_specification.rb +41 -27
  80. data/bundler/lib/bundler/lockfile_generator.rb +1 -1
  81. data/bundler/lib/bundler/lockfile_parser.rb +16 -33
  82. data/bundler/lib/bundler/{ssl_certs → man}/.document +0 -0
  83. data/bundler/lib/bundler/man/bundle-add.1 +66 -0
  84. data/bundler/{man/bundle-add.ronn → lib/bundler/man/bundle-add.1.ronn} +7 -1
  85. data/bundler/lib/bundler/man/bundle-binstubs.1 +42 -0
  86. data/bundler/{man/bundle-binstubs.ronn → lib/bundler/man/bundle-binstubs.1.ronn} +3 -5
  87. data/bundler/lib/bundler/man/bundle-cache.1 +55 -0
  88. data/bundler/{man/bundle-package.ronn → lib/bundler/man/bundle-cache.1.ronn} +15 -15
  89. data/bundler/lib/bundler/man/bundle-check.1 +31 -0
  90. data/bundler/{man/bundle-check.ronn → lib/bundler/man/bundle-check.1.ronn} +0 -0
  91. data/bundler/lib/bundler/man/bundle-clean.1 +24 -0
  92. data/bundler/{man/bundle-clean.ronn → lib/bundler/man/bundle-clean.1.ronn} +0 -0
  93. data/bundler/lib/bundler/man/bundle-config.1 +488 -0
  94. data/bundler/{man/bundle-config.ronn → lib/bundler/man/bundle-config.1.ronn} +59 -67
  95. data/bundler/lib/bundler/man/bundle-doctor.1 +44 -0
  96. data/bundler/{man/bundle-doctor.ronn → lib/bundler/man/bundle-doctor.1.ronn} +0 -0
  97. data/bundler/lib/bundler/man/bundle-exec.1 +165 -0
  98. data/bundler/{man/bundle-exec.ronn → lib/bundler/man/bundle-exec.1.ronn} +1 -1
  99. data/bundler/lib/bundler/man/bundle-gem.1 +102 -0
  100. data/bundler/{man/bundle-gem.ronn → lib/bundler/man/bundle-gem.1.ronn} +30 -7
  101. data/bundler/lib/bundler/man/bundle-info.1 +20 -0
  102. data/bundler/{man/bundle-info.ronn → lib/bundler/man/bundle-info.1.ronn} +0 -0
  103. data/bundler/lib/bundler/man/bundle-init.1 +25 -0
  104. data/bundler/{man/bundle-init.ronn → lib/bundler/man/bundle-init.1.ronn} +1 -1
  105. data/bundler/lib/bundler/man/bundle-inject.1 +33 -0
  106. data/bundler/{man/bundle-inject.ronn → lib/bundler/man/bundle-inject.1.ronn} +0 -0
  107. data/bundler/lib/bundler/man/bundle-install.1 +338 -0
  108. data/bundler/{man/bundle-install.ronn → lib/bundler/man/bundle-install.1.ronn} +34 -7
  109. data/bundler/lib/bundler/man/bundle-list.1 +50 -0
  110. data/bundler/{man/bundle-list.ronn → lib/bundler/man/bundle-list.1.ronn} +6 -6
  111. data/bundler/lib/bundler/man/bundle-lock.1 +84 -0
  112. data/bundler/{man/bundle-lock.ronn → lib/bundler/man/bundle-lock.1.ronn} +0 -0
  113. data/bundler/lib/bundler/man/bundle-open.1 +32 -0
  114. data/bundler/{man/bundle-open.ronn → lib/bundler/man/bundle-open.1.ronn} +0 -0
  115. data/bundler/lib/bundler/man/bundle-outdated.1 +155 -0
  116. data/bundler/{man/bundle-outdated.ronn → lib/bundler/man/bundle-outdated.1.ronn} +0 -0
  117. data/bundler/lib/bundler/man/bundle-platform.1 +61 -0
  118. data/bundler/{man/bundle-platform.ronn → lib/bundler/man/bundle-platform.1.ronn} +0 -0
  119. data/bundler/lib/bundler/man/bundle-pristine.1 +34 -0
  120. data/bundler/{man/bundle-pristine.ronn → lib/bundler/man/bundle-pristine.1.ronn} +0 -0
  121. data/bundler/lib/bundler/man/bundle-remove.1 +31 -0
  122. data/bundler/{man/bundle-remove.ronn → lib/bundler/man/bundle-remove.1.ronn} +0 -0
  123. data/bundler/lib/bundler/man/bundle-show.1 +23 -0
  124. data/bundler/{man/bundle-show.ronn → lib/bundler/man/bundle-show.1.ronn} +0 -0
  125. data/bundler/lib/bundler/man/bundle-update.1 +394 -0
  126. data/bundler/{man/bundle-update.ronn → lib/bundler/man/bundle-update.1.ronn} +3 -3
  127. data/bundler/lib/bundler/man/bundle-viz.1 +39 -0
  128. data/bundler/{man/bundle-viz.ronn → lib/bundler/man/bundle-viz.1.ronn} +0 -0
  129. data/bundler/lib/bundler/man/bundle.1 +136 -0
  130. data/bundler/{man/bundle.ronn → lib/bundler/man/bundle.1.ronn} +2 -2
  131. data/bundler/lib/bundler/man/gemfile.5 +686 -0
  132. data/bundler/{man → lib/bundler/man}/gemfile.5.ronn +16 -20
  133. data/bundler/lib/bundler/man/index.txt +25 -0
  134. data/bundler/lib/bundler/match_platform.rb +1 -1
  135. data/bundler/lib/bundler/mirror.rb +5 -5
  136. data/bundler/lib/bundler/plugin.rb +75 -36
  137. data/bundler/lib/bundler/plugin/api.rb +1 -1
  138. data/bundler/lib/bundler/plugin/api/source.rb +12 -7
  139. data/bundler/lib/bundler/plugin/dsl.rb +1 -1
  140. data/bundler/lib/bundler/plugin/index.rb +24 -4
  141. data/bundler/lib/bundler/plugin/installer.rb +33 -22
  142. data/bundler/lib/bundler/plugin/installer/rubygems.rb +1 -1
  143. data/bundler/lib/bundler/plugin/source_list.rb +5 -1
  144. data/bundler/lib/bundler/psyched_yaml.rb +0 -15
  145. data/bundler/lib/bundler/remote_specification.rb +5 -4
  146. data/bundler/lib/bundler/resolver.rb +191 -87
  147. data/bundler/lib/bundler/resolver/spec_group.rb +76 -48
  148. data/bundler/lib/bundler/retry.rb +3 -3
  149. data/bundler/lib/bundler/ruby_version.rb +5 -20
  150. data/bundler/lib/bundler/rubygems_ext.rb +76 -72
  151. data/bundler/lib/bundler/rubygems_gem_installer.rb +47 -13
  152. data/bundler/lib/bundler/rubygems_integration.rb +159 -444
  153. data/bundler/lib/bundler/runtime.rb +6 -23
  154. data/bundler/lib/bundler/settings.rb +67 -93
  155. data/bundler/lib/bundler/setup.rb +11 -12
  156. data/bundler/lib/bundler/shared_helpers.rb +54 -80
  157. data/bundler/lib/bundler/similarity_detector.rb +3 -3
  158. data/bundler/lib/bundler/source.rb +12 -6
  159. data/bundler/lib/bundler/source/git.rb +47 -38
  160. data/bundler/lib/bundler/source/git/git_proxy.rb +101 -102
  161. data/bundler/lib/bundler/source/metadata.rb +7 -6
  162. data/bundler/lib/bundler/source/path.rb +20 -11
  163. data/bundler/lib/bundler/source/path/installer.rb +10 -10
  164. data/bundler/lib/bundler/source/rubygems.rb +56 -29
  165. data/bundler/lib/bundler/source/rubygems/remote.rb +3 -4
  166. data/bundler/lib/bundler/source_list.rb +32 -30
  167. data/bundler/lib/bundler/spec_set.rb +37 -25
  168. data/bundler/lib/bundler/stub_specification.rb +40 -34
  169. data/bundler/lib/bundler/templates/Executable.bundler +23 -14
  170. data/bundler/lib/bundler/templates/newgem/CHANGELOG.md.tt +5 -0
  171. data/bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +57 -47
  172. data/bundler/lib/bundler/templates/newgem/Gemfile.tt +16 -2
  173. data/bundler/lib/bundler/templates/newgem/README.md.tt +7 -5
  174. data/bundler/lib/bundler/templates/newgem/Rakefile.tt +19 -5
  175. data/bundler/lib/bundler/templates/newgem/bin/console.tt +1 -0
  176. data/bundler/lib/bundler/templates/newgem/circleci/config.yml.tt +13 -0
  177. data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt +2 -0
  178. data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +18 -0
  179. data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +9 -0
  180. data/bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt +4 -2
  181. data/bundler/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +2 -0
  182. data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +18 -31
  183. data/bundler/lib/bundler/templates/newgem/rubocop.yml.tt +13 -0
  184. data/bundler/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +2 -0
  185. data/bundler/lib/bundler/templates/newgem/spec/spec_helper.rb.tt +2 -1
  186. data/bundler/lib/bundler/templates/newgem/test/{newgem_test.rb.tt → minitest/newgem_test.rb.tt} +2 -0
  187. data/bundler/lib/bundler/templates/newgem/test/minitest/test_helper.rb.tt +6 -0
  188. data/bundler/lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt +15 -0
  189. data/bundler/lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt +6 -0
  190. data/bundler/lib/bundler/templates/newgem/travis.yml.tt +0 -1
  191. data/bundler/lib/bundler/ui.rb +3 -3
  192. data/bundler/lib/bundler/ui/rg_proxy.rb +1 -1
  193. data/bundler/lib/bundler/ui/shell.rb +7 -11
  194. data/bundler/lib/bundler/uri_credentials_filter.rb +10 -4
  195. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +161 -0
  196. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/monotonic_time.rb +66 -0
  197. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +176 -0
  198. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +3 -0
  199. data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +273 -147
  200. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb +5 -6
  201. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +7 -0
  202. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +36 -4
  203. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +1 -1
  204. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +1 -1
  205. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +1 -1
  206. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +1 -1
  207. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +6 -6
  208. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +1 -1
  209. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +3 -3
  210. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +39 -11
  211. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +4 -4
  212. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +1 -1
  213. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +11 -0
  214. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +53 -51
  215. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +2 -2
  216. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +302 -462
  217. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +40 -0
  218. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +53 -0
  219. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +79 -0
  220. data/bundler/lib/bundler/vendor/thor/lib/thor.rb +16 -9
  221. data/bundler/lib/bundler/vendor/thor/lib/thor/actions.rb +28 -13
  222. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_file.rb +1 -1
  223. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +3 -2
  224. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/directory.rb +7 -17
  225. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +20 -9
  226. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +19 -8
  227. data/bundler/lib/bundler/vendor/thor/lib/thor/base.rb +63 -43
  228. data/bundler/lib/bundler/vendor/thor/lib/thor/command.rb +21 -14
  229. data/bundler/lib/bundler/vendor/thor/lib/thor/error.rb +78 -0
  230. data/bundler/lib/bundler/vendor/thor/lib/thor/group.rb +3 -3
  231. data/bundler/lib/bundler/vendor/thor/lib/thor/invocation.rb +1 -0
  232. data/bundler/lib/bundler/vendor/thor/lib/thor/line_editor.rb +2 -2
  233. data/bundler/lib/bundler/vendor/thor/lib/thor/line_editor/basic.rb +1 -1
  234. data/bundler/lib/bundler/vendor/thor/lib/thor/line_editor/readline.rb +6 -6
  235. data/bundler/lib/bundler/vendor/thor/lib/thor/nested_context.rb +29 -0
  236. data/bundler/lib/bundler/vendor/thor/lib/thor/parser.rb +4 -4
  237. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb +7 -3
  238. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/option.rb +20 -7
  239. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/options.rb +21 -5
  240. data/bundler/lib/bundler/vendor/thor/lib/thor/rake_compat.rb +1 -0
  241. data/bundler/lib/bundler/vendor/thor/lib/thor/runner.rb +15 -14
  242. data/bundler/lib/bundler/vendor/thor/lib/thor/shell.rb +4 -4
  243. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +65 -8
  244. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/color.rb +10 -2
  245. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/html.rb +3 -3
  246. data/bundler/lib/bundler/vendor/thor/lib/thor/util.rb +18 -2
  247. data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
  248. data/bundler/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +154 -0
  249. data/bundler/lib/bundler/vendor/uri/lib/uri.rb +104 -0
  250. data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +744 -0
  251. data/bundler/lib/bundler/vendor/uri/lib/uri/file.rb +94 -0
  252. data/bundler/lib/bundler/vendor/uri/lib/uri/ftp.rb +267 -0
  253. data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +1568 -0
  254. data/bundler/lib/bundler/vendor/uri/lib/uri/http.rb +88 -0
  255. data/bundler/lib/bundler/vendor/uri/lib/uri/https.rb +23 -0
  256. data/bundler/lib/bundler/vendor/uri/lib/uri/ldap.rb +261 -0
  257. data/bundler/lib/bundler/vendor/uri/lib/uri/ldaps.rb +21 -0
  258. data/bundler/lib/bundler/vendor/uri/lib/uri/mailto.rb +294 -0
  259. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +546 -0
  260. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +125 -0
  261. data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +6 -0
  262. data/bundler/lib/bundler/vendored_fileutils.rb +1 -6
  263. data/bundler/lib/bundler/vendored_molinillo.rb +1 -1
  264. data/bundler/lib/bundler/vendored_persistent.rb +7 -12
  265. data/bundler/lib/bundler/vendored_thor.rb +2 -2
  266. data/bundler/lib/bundler/vendored_tmpdir.rb +4 -0
  267. data/bundler/lib/bundler/vendored_uri.rb +4 -0
  268. data/bundler/lib/bundler/version.rb +1 -20
  269. data/bundler/lib/bundler/version_ranges.rb +51 -5
  270. data/bundler/lib/bundler/vlad.rb +2 -2
  271. data/bundler/lib/bundler/worker.rb +2 -4
  272. data/bundler/lib/bundler/yaml_serializer.rb +3 -4
  273. data/lib/rubygems.rb +198 -222
  274. data/lib/rubygems/available_set.rb +4 -5
  275. data/lib/rubygems/basic_specification.rb +32 -19
  276. data/lib/rubygems/bundler_version_finder.rb +19 -9
  277. data/lib/rubygems/command.rb +73 -21
  278. data/lib/rubygems/command_manager.rb +5 -12
  279. data/lib/rubygems/commands/build_command.rb +51 -18
  280. data/lib/rubygems/commands/cert_command.rb +2 -11
  281. data/lib/rubygems/commands/check_command.rb +0 -2
  282. data/lib/rubygems/commands/cleanup_command.rb +17 -13
  283. data/lib/rubygems/commands/contents_command.rb +7 -9
  284. data/lib/rubygems/commands/dependency_command.rb +9 -10
  285. data/lib/rubygems/commands/environment_command.rb +1 -6
  286. data/lib/rubygems/commands/fetch_command.rb +2 -4
  287. data/lib/rubygems/commands/generate_index_command.rb +3 -2
  288. data/lib/rubygems/commands/help_command.rb +4 -4
  289. data/lib/rubygems/commands/info_command.rb +9 -4
  290. data/lib/rubygems/commands/install_command.rb +12 -54
  291. data/lib/rubygems/commands/list_command.rb +8 -7
  292. data/lib/rubygems/commands/lock_command.rb +3 -5
  293. data/lib/rubygems/commands/mirror_command.rb +0 -1
  294. data/lib/rubygems/commands/open_command.rb +1 -4
  295. data/lib/rubygems/commands/outdated_command.rb +0 -1
  296. data/lib/rubygems/commands/owner_command.rb +10 -10
  297. data/lib/rubygems/commands/pristine_command.rb +13 -9
  298. data/lib/rubygems/commands/push_command.rb +12 -51
  299. data/lib/rubygems/commands/query_command.rb +14 -330
  300. data/lib/rubygems/commands/rdoc_command.rb +0 -1
  301. data/lib/rubygems/commands/search_command.rb +7 -7
  302. data/lib/rubygems/commands/server_command.rb +3 -1
  303. data/lib/rubygems/commands/setup_command.rb +143 -101
  304. data/lib/rubygems/commands/signin_command.rb +0 -1
  305. data/lib/rubygems/commands/signout_command.rb +0 -2
  306. data/lib/rubygems/commands/sources_command.rb +22 -6
  307. data/lib/rubygems/commands/specification_command.rb +8 -3
  308. data/lib/rubygems/commands/stale_command.rb +1 -1
  309. data/lib/rubygems/commands/uninstall_command.rb +2 -3
  310. data/lib/rubygems/commands/unpack_command.rb +3 -32
  311. data/lib/rubygems/commands/update_command.rb +73 -28
  312. data/lib/rubygems/commands/which_command.rb +0 -1
  313. data/lib/rubygems/commands/yank_command.rb +10 -7
  314. data/lib/rubygems/compatibility.rb +4 -4
  315. data/lib/rubygems/config_file.rb +48 -27
  316. data/lib/rubygems/core_ext/kernel_gem.rb +7 -6
  317. data/lib/rubygems/core_ext/kernel_require.rb +44 -6
  318. data/lib/rubygems/core_ext/kernel_warn.rb +22 -13
  319. data/lib/rubygems/core_ext/tcpsocket_init.rb +52 -0
  320. data/lib/rubygems/defaults.rb +110 -23
  321. data/lib/rubygems/dependency.rb +28 -14
  322. data/lib/rubygems/dependency_installer.rb +11 -166
  323. data/lib/rubygems/dependency_list.rb +17 -18
  324. data/lib/rubygems/deprecate.rb +51 -6
  325. data/lib/rubygems/doctor.rb +4 -4
  326. data/lib/rubygems/errors.rb +5 -7
  327. data/lib/rubygems/exceptions.rb +2 -24
  328. data/lib/rubygems/ext.rb +6 -6
  329. data/lib/rubygems/ext/build_error.rb +2 -0
  330. data/lib/rubygems/ext/builder.rb +45 -82
  331. data/lib/rubygems/ext/cmake_builder.rb +6 -7
  332. data/lib/rubygems/ext/configure_builder.rb +5 -8
  333. data/lib/rubygems/ext/ext_conf_builder.rb +27 -23
  334. data/lib/rubygems/ext/rake_builder.rb +4 -6
  335. data/lib/rubygems/gem_runner.rb +3 -10
  336. data/lib/rubygems/gemcutter_utilities.rb +111 -37
  337. data/lib/rubygems/indexer.rb +9 -26
  338. data/lib/rubygems/install_update_options.rb +7 -7
  339. data/lib/rubygems/installer.rb +91 -98
  340. data/lib/rubygems/installer_test_case.rb +104 -42
  341. data/lib/rubygems/installer_uninstaller_utils.rb +29 -0
  342. data/lib/rubygems/local_remote_options.rb +1 -1
  343. data/lib/rubygems/mock_gem_ui.rb +1 -4
  344. data/lib/rubygems/name_tuple.rb +4 -7
  345. data/lib/rubygems/openssl.rb +7 -0
  346. data/lib/rubygems/package.rb +49 -32
  347. data/lib/rubygems/package/digest_io.rb +0 -2
  348. data/lib/rubygems/package/file_source.rb +0 -2
  349. data/lib/rubygems/package/io_source.rb +0 -2
  350. data/lib/rubygems/package/old.rb +1 -3
  351. data/lib/rubygems/package/tar_header.rb +4 -6
  352. data/lib/rubygems/package/tar_reader.rb +15 -12
  353. data/lib/rubygems/package/tar_reader/entry.rb +0 -3
  354. data/lib/rubygems/package/tar_test_case.rb +2 -4
  355. data/lib/rubygems/package/tar_writer.rb +6 -16
  356. data/lib/rubygems/package_task.rb +1 -7
  357. data/lib/rubygems/path_support.rb +2 -2
  358. data/lib/rubygems/platform.rb +22 -16
  359. data/lib/rubygems/query_utils.rb +353 -0
  360. data/lib/rubygems/rdoc.rb +0 -12
  361. data/lib/rubygems/remote_fetcher.rb +33 -59
  362. data/lib/rubygems/request.rb +11 -14
  363. data/lib/rubygems/request/connection_pools.rb +3 -7
  364. data/lib/rubygems/request/http_pool.rb +0 -1
  365. data/lib/rubygems/request_set.rb +10 -23
  366. data/lib/rubygems/request_set/gem_dependency_api.rb +9 -11
  367. data/lib/rubygems/request_set/lockfile.rb +13 -12
  368. data/lib/rubygems/request_set/lockfile/parser.rb +2 -2
  369. data/lib/rubygems/request_set/lockfile/tokenizer.rb +1 -1
  370. data/lib/rubygems/requirement.rb +36 -35
  371. data/lib/rubygems/resolver.rb +20 -16
  372. data/lib/rubygems/resolver/activation_request.rb +27 -51
  373. data/lib/rubygems/resolver/api_set.rb +31 -24
  374. data/lib/rubygems/resolver/api_set/gem_parser.rb +20 -0
  375. data/lib/rubygems/resolver/api_specification.rb +24 -10
  376. data/lib/rubygems/resolver/best_set.rb +4 -6
  377. data/lib/rubygems/resolver/composed_set.rb +3 -5
  378. data/lib/rubygems/resolver/conflict.rb +2 -9
  379. data/lib/rubygems/resolver/current_set.rb +0 -2
  380. data/lib/rubygems/resolver/dependency_request.rb +1 -3
  381. data/lib/rubygems/resolver/git_set.rb +0 -2
  382. data/lib/rubygems/resolver/git_specification.rb +0 -2
  383. data/lib/rubygems/resolver/index_set.rb +1 -3
  384. data/lib/rubygems/resolver/index_specification.rb +32 -2
  385. data/lib/rubygems/resolver/installed_specification.rb +0 -2
  386. data/lib/rubygems/resolver/installer_set.rb +63 -16
  387. data/lib/rubygems/resolver/local_specification.rb +0 -2
  388. data/lib/rubygems/resolver/lock_set.rb +3 -5
  389. data/lib/rubygems/resolver/lock_specification.rb +2 -4
  390. data/lib/rubygems/resolver/molinillo/lib/molinillo.rb +6 -5
  391. data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/resolution_state.rb +7 -0
  392. data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb +8 -0
  393. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +39 -6
  394. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/action.rb +1 -0
  395. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +2 -1
  396. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +2 -1
  397. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +2 -1
  398. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +2 -1
  399. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb +7 -6
  400. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/set_payload.rb +2 -1
  401. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/tag.rb +4 -3
  402. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/vertex.rb +51 -12
  403. data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +76 -8
  404. data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +2 -1
  405. data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/specification_provider.rb +12 -0
  406. data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/ui.rb +3 -1
  407. data/lib/rubygems/resolver/molinillo/lib/molinillo/resolution.rb +510 -165
  408. data/lib/rubygems/resolver/molinillo/lib/molinillo/resolver.rb +3 -2
  409. data/lib/rubygems/resolver/molinillo/lib/molinillo/state.rb +8 -4
  410. data/lib/rubygems/resolver/requirement_list.rb +0 -1
  411. data/lib/rubygems/resolver/set.rb +0 -2
  412. data/lib/rubygems/resolver/source_set.rb +0 -2
  413. data/lib/rubygems/resolver/spec_specification.rb +14 -2
  414. data/lib/rubygems/resolver/specification.rb +13 -2
  415. data/lib/rubygems/resolver/vendor_set.rb +0 -2
  416. data/lib/rubygems/resolver/vendor_specification.rb +0 -2
  417. data/lib/rubygems/s3_uri_signer.rb +15 -13
  418. data/lib/rubygems/safe_yaml.rb +4 -4
  419. data/lib/rubygems/security.rb +27 -34
  420. data/lib/rubygems/security/policy.rb +4 -8
  421. data/lib/rubygems/security/signer.rb +8 -9
  422. data/lib/rubygems/security/trust_dir.rb +1 -3
  423. data/lib/rubygems/server.rb +20 -16
  424. data/lib/rubygems/source.rb +30 -13
  425. data/lib/rubygems/source/git.rb +7 -8
  426. data/lib/rubygems/source/installed.rb +0 -2
  427. data/lib/rubygems/source/local.rb +2 -4
  428. data/lib/rubygems/source/lock.rb +0 -2
  429. data/lib/rubygems/source/specific_file.rb +0 -2
  430. data/lib/rubygems/source/vendor.rb +0 -2
  431. data/lib/rubygems/source_list.rb +6 -6
  432. data/lib/rubygems/spec_fetcher.rb +22 -34
  433. data/lib/rubygems/specification.rb +207 -278
  434. data/lib/rubygems/specification_policy.rb +135 -57
  435. data/{bundler/lib/bundler/ssl_certs/index.rubygems.org → lib/rubygems/ssl_certs/rubygems.org}/GlobalSignRootCA.pem +0 -0
  436. data/lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem +21 -0
  437. data/lib/rubygems/stub_specification.rb +4 -5
  438. data/lib/rubygems/test_case.rb +221 -341
  439. data/lib/rubygems/test_utilities.rb +22 -18
  440. data/lib/rubygems/text.rb +2 -3
  441. data/lib/rubygems/uninstaller.rb +49 -30
  442. data/lib/rubygems/uri_formatter.rb +2 -4
  443. data/lib/rubygems/uri_parser.rb +34 -0
  444. data/lib/rubygems/uri_parsing.rb +23 -0
  445. data/lib/rubygems/user_interaction.rb +3 -20
  446. data/lib/rubygems/util.rb +20 -44
  447. data/lib/rubygems/util/licenses.rb +400 -400
  448. data/lib/rubygems/validator.rb +9 -31
  449. data/lib/rubygems/version.rb +29 -21
  450. data/lib/rubygems/version_option.rb +6 -0
  451. data/rubygems-update.gemspec +4 -11
  452. data/setup.rb +2 -7
  453. data/test/rubygems/data/null-required-ruby-version.gemspec.rz +0 -0
  454. data/test/rubygems/data/null-required-rubygems-version.gemspec.rz +0 -0
  455. data/test/rubygems/rubygems/commands/crash_command.rb +0 -2
  456. data/test/rubygems/rubygems_plugin.rb +0 -2
  457. data/test/rubygems/specifications/bar-0.0.2.gemspec +0 -2
  458. data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +12 -0
  459. data/test/rubygems/test_bundled_ca.rb +42 -45
  460. data/test/rubygems/test_config.rb +0 -2
  461. data/test/rubygems/test_deprecate.rb +41 -5
  462. data/test/rubygems/test_gem.rb +405 -236
  463. data/test/rubygems/test_gem_available_set.rb +5 -6
  464. data/test/rubygems/test_gem_bundler_version_finder.rb +20 -2
  465. data/test/rubygems/test_gem_command.rb +144 -9
  466. data/test/rubygems/test_gem_command_manager.rb +40 -17
  467. data/test/rubygems/test_gem_commands_build_command.rb +386 -13
  468. data/test/rubygems/test_gem_commands_cert_command.rb +18 -6
  469. data/test/rubygems/test_gem_commands_check_command.rb +0 -2
  470. data/test/rubygems/test_gem_commands_cleanup_command.rb +35 -10
  471. data/test/rubygems/test_gem_commands_contents_command.rb +50 -19
  472. data/test/rubygems/test_gem_commands_dependency_command.rb +1 -3
  473. data/test/rubygems/test_gem_commands_environment_command.rb +21 -33
  474. data/test/rubygems/test_gem_commands_fetch_command.rb +0 -2
  475. data/test/rubygems/test_gem_commands_generate_index_command.rb +32 -2
  476. data/test/rubygems/test_gem_commands_help_command.rb +16 -8
  477. data/test/rubygems/test_gem_commands_info_command.rb +6 -7
  478. data/test/rubygems/test_gem_commands_install_command.rb +368 -34
  479. data/test/rubygems/test_gem_commands_list_command.rb +0 -2
  480. data/test/rubygems/test_gem_commands_lock_command.rb +0 -2
  481. data/test/rubygems/test_gem_commands_mirror.rb +1 -2
  482. data/test/rubygems/test_gem_commands_open_command.rb +4 -6
  483. data/test/rubygems/test_gem_commands_outdated_command.rb +18 -1
  484. data/test/rubygems/test_gem_commands_owner_command.rb +62 -9
  485. data/test/rubygems/test_gem_commands_pristine_command.rb +148 -16
  486. data/test/rubygems/test_gem_commands_push_command.rb +94 -21
  487. data/test/rubygems/test_gem_commands_query_command.rb +35 -10
  488. data/test/rubygems/test_gem_commands_search_command.rb +0 -2
  489. data/test/rubygems/test_gem_commands_server_command.rb +6 -4
  490. data/test/rubygems/test_gem_commands_setup_command.rb +228 -128
  491. data/test/rubygems/test_gem_commands_signin_command.rb +36 -11
  492. data/test/rubygems/test_gem_commands_signout_command.rb +0 -7
  493. data/test/rubygems/test_gem_commands_sources_command.rb +193 -9
  494. data/test/rubygems/test_gem_commands_specification_command.rb +46 -20
  495. data/test/rubygems/test_gem_commands_stale_command.rb +0 -2
  496. data/test/rubygems/test_gem_commands_uninstall_command.rb +108 -52
  497. data/test/rubygems/test_gem_commands_unpack_command.rb +0 -2
  498. data/test/rubygems/test_gem_commands_update_command.rb +201 -29
  499. data/test/rubygems/test_gem_commands_which_command.rb +3 -5
  500. data/test/rubygems/test_gem_commands_yank_command.rb +86 -5
  501. data/test/rubygems/test_gem_config_file.rb +25 -13
  502. data/test/rubygems/test_gem_dependency.rb +6 -2
  503. data/test/rubygems/test_gem_dependency_installer.rb +169 -252
  504. data/test/rubygems/test_gem_dependency_list.rb +31 -26
  505. data/test/rubygems/test_gem_dependency_resolution_error.rb +1 -3
  506. data/test/rubygems/test_gem_doctor.rb +28 -2
  507. data/test/rubygems/test_gem_ext_builder.rb +51 -44
  508. data/test/rubygems/test_gem_ext_cmake_builder.rb +16 -23
  509. data/test/rubygems/test_gem_ext_configure_builder.rb +6 -14
  510. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +21 -29
  511. data/test/rubygems/test_gem_ext_rake_builder.rb +39 -22
  512. data/test/rubygems/test_gem_gem_runner.rb +47 -2
  513. data/test/rubygems/test_gem_gemcutter_utilities.rb +16 -13
  514. data/test/rubygems/test_gem_impossible_dependencies_error.rb +0 -2
  515. data/test/rubygems/test_gem_indexer.rb +40 -55
  516. data/test/rubygems/test_gem_install_update_options.rb +45 -21
  517. data/test/rubygems/test_gem_installer.rb +661 -338
  518. data/test/rubygems/test_gem_local_remote_options.rb +0 -2
  519. data/test/rubygems/test_gem_name_tuple.rb +0 -2
  520. data/test/rubygems/test_gem_package.rb +132 -45
  521. data/test/rubygems/test_gem_package_old.rb +56 -55
  522. data/test/rubygems/test_gem_package_tar_header.rb +18 -1
  523. data/test/rubygems/test_gem_package_tar_reader.rb +0 -2
  524. data/test/rubygems/test_gem_package_tar_reader_entry.rb +6 -7
  525. data/test/rubygems/test_gem_package_tar_writer.rb +20 -12
  526. data/test/rubygems/test_gem_package_task.rb +46 -13
  527. data/test/rubygems/test_gem_path_support.rb +17 -13
  528. data/test/rubygems/test_gem_platform.rb +74 -7
  529. data/test/rubygems/test_gem_rdoc.rb +0 -1
  530. data/test/rubygems/test_gem_remote_fetcher.rb +223 -209
  531. data/test/rubygems/test_gem_request.rb +30 -19
  532. data/test/rubygems/test_gem_request_connection_pools.rb +2 -2
  533. data/test/rubygems/test_gem_request_set.rb +104 -29
  534. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +4 -6
  535. data/test/rubygems/test_gem_request_set_lockfile.rb +4 -5
  536. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +9 -10
  537. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +118 -118
  538. data/test/rubygems/test_gem_requirement.rb +50 -4
  539. data/test/rubygems/test_gem_resolver.rb +73 -31
  540. data/test/rubygems/test_gem_resolver_activation_request.rb +3 -34
  541. data/test/rubygems/test_gem_resolver_api_set.rb +60 -59
  542. data/test/rubygems/test_gem_resolver_api_specification.rb +3 -5
  543. data/test/rubygems/test_gem_resolver_best_set.rb +27 -6
  544. data/test/rubygems/test_gem_resolver_composed_set.rb +0 -2
  545. data/test/rubygems/test_gem_resolver_conflict.rb +1 -7
  546. data/test/rubygems/test_gem_resolver_dependency_request.rb +0 -2
  547. data/test/rubygems/test_gem_resolver_git_set.rb +0 -2
  548. data/test/rubygems/test_gem_resolver_git_specification.rb +1 -2
  549. data/test/rubygems/test_gem_resolver_index_set.rb +2 -4
  550. data/test/rubygems/test_gem_resolver_index_specification.rb +7 -4
  551. data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -3
  552. data/test/rubygems/test_gem_resolver_installer_set.rb +10 -10
  553. data/test/rubygems/test_gem_resolver_local_specification.rb +0 -2
  554. data/test/rubygems/test_gem_resolver_lock_set.rb +3 -5
  555. data/test/rubygems/test_gem_resolver_lock_specification.rb +0 -2
  556. data/test/rubygems/test_gem_resolver_requirement_list.rb +0 -2
  557. data/test/rubygems/test_gem_resolver_specification.rb +0 -2
  558. data/test/rubygems/test_gem_resolver_vendor_set.rb +1 -3
  559. data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -2
  560. data/test/rubygems/test_gem_security.rb +27 -25
  561. data/test/rubygems/test_gem_security_policy.rb +7 -12
  562. data/test/rubygems/test_gem_security_signer.rb +11 -12
  563. data/test/rubygems/test_gem_security_trust_dir.rb +4 -6
  564. data/test/rubygems/test_gem_server.rb +13 -12
  565. data/test/rubygems/test_gem_silent_ui.rb +0 -1
  566. data/test/rubygems/test_gem_source.rb +32 -17
  567. data/test/rubygems/test_gem_source_fetch_problem.rb +0 -1
  568. data/test/rubygems/test_gem_source_git.rb +12 -18
  569. data/test/rubygems/test_gem_source_installed.rb +11 -13
  570. data/test/rubygems/test_gem_source_list.rb +1 -1
  571. data/test/rubygems/test_gem_source_local.rb +8 -9
  572. data/test/rubygems/test_gem_source_lock.rb +17 -19
  573. data/test/rubygems/test_gem_source_specific_file.rb +9 -10
  574. data/test/rubygems/test_gem_source_subpath_problem.rb +49 -0
  575. data/test/rubygems/test_gem_source_vendor.rb +7 -9
  576. data/test/rubygems/test_gem_spec_fetcher.rb +11 -4
  577. data/test/rubygems/test_gem_specification.rb +363 -245
  578. data/test/rubygems/test_gem_stream_ui.rb +3 -1
  579. data/test/rubygems/test_gem_stub_specification.rb +6 -7
  580. data/test/rubygems/test_gem_text.rb +1 -2
  581. data/test/rubygems/test_gem_uninstaller.rb +165 -22
  582. data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +0 -2
  583. data/test/rubygems/test_gem_uri_formatter.rb +0 -2
  584. data/test/rubygems/test_gem_util.rb +17 -15
  585. data/test/rubygems/test_gem_validator.rb +4 -7
  586. data/test/rubygems/test_gem_version.rb +23 -10
  587. data/test/rubygems/test_gem_version_option.rb +1 -3
  588. data/test/rubygems/test_kernel.rb +25 -9
  589. data/test/rubygems/test_project_sanity.rb +20 -0
  590. data/test/rubygems/test_remote_fetch_error.rb +1 -2
  591. data/test/rubygems/test_require.rb +394 -56
  592. data/test/test_changelog_generator.rb +17 -0
  593. metadata +109 -155
  594. data/.rubocop.yml +0 -67
  595. data/.travis.yml +0 -38
  596. data/appveyor.yml +0 -43
  597. data/bundler/CODE_OF_CONDUCT.md +0 -42
  598. data/bundler/CONTRIBUTING.md +0 -17
  599. data/bundler/exe/bundle_ruby +0 -60
  600. data/bundler/lib/bundler/cli/package.rb +0 -49
  601. data/bundler/lib/bundler/compatibility_guard.rb +0 -14
  602. data/bundler/lib/bundler/gem_remote_fetcher.rb +0 -43
  603. data/bundler/lib/bundler/ssl_certs/certificate_manager.rb +0 -66
  604. data/bundler/lib/bundler/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem +0 -23
  605. data/bundler/lib/bundler/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem +0 -25
  606. data/bundler/lib/bundler/templates/newgem/test/test_helper.rb.tt +0 -4
  607. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb +0 -26
  608. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/faster.rb +0 -27
  609. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/ssl_reuse.rb +0 -129
  610. data/bundler/lib/bundler/vendor/thor/lib/thor/core_ext/io_binary_read.rb +0 -12
  611. data/bundler/lib/bundler/vendor/thor/lib/thor/core_ext/ordered_hash.rb +0 -129
  612. data/lib/rubygems/source_local.rb +0 -7
  613. data/lib/rubygems/source_specific_file.rb +0 -6
  614. data/lib/rubygems/ssl_certs/index.rubygems.org/GlobalSignRootCA.pem +0 -21
  615. data/lib/rubygems/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem +0 -23
  616. data/lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem +0 -25
  617. data/lib/ubygems.rb +0 -14
  618. data/util/CL2notes +0 -55
  619. data/util/ci +0 -82
  620. data/util/cops/deprecations.rb +0 -52
  621. data/util/create_certs.rb +0 -171
  622. data/util/create_certs.sh +0 -27
  623. data/util/create_encrypted_key.rb +0 -16
  624. data/util/generate_spdx_license_list.rb +0 -61
  625. data/util/patch_with_prs.rb +0 -77
  626. data/util/rubocop +0 -8
  627. data/util/update_bundled_ca_certificates.rb +0 -139
  628. data/util/update_changelog.rb +0 -67
@@ -4,7 +4,6 @@ require 'rubygems/local_remote_options'
4
4
  require 'rubygems/command'
5
5
 
6
6
  class TestGemLocalRemoteOptions < Gem::TestCase
7
-
8
7
  def setup
9
8
  super
10
9
 
@@ -130,5 +129,4 @@ class TestGemLocalRemoteOptions < Gem::TestCase
130
129
 
131
130
  assert_equal [@gem_repo], Gem.sources
132
131
  end
133
-
134
132
  end
@@ -3,7 +3,6 @@ require 'rubygems/test_case'
3
3
  require 'rubygems/name_tuple'
4
4
 
5
5
  class TestGemNameTuple < Gem::TestCase
6
-
7
6
  def test_full_name
8
7
  n = Gem::NameTuple.new "a", Gem::Version.new(0), "ruby"
9
8
  assert_equal "a-0", n.full_name
@@ -40,5 +39,4 @@ class TestGemNameTuple < Gem::TestCase
40
39
 
41
40
  assert_equal 1, a_p.<=>(a)
42
41
  end
43
-
44
42
  end
@@ -1,11 +1,9 @@
1
- # coding: utf-8
2
1
  # frozen_string_literal: true
3
2
 
4
3
  require 'rubygems/package/tar_test_case'
5
- require 'rubygems/simple_gem'
4
+ require 'digest'
6
5
 
7
6
  class TestGemPackage < Gem::Package::TarTestCase
8
-
9
7
  def setup
10
8
  super
11
9
 
@@ -24,6 +22,8 @@ class TestGemPackage < Gem::Package::TarTestCase
24
22
  end
25
23
 
26
24
  def test_class_new_old_format
25
+ skip "jruby can't require the simple_gem file" if Gem.java_platform?
26
+ require_relative "simple_gem"
27
27
  File.open 'old_format.gem', 'wb' do |io|
28
28
  io.write SIMPLE_GEM
29
29
  end
@@ -91,20 +91,17 @@ class TestGemPackage < Gem::Package::TarTestCase
91
91
  'SHA512' => {
92
92
  'metadata.gz' => metadata_sha512,
93
93
  'data.tar.gz' => Digest::SHA512.hexdigest(tar),
94
- }
95
- }
96
-
97
- if defined?(OpenSSL::Digest)
98
- expected['SHA256'] = {
94
+ },
95
+ 'SHA256' => {
99
96
  'metadata.gz' => metadata_sha256,
100
97
  'data.tar.gz' => Digest::SHA256.hexdigest(tar),
101
- }
102
- end
98
+ },
99
+ }
103
100
 
104
101
  assert_equal expected, YAML.load(checksums)
105
102
  end
106
103
 
107
- def test_build_time_source_date_epoch
104
+ def test_build_time_uses_source_date_epoch
108
105
  epoch = ENV["SOURCE_DATE_EPOCH"]
109
106
  ENV["SOURCE_DATE_EPOCH"] = "123456789"
110
107
 
@@ -115,7 +112,6 @@ class TestGemPackage < Gem::Package::TarTestCase
115
112
  spec.date = Time.at 0
116
113
  spec.rubygems_version = Gem::Version.new '0'
117
114
 
118
-
119
115
  package = Gem::Package.new spec.file_name
120
116
 
121
117
  assert_equal Time.at(ENV["SOURCE_DATE_EPOCH"].to_i).utc, package.build_time
@@ -123,14 +119,40 @@ class TestGemPackage < Gem::Package::TarTestCase
123
119
  ENV["SOURCE_DATE_EPOCH"] = epoch
124
120
  end
125
121
 
122
+ def test_build_time_without_source_date_epoch
123
+ epoch = ENV["SOURCE_DATE_EPOCH"]
124
+ ENV["SOURCE_DATE_EPOCH"] = nil
125
+
126
+ spec = Gem::Specification.new 'build', '1'
127
+ spec.summary = 'build'
128
+ spec.authors = 'build'
129
+ spec.files = ['lib/code.rb']
130
+ spec.rubygems_version = Gem::Version.new '0'
131
+
132
+ package = Gem::Package.new spec.file_name
133
+
134
+ assert_kind_of Time, package.build_time
135
+
136
+ build_time = package.build_time.to_i
137
+
138
+ assert_equal Gem.source_date_epoch.to_i, build_time
139
+ ensure
140
+ ENV["SOURCE_DATE_EPOCH"] = epoch
141
+ end
142
+
126
143
  def test_add_files
127
144
  spec = Gem::Specification.new
128
145
  spec.files = %w[lib/code.rb lib/empty]
129
146
 
130
147
  FileUtils.mkdir_p 'lib/empty'
131
148
 
132
- File.open 'lib/code.rb', 'w' do |io| io.write '# lib/code.rb' end
133
- File.open 'lib/extra.rb', 'w' do |io| io.write '# lib/extra.rb' end
149
+ File.open 'lib/code.rb', 'w' do |io|
150
+ io.write '# lib/code.rb'
151
+ end
152
+
153
+ File.open 'lib/extra.rb', 'w' do |io|
154
+ io.write '# lib/extra.rb'
155
+ end
134
156
 
135
157
  package = Gem::Package.new 'bogus.gem'
136
158
  package.spec = spec
@@ -157,7 +179,10 @@ class TestGemPackage < Gem::Package::TarTestCase
157
179
  spec.files = %w[lib/code.rb lib/code_sym.rb lib/code_sym2.rb]
158
180
 
159
181
  FileUtils.mkdir_p 'lib'
160
- File.open 'lib/code.rb', 'w' do |io| io.write '# lib/code.rb' end
182
+
183
+ File.open 'lib/code.rb', 'w' do |io|
184
+ io.write '# lib/code.rb'
185
+ end
161
186
 
162
187
  # NOTE: 'code.rb' is correct, because it's relative to lib/code_sym.rb
163
188
  begin
@@ -227,7 +252,7 @@ class TestGemPackage < Gem::Package::TarTestCase
227
252
  end
228
253
 
229
254
  def test_build_auto_signed
230
- skip 'openssl is missing' unless defined?(OpenSSL::SSL)
255
+ skip 'openssl is missing' unless Gem::HAVE_OPENSSL
231
256
 
232
257
  FileUtils.mkdir_p File.join(Gem.user_home, '.gem')
233
258
 
@@ -270,7 +295,7 @@ class TestGemPackage < Gem::Package::TarTestCase
270
295
  end
271
296
 
272
297
  def test_build_auto_signed_encrypted_key
273
- skip 'openssl is missing' unless defined?(OpenSSL::SSL)
298
+ skip 'openssl is missing' unless Gem::HAVE_OPENSSL
274
299
 
275
300
  FileUtils.mkdir_p File.join(Gem.user_home, '.gem')
276
301
 
@@ -339,7 +364,7 @@ class TestGemPackage < Gem::Package::TarTestCase
339
364
  end
340
365
 
341
366
  def test_build_signed
342
- skip 'openssl is missing' unless defined?(OpenSSL::SSL)
367
+ skip 'openssl is missing' unless Gem::HAVE_OPENSSL
343
368
 
344
369
  spec = Gem::Specification.new 'build', '1'
345
370
  spec.summary = 'build'
@@ -376,7 +401,7 @@ class TestGemPackage < Gem::Package::TarTestCase
376
401
  end
377
402
 
378
403
  def test_build_signed_encrypted_key
379
- skip 'openssl is missing' unless defined?(OpenSSL::SSL)
404
+ skip 'openssl is missing' unless Gem::HAVE_OPENSSL
380
405
 
381
406
  spec = Gem::Specification.new 'build', '1'
382
407
  spec.summary = 'build'
@@ -412,6 +437,33 @@ class TestGemPackage < Gem::Package::TarTestCase
412
437
  assert_equal %w[lib/code.rb], reader.contents
413
438
  end
414
439
 
440
+ def test_raw_spec
441
+ data_tgz = util_tar_gz {}
442
+
443
+ gem = util_tar do |tar|
444
+ tar.add_file 'data.tar.gz', 0644 do |io|
445
+ io.write data_tgz.string
446
+ end
447
+
448
+ tar.add_file 'metadata.gz', 0644 do |io|
449
+ Zlib::GzipWriter.wrap io do |gzio|
450
+ gzio.write @spec.to_yaml
451
+ end
452
+ end
453
+ end
454
+
455
+ gem_path = "#{@destination}/test.gem"
456
+
457
+ File.open gem_path, "wb" do |io|
458
+ io.write gem.string
459
+ end
460
+
461
+ spec, metadata = Gem::Package.raw_spec(gem_path)
462
+
463
+ assert_equal @spec, spec
464
+ assert_match @spec.to_yaml, metadata.force_encoding("UTF-8")
465
+ end
466
+
415
467
  def test_contents
416
468
  package = Gem::Package.new @gem
417
469
 
@@ -433,7 +485,7 @@ class TestGemPackage < Gem::Package::TarTestCase
433
485
  end
434
486
 
435
487
  def test_extract_files_empty
436
- data_tgz = util_tar_gz do end
488
+ data_tgz = util_tar_gz {}
437
489
 
438
490
  gem = util_tar do |tar|
439
491
  tar.add_file 'data.tar.gz', 0644 do |io|
@@ -462,7 +514,9 @@ class TestGemPackage < Gem::Package::TarTestCase
462
514
  package = Gem::Package.new @gem
463
515
 
464
516
  tgz_io = util_tar_gz do |tar|
465
- tar.add_file '/absolute.rb', 0644 do |io| io.write 'hi' end
517
+ tar.add_file '/absolute.rb', 0644 do |io|
518
+ io.write 'hi'
519
+ end
466
520
  end
467
521
 
468
522
  e = assert_raises Gem::Package::PathError do
@@ -477,8 +531,11 @@ class TestGemPackage < Gem::Package::TarTestCase
477
531
  package = Gem::Package.new @gem
478
532
 
479
533
  tgz_io = util_tar_gz do |tar|
480
- tar.add_file 'relative.rb', 0644 do |io| io.write 'hi' end
481
- tar.mkdir 'lib', 0755
534
+ tar.add_file 'relative.rb', 0644 do |io|
535
+ io.write 'hi'
536
+ end
537
+
538
+ tar.mkdir 'lib', 0755
482
539
  tar.add_symlink 'lib/foo.rb', '../relative.rb', 0644
483
540
  end
484
541
 
@@ -506,7 +563,9 @@ class TestGemPackage < Gem::Package::TarTestCase
506
563
  tgz_io = util_tar_gz do |tar|
507
564
  tar.mkdir 'lib', 0755
508
565
  tar.add_symlink 'lib/link', '../..', 0644
509
- tar.add_file 'lib/link/outside.txt', 0644 do |io| io.write 'hi' end
566
+ tar.add_file 'lib/link/outside.txt', 0644 do |io|
567
+ io.write 'hi'
568
+ end
510
569
  end
511
570
 
512
571
  # Extract into a subdirectory of @destination; if this test fails it writes
@@ -542,6 +601,8 @@ class TestGemPackage < Gem::Package::TarTestCase
542
601
  destination_user_subdir = File.join destination_user_dir, 'dir'
543
602
  FileUtils.mkdir_p destination_user_subdir
544
603
 
604
+ skip "TMPDIR seems too long to add it as symlink into tar" if destination_user_dir.size > 90
605
+
545
606
  tgz_io = util_tar_gz do |tar|
546
607
  tar.add_symlink 'link', destination_user_dir, 16877
547
608
  tar.add_symlink 'link/dir', '.', 16877
@@ -568,8 +629,10 @@ class TestGemPackage < Gem::Package::TarTestCase
568
629
 
569
630
  tgz_io = util_tar_gz do |tar|
570
631
  tar.mkdir 'lib', 0755
571
- tar.add_file 'lib/foo.rb', 0644 do |io| io.write 'hi' end
572
- tar.mkdir 'lib/foo', 0755
632
+ tar.add_file 'lib/foo.rb', 0644 do |io|
633
+ io.write 'hi'
634
+ end
635
+ tar.mkdir 'lib/foo', 0755
573
636
  end
574
637
 
575
638
  package.extract_tar_gz tgz_io, @destination
@@ -585,7 +648,9 @@ class TestGemPackage < Gem::Package::TarTestCase
585
648
  package = Gem::Package.new @gem
586
649
 
587
650
  tgz_io = util_tar_gz do |tar|
588
- tar.add_file './dot_slash.rb', 0644 do |io| io.write 'hi' end
651
+ tar.add_file './dot_slash.rb', 0644 do |io|
652
+ io.write 'hi'
653
+ end
589
654
  end
590
655
 
591
656
  package.extract_tar_gz tgz_io, @destination
@@ -598,7 +663,9 @@ class TestGemPackage < Gem::Package::TarTestCase
598
663
  package = Gem::Package.new @gem
599
664
 
600
665
  tgz_io = util_tar_gz do |tar|
601
- tar.add_file '.dot_file.rb', 0644 do |io| io.write 'hi' end
666
+ tar.add_file '.dot_file.rb', 0644 do |io|
667
+ io.write 'hi'
668
+ end
602
669
  end
603
670
 
604
671
  package.extract_tar_gz tgz_io, @destination
@@ -612,7 +679,9 @@ class TestGemPackage < Gem::Package::TarTestCase
612
679
  package = Gem::Package.new @gem
613
680
 
614
681
  tgz_io = util_tar_gz do |tar|
615
- tar.add_file 'foo/file.rb', 0644 do |io| io.write 'hi' end
682
+ tar.add_file 'foo/file.rb', 0644 do |io|
683
+ io.write 'hi'
684
+ end
616
685
  end
617
686
 
618
687
  package.extract_tar_gz tgz_io, @destination.upcase
@@ -626,12 +695,12 @@ class TestGemPackage < Gem::Package::TarTestCase
626
695
  package = Gem::Package.new @gem
627
696
 
628
697
  file = 'file.rb'.dup
629
- file.taint
698
+ file.taint if RUBY_VERSION < '2.7'
630
699
 
631
700
  destination = package.install_location file, @destination
632
701
 
633
702
  assert_equal File.join(@destination, 'file.rb'), destination
634
- refute destination.tainted?
703
+ refute destination.tainted? if RUBY_VERSION < '2.7'
635
704
  end
636
705
 
637
706
  def test_install_location_absolute
@@ -665,14 +734,14 @@ class TestGemPackage < Gem::Package::TarTestCase
665
734
  package = Gem::Package.new @gem
666
735
 
667
736
  file = 'foo//file.rb'.dup
668
- file.taint
737
+ file.taint if RUBY_VERSION < '2.7'
669
738
 
670
739
  destination = @destination.sub '/', '//'
671
740
 
672
741
  destination = package.install_location file, destination
673
742
 
674
743
  assert_equal File.join(@destination, 'foo', 'file.rb'), destination
675
- refute destination.tainted?
744
+ refute destination.tainted? if RUBY_VERSION < '2.7'
676
745
  end
677
746
 
678
747
  def test_install_location_relative
@@ -817,6 +886,7 @@ class TestGemPackage < Gem::Package::TarTestCase
817
886
  end
818
887
 
819
888
  def test_verify_corrupt
889
+ skip "jruby strips the null byte and does not think it's corrupt" if Gem.java_platform?
820
890
  tf = Tempfile.open 'corrupt' do |io|
821
891
  data = Gem::Util.gzip 'a' * 10
822
892
  io.write \
@@ -856,8 +926,8 @@ class TestGemPackage < Gem::Package::TarTestCase
856
926
  package.verify
857
927
  end
858
928
 
859
- assert_match %r%^No such file or directory%, e.message
860
- assert_match %r%nonexistent.gem$%, e.message
929
+ assert_match %r{^No such file or directory}, e.message
930
+ assert_match %r{nonexistent.gem$}, e.message
861
931
  end
862
932
 
863
933
  def test_verify_duplicate_file
@@ -887,7 +957,7 @@ class TestGemPackage < Gem::Package::TarTestCase
887
957
  end
888
958
 
889
959
  def test_verify_security_policy
890
- skip 'openssl is missing' unless defined?(OpenSSL::SSL)
960
+ skip 'openssl is missing' unless Gem::HAVE_OPENSSL
891
961
 
892
962
  package = Gem::Package.new @gem
893
963
  package.security_policy = Gem::Security::HighSecurity
@@ -904,7 +974,7 @@ class TestGemPackage < Gem::Package::TarTestCase
904
974
  end
905
975
 
906
976
  def test_verify_security_policy_low_security
907
- skip 'openssl is missing' unless defined?(OpenSSL::SSL)
977
+ skip 'openssl is missing' unless Gem::HAVE_OPENSSL
908
978
 
909
979
  @spec.cert_chain = [PUBLIC_CERT.to_pem]
910
980
  @spec.signing_key = PRIVATE_KEY
@@ -924,7 +994,7 @@ class TestGemPackage < Gem::Package::TarTestCase
924
994
  end
925
995
 
926
996
  def test_verify_security_policy_checksum_missing
927
- skip 'openssl is missing' unless defined?(OpenSSL::SSL)
997
+ skip 'openssl is missing' unless Gem::HAVE_OPENSSL
928
998
 
929
999
  @spec.cert_chain = [PUBLIC_CERT.to_pem]
930
1000
  @spec.signing_key = PRIVATE_KEY
@@ -945,7 +1015,7 @@ class TestGemPackage < Gem::Package::TarTestCase
945
1015
  bogus_data = Gem::Util.gzip 'hello'
946
1016
  fake_signer = Class.new do
947
1017
  def digest_name; 'SHA512'; end
948
- def digest_algorithm; Digest(:SHA512); end
1018
+ def digest_algorithm; Digest(:SHA512).new; end
949
1019
  def key; 'key'; end
950
1020
  def sign(*); 'fake_sig'; end
951
1021
  end
@@ -995,11 +1065,22 @@ class TestGemPackage < Gem::Package::TarTestCase
995
1065
 
996
1066
  package = Gem::Package.new @gem
997
1067
 
998
- e = assert_raises Gem::Package::FormatError do
999
- package.verify_entry entry
1068
+ _, err = use_ui @ui do
1069
+ e = nil
1070
+
1071
+ out_err = capture_io do
1072
+ e = assert_raises ArgumentError do
1073
+ package.verify_entry entry
1074
+ end
1075
+ end
1076
+
1077
+ assert_equal "whatever", e.message
1078
+ assert_equal "full_name", e.backtrace_locations.first.label
1079
+
1080
+ out_err
1000
1081
  end
1001
1082
 
1002
- assert_equal "package is corrupt, exception while verifying: whatever (ArgumentError) in #{@gem}", e.message
1083
+ assert_equal "Exception while verifying #{@gem}\n", err
1003
1084
 
1004
1085
  valid_metadata = ["metadata", "metadata.gz"]
1005
1086
  valid_metadata.each do |vm|
@@ -1024,7 +1105,7 @@ class TestGemPackage < Gem::Package::TarTestCase
1024
1105
  $bad_name = vm
1025
1106
 
1026
1107
  entry = Object.new
1027
- def entry.full_name() $bad_name end
1108
+ def entry.full_name() $bad_name end
1028
1109
 
1029
1110
  package = Gem::Package.new(@gem)
1030
1111
  package.instance_variable_set(:@files, [])
@@ -1042,6 +1123,11 @@ class TestGemPackage < Gem::Package::TarTestCase
1042
1123
  assert_equal @spec, package.spec
1043
1124
  end
1044
1125
 
1126
+ def test_gem_attr
1127
+ package = Gem::Package.new(@gem)
1128
+ assert_equal(@gem, package.gem.path)
1129
+ end
1130
+
1045
1131
  def test_spec_from_io
1046
1132
  # This functionality is used by rubygems.org to extract spec data from an
1047
1133
  # uploaded gem before it is written to storage.
@@ -1077,9 +1163,10 @@ class TestGemPackage < Gem::Package::TarTestCase
1077
1163
  tgz_io = StringIO.new
1078
1164
 
1079
1165
  # can't wrap TarWriter because it seeks
1080
- Zlib::GzipWriter.wrap tgz_io do |io| io.write tar_io.string end
1166
+ Zlib::GzipWriter.wrap tgz_io do |io|
1167
+ io.write tar_io.string
1168
+ end
1081
1169
 
1082
1170
  StringIO.new tgz_io.string
1083
1171
  end
1084
-
1085
1172
  end
@@ -1,89 +1,90 @@
1
1
  # frozen_string_literal: true
2
2
  require 'rubygems/test_case'
3
- require 'rubygems/simple_gem'
4
3
 
5
- class TestGemPackageOld < Gem::TestCase
4
+ unless Gem.java_platform? # jruby can't require the simple_gem file
5
+ require 'rubygems/simple_gem'
6
6
 
7
- def setup
8
- super
7
+ class TestGemPackageOld < Gem::TestCase
8
+ def setup
9
+ super
9
10
 
10
- File.open 'old_format.gem', 'wb' do |io|
11
- io.write SIMPLE_GEM
12
- end
11
+ File.open 'old_format.gem', 'wb' do |io|
12
+ io.write SIMPLE_GEM
13
+ end
13
14
 
14
- @package = Gem::Package::Old.new 'old_format.gem'
15
- @destination = File.join @tempdir, 'extract'
15
+ @package = Gem::Package::Old.new 'old_format.gem'
16
+ @destination = File.join @tempdir, 'extract'
16
17
 
17
- FileUtils.mkdir_p @destination
18
- end
18
+ FileUtils.mkdir_p @destination
19
+ end
19
20
 
20
- def test_contents
21
- assert_equal %w[lib/foo.rb lib/test.rb lib/test/wow.rb], @package.contents
22
- end
21
+ def test_contents
22
+ assert_equal %w[lib/foo.rb lib/test.rb lib/test/wow.rb], @package.contents
23
+ end
23
24
 
24
- def test_contents_security_policy
25
- skip 'openssl is missing' unless defined?(OpenSSL::SSL)
25
+ def test_contents_security_policy
26
+ skip 'openssl is missing' unless Gem::HAVE_OPENSSL
26
27
 
27
- @package.security_policy = Gem::Security::AlmostNoSecurity
28
+ @package.security_policy = Gem::Security::AlmostNoSecurity
28
29
 
29
- assert_raises Gem::Security::Exception do
30
- @package.contents
30
+ assert_raises Gem::Security::Exception do
31
+ @package.contents
32
+ end
31
33
  end
32
- end
33
34
 
34
- def test_extract_files
35
- @package.extract_files @destination
35
+ def test_extract_files
36
+ @package.extract_files @destination
36
37
 
37
- extracted = File.join @destination, 'lib/foo.rb'
38
- assert_path_exists extracted
38
+ extracted = File.join @destination, 'lib/foo.rb'
39
+ assert_path_exists extracted
39
40
 
40
- mask = 0100644 & (~File.umask)
41
+ mask = 0100644 & (~File.umask)
41
42
 
42
- assert_equal mask, File.stat(extracted).mode unless win_platform?
43
- end
43
+ assert_equal mask, File.stat(extracted).mode unless win_platform?
44
+ end
44
45
 
45
- def test_extract_files_security_policy
46
- skip 'openssl is missing' unless defined?(OpenSSL::SSL)
46
+ def test_extract_files_security_policy
47
+ skip 'openssl is missing' unless Gem::HAVE_OPENSSL
47
48
 
48
- @package.security_policy = Gem::Security::AlmostNoSecurity
49
+ @package.security_policy = Gem::Security::AlmostNoSecurity
49
50
 
50
- assert_raises Gem::Security::Exception do
51
- @package.extract_files @destination
51
+ assert_raises Gem::Security::Exception do
52
+ @package.extract_files @destination
53
+ end
52
54
  end
53
- end
54
55
 
55
- def test_spec
56
- assert_equal 'testing', @package.spec.name
57
- end
56
+ def test_spec
57
+ assert_equal 'testing', @package.spec.name
58
+ end
58
59
 
59
- def test_spec_security_policy
60
- skip 'openssl is missing' unless defined?(OpenSSL::SSL)
60
+ def test_spec_security_policy
61
+ skip 'openssl is missing' unless Gem::HAVE_OPENSSL
61
62
 
62
- @package.security_policy = Gem::Security::AlmostNoSecurity
63
+ @package.security_policy = Gem::Security::AlmostNoSecurity
63
64
 
64
- assert_raises Gem::Security::Exception do
65
- @package.spec
65
+ assert_raises Gem::Security::Exception do
66
+ @package.spec
67
+ end
66
68
  end
67
- end
68
69
 
69
- def test_verify
70
- skip 'openssl is missing' unless defined?(OpenSSL::SSL)
70
+ def test_verify
71
+ skip 'openssl is missing' unless Gem::HAVE_OPENSSL
71
72
 
72
- assert @package.verify
73
+ assert @package.verify
73
74
 
74
- @package.security_policy = Gem::Security::NoSecurity
75
+ @package.security_policy = Gem::Security::NoSecurity
75
76
 
76
- assert @package.verify
77
+ assert @package.verify
77
78
 
78
- @package.security_policy = Gem::Security::AlmostNoSecurity
79
+ @package.security_policy = Gem::Security::AlmostNoSecurity
79
80
 
80
- e = assert_raises Gem::Security::Exception do
81
- @package.verify
82
- end
81
+ e = assert_raises Gem::Security::Exception do
82
+ @package.verify
83
+ end
83
84
 
84
- assert_equal 'old format gems do not contain signatures ' +
85
- 'and cannot be verified',
86
- e.message
85
+ assert_equal 'old format gems do not contain signatures ' +
86
+ 'and cannot be verified',
87
+ e.message
88
+ end
87
89
  end
88
-
89
90
  end