rubygems-update 3.1.6 → 3.3.22

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 (703) hide show
  1. checksums.yaml +4 -4
  2. data/{History.txt → CHANGELOG.md} +1452 -514
  3. data/CODE_OF_CONDUCT.md +55 -19
  4. data/CONTRIBUTING.md +74 -27
  5. data/Manifest.txt +154 -117
  6. data/POLICIES.md +27 -19
  7. data/README.md +10 -8
  8. data/UPGRADING.md +5 -81
  9. data/bin/gem +3 -8
  10. data/bin/update_rubygems +5 -5
  11. data/bundler/CHANGELOG.md +2358 -1430
  12. data/bundler/README.md +7 -9
  13. data/bundler/UPGRADING.md +27 -34
  14. data/bundler/bundler.gemspec +8 -11
  15. data/bundler/exe/bundle +10 -8
  16. data/bundler/exe/bundler +1 -1
  17. data/bundler/lib/bundler/.document +1 -0
  18. data/bundler/lib/bundler/build_metadata.rb +4 -12
  19. data/bundler/lib/bundler/cli/add.rb +1 -1
  20. data/bundler/lib/bundler/cli/binstubs.rb +6 -2
  21. data/bundler/lib/bundler/cli/cache.rb +3 -8
  22. data/bundler/lib/bundler/cli/check.rb +4 -2
  23. data/bundler/lib/bundler/cli/clean.rb +1 -1
  24. data/bundler/lib/bundler/cli/common.rb +31 -3
  25. data/bundler/lib/bundler/cli/config.rb +10 -1
  26. data/bundler/lib/bundler/cli/console.rb +1 -1
  27. data/bundler/lib/bundler/cli/doctor.rb +25 -6
  28. data/bundler/lib/bundler/cli/exec.rb +5 -10
  29. data/bundler/lib/bundler/cli/fund.rb +36 -0
  30. data/bundler/lib/bundler/cli/gem.rb +219 -28
  31. data/bundler/lib/bundler/cli/info.rb +38 -6
  32. data/bundler/lib/bundler/cli/init.rb +3 -3
  33. data/bundler/lib/bundler/cli/inject.rb +1 -1
  34. data/bundler/lib/bundler/cli/install.rb +25 -54
  35. data/bundler/lib/bundler/cli/issue.rb +5 -4
  36. data/bundler/lib/bundler/cli/list.rb +19 -11
  37. data/bundler/lib/bundler/cli/lock.rb +5 -1
  38. data/bundler/lib/bundler/cli/open.rb +1 -2
  39. data/bundler/lib/bundler/cli/outdated.rb +105 -76
  40. data/bundler/lib/bundler/cli/platform.rb +2 -2
  41. data/bundler/lib/bundler/cli/plugin.rb +10 -0
  42. data/bundler/lib/bundler/cli/pristine.rb +5 -0
  43. data/bundler/lib/bundler/cli/remove.rb +1 -2
  44. data/bundler/lib/bundler/cli/show.rb +2 -2
  45. data/bundler/lib/bundler/cli/update.rb +20 -9
  46. data/bundler/lib/bundler/cli.rb +106 -83
  47. data/bundler/lib/bundler/compact_index_client/cache.rb +6 -23
  48. data/bundler/lib/bundler/compact_index_client/gem_parser.rb +28 -0
  49. data/bundler/lib/bundler/compact_index_client/updater.rb +29 -25
  50. data/bundler/lib/bundler/compact_index_client.rb +3 -9
  51. data/bundler/lib/bundler/current_ruby.rb +17 -6
  52. data/bundler/lib/bundler/definition.rb +297 -396
  53. data/bundler/lib/bundler/dep_proxy.rb +16 -9
  54. data/bundler/lib/bundler/dependency.rb +22 -77
  55. data/bundler/lib/bundler/digest.rb +71 -0
  56. data/bundler/lib/bundler/dsl.rb +76 -83
  57. data/bundler/lib/bundler/endpoint_specification.rb +16 -14
  58. data/bundler/lib/bundler/env.rb +2 -2
  59. data/bundler/lib/bundler/environment_preserver.rb +29 -2
  60. data/bundler/lib/bundler/errors.rb +30 -3
  61. data/bundler/lib/bundler/feature_flag.rb +0 -9
  62. data/bundler/lib/bundler/fetcher/base.rb +7 -9
  63. data/bundler/lib/bundler/fetcher/compact_index.rb +11 -16
  64. data/bundler/lib/bundler/fetcher/downloader.rb +10 -7
  65. data/bundler/lib/bundler/fetcher/index.rb +2 -30
  66. data/bundler/lib/bundler/fetcher.rb +24 -25
  67. data/bundler/lib/bundler/friendly_errors.rb +46 -47
  68. data/bundler/lib/bundler/gem_helper.rb +53 -31
  69. data/bundler/lib/bundler/gem_helpers.rb +43 -24
  70. data/bundler/lib/bundler/gem_version_promoter.rb +10 -20
  71. data/bundler/lib/bundler/graph.rb +1 -1
  72. data/bundler/lib/bundler/index.rb +19 -25
  73. data/bundler/lib/bundler/injector.rb +38 -6
  74. data/bundler/lib/bundler/inline.rb +4 -13
  75. data/bundler/lib/bundler/installer/gem_installer.rb +19 -24
  76. data/bundler/lib/bundler/installer/parallel_installer.rb +46 -25
  77. data/bundler/lib/bundler/installer/standalone.rb +58 -11
  78. data/bundler/lib/bundler/installer.rb +51 -81
  79. data/bundler/lib/bundler/lazy_specification.rb +79 -36
  80. data/bundler/lib/bundler/lockfile_generator.rb +3 -3
  81. data/bundler/lib/bundler/lockfile_parser.rb +19 -44
  82. data/bundler/lib/bundler/man/.document +1 -0
  83. data/bundler/{man → lib/bundler/man}/bundle-add.1 +21 -5
  84. data/bundler/{man/bundle-add.ronn → lib/bundler/man/bundle-add.1.ronn} +16 -4
  85. data/bundler/{man → lib/bundler/man}/bundle-binstubs.1 +5 -3
  86. data/bundler/{man/bundle-binstubs.ronn → lib/bundler/man/bundle-binstubs.1.ronn} +2 -4
  87. data/bundler/{man → lib/bundler/man}/bundle-cache.1 +7 -1
  88. data/bundler/{man/bundle-cache.ronn → lib/bundler/man/bundle-cache.1.ronn} +7 -0
  89. data/bundler/{man → lib/bundler/man}/bundle-check.1 +1 -1
  90. data/bundler/{man → lib/bundler/man}/bundle-clean.1 +1 -1
  91. data/bundler/{man → lib/bundler/man}/bundle-config.1 +65 -47
  92. data/bundler/{man/bundle-config.ronn → lib/bundler/man/bundle-config.1.ronn} +74 -65
  93. data/bundler/lib/bundler/man/bundle-console.1 +53 -0
  94. data/bundler/lib/bundler/man/bundle-console.1.ronn +44 -0
  95. data/bundler/{man → lib/bundler/man}/bundle-doctor.1 +1 -1
  96. data/bundler/{man → lib/bundler/man}/bundle-exec.1 +2 -2
  97. data/bundler/{man/bundle-exec.ronn → lib/bundler/man/bundle-exec.1.ronn} +1 -1
  98. data/bundler/{man → lib/bundler/man}/bundle-gem.1 +38 -3
  99. data/bundler/{man/bundle-gem.ronn → lib/bundler/man/bundle-gem.1.ronn} +46 -7
  100. data/bundler/lib/bundler/man/bundle-help.1 +13 -0
  101. data/bundler/lib/bundler/man/bundle-help.1.ronn +12 -0
  102. data/bundler/{man → lib/bundler/man}/bundle-info.1 +1 -1
  103. data/bundler/{man → lib/bundler/man}/bundle-init.1 +1 -1
  104. data/bundler/{man → lib/bundler/man}/bundle-inject.1 +5 -2
  105. data/bundler/{man/bundle-inject.ronn → lib/bundler/man/bundle-inject.1.ronn} +3 -1
  106. data/bundler/{man → lib/bundler/man}/bundle-install.1 +35 -4
  107. data/bundler/{man/bundle-install.ronn → lib/bundler/man/bundle-install.1.ronn} +33 -5
  108. data/bundler/{man → lib/bundler/man}/bundle-list.1 +7 -7
  109. data/bundler/{man/bundle-list.ronn → lib/bundler/man/bundle-list.1.ronn} +6 -6
  110. data/bundler/{man → lib/bundler/man}/bundle-lock.1 +1 -1
  111. data/bundler/{man → lib/bundler/man}/bundle-open.1 +1 -1
  112. data/bundler/{man → lib/bundler/man}/bundle-outdated.1 +3 -10
  113. data/bundler/{man/bundle-outdated.ronn → lib/bundler/man/bundle-outdated.1.ronn} +1 -10
  114. data/bundler/{man → lib/bundler/man}/bundle-platform.1 +16 -6
  115. data/bundler/{man/bundle-platform.ronn → lib/bundler/man/bundle-platform.1.ronn} +14 -7
  116. data/bundler/lib/bundler/man/bundle-plugin.1 +81 -0
  117. data/bundler/lib/bundler/man/bundle-plugin.1.ronn +59 -0
  118. data/bundler/{man → lib/bundler/man}/bundle-pristine.1 +1 -1
  119. data/bundler/{man → lib/bundler/man}/bundle-remove.1 +1 -1
  120. data/bundler/{man → lib/bundler/man}/bundle-show.1 +1 -1
  121. data/bundler/{man → lib/bundler/man}/bundle-update.1 +5 -5
  122. data/bundler/{man/bundle-update.ronn → lib/bundler/man/bundle-update.1.ronn} +5 -4
  123. data/bundler/lib/bundler/man/bundle-version.1 +35 -0
  124. data/bundler/lib/bundler/man/bundle-version.1.ronn +24 -0
  125. data/bundler/{man → lib/bundler/man}/bundle-viz.1 +4 -1
  126. data/bundler/{man/bundle-viz.ronn → lib/bundler/man/bundle-viz.1.ronn} +2 -0
  127. data/bundler/{man → lib/bundler/man}/bundle.1 +15 -10
  128. data/bundler/{man/bundle.ronn → lib/bundler/man/bundle.1.ronn} +12 -7
  129. data/bundler/{man → lib/bundler/man}/gemfile.5 +106 -80
  130. data/bundler/{man → lib/bundler/man}/gemfile.5.ronn +94 -83
  131. data/bundler/{man → lib/bundler/man}/index.txt +4 -0
  132. data/bundler/lib/bundler/match_metadata.rb +13 -0
  133. data/bundler/lib/bundler/match_platform.rb +0 -1
  134. data/bundler/lib/bundler/match_remote_metadata.rb +29 -0
  135. data/bundler/lib/bundler/mirror.rb +2 -2
  136. data/bundler/lib/bundler/plugin/api/source.rb +25 -9
  137. data/bundler/lib/bundler/plugin/dsl.rb +1 -1
  138. data/bundler/lib/bundler/plugin/index.rb +13 -1
  139. data/bundler/lib/bundler/plugin/installer/git.rb +0 -4
  140. data/bundler/lib/bundler/plugin/installer/rubygems.rb +1 -5
  141. data/bundler/lib/bundler/plugin/installer.rb +11 -11
  142. data/bundler/lib/bundler/plugin/source_list.rb +5 -1
  143. data/bundler/lib/bundler/plugin.rb +58 -11
  144. data/bundler/lib/bundler/process_lock.rb +1 -1
  145. data/bundler/lib/bundler/remote_specification.rb +11 -6
  146. data/bundler/lib/bundler/resolver/base.rb +50 -0
  147. data/bundler/lib/bundler/resolver/spec_group.rb +64 -57
  148. data/bundler/lib/bundler/resolver.rb +234 -230
  149. data/bundler/lib/bundler/retry.rb +2 -2
  150. data/bundler/lib/bundler/ruby_dsl.rb +1 -1
  151. data/bundler/lib/bundler/ruby_version.rb +6 -19
  152. data/bundler/lib/bundler/rubygems_ext.rb +194 -33
  153. data/bundler/lib/bundler/rubygems_gem_installer.rb +87 -16
  154. data/bundler/lib/bundler/rubygems_integration.rb +71 -153
  155. data/bundler/lib/bundler/runtime.rb +22 -26
  156. data/bundler/lib/bundler/self_manager.rb +168 -0
  157. data/bundler/lib/bundler/settings.rb +145 -66
  158. data/bundler/lib/bundler/setup.rb +2 -2
  159. data/bundler/lib/bundler/shared_helpers.rb +17 -32
  160. data/bundler/lib/bundler/similarity_detector.rb +1 -1
  161. data/bundler/lib/bundler/source/git/git_proxy.rb +88 -84
  162. data/bundler/lib/bundler/source/git.rb +50 -32
  163. data/bundler/lib/bundler/source/metadata.rb +3 -7
  164. data/bundler/lib/bundler/source/path/installer.rb +10 -10
  165. data/bundler/lib/bundler/source/path.rb +10 -4
  166. data/bundler/lib/bundler/source/rubygems/remote.rb +1 -1
  167. data/bundler/lib/bundler/source/rubygems.rb +201 -179
  168. data/bundler/lib/bundler/source/rubygems_aggregate.rb +68 -0
  169. data/bundler/lib/bundler/source.rb +25 -5
  170. data/bundler/lib/bundler/source_list.rb +105 -63
  171. data/bundler/lib/bundler/source_map.rb +71 -0
  172. data/bundler/lib/bundler/spec_set.rb +62 -57
  173. data/bundler/lib/bundler/stub_specification.rb +30 -10
  174. data/bundler/lib/bundler/templates/Executable +2 -4
  175. data/bundler/lib/bundler/templates/Executable.bundler +8 -8
  176. data/bundler/lib/bundler/templates/Executable.standalone +2 -4
  177. data/bundler/lib/bundler/templates/Gemfile +0 -2
  178. data/bundler/lib/bundler/templates/gems.rb +0 -3
  179. data/bundler/lib/bundler/templates/newgem/CHANGELOG.md.tt +5 -0
  180. data/bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +57 -47
  181. data/bundler/lib/bundler/templates/newgem/Gemfile.tt +12 -1
  182. data/bundler/lib/bundler/templates/newgem/README.md.tt +9 -14
  183. data/bundler/lib/bundler/templates/newgem/Rakefile.tt +32 -5
  184. data/bundler/lib/bundler/templates/newgem/bin/console.tt +1 -0
  185. data/bundler/lib/bundler/templates/newgem/circleci/config.yml.tt +13 -0
  186. data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt +2 -0
  187. data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +27 -0
  188. data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +9 -0
  189. data/bundler/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +2 -0
  190. data/bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt +4 -2
  191. data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +27 -17
  192. data/bundler/lib/bundler/templates/newgem/rubocop.yml.tt +13 -0
  193. data/bundler/lib/bundler/templates/newgem/sig/newgem.rbs.tt +8 -0
  194. data/bundler/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +2 -0
  195. data/bundler/lib/bundler/templates/newgem/spec/spec_helper.rb.tt +2 -1
  196. data/bundler/lib/bundler/templates/newgem/standard.yml.tt +3 -0
  197. data/bundler/lib/bundler/templates/newgem/test/{test_helper.rb.tt → minitest/test_helper.rb.tt} +2 -0
  198. data/bundler/lib/bundler/templates/newgem/test/{newgem_test.rb.tt → minitest/test_newgem.rb.tt} +3 -1
  199. data/bundler/lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt +15 -0
  200. data/bundler/lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt +6 -0
  201. data/bundler/lib/bundler/ui/shell.rb +6 -6
  202. data/bundler/lib/bundler/uri_credentials_filter.rb +3 -1
  203. data/bundler/lib/bundler/vendor/.document +1 -0
  204. data/bundler/lib/bundler/vendor/connection_pool/LICENSE +20 -0
  205. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +19 -21
  206. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +1 -1
  207. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +57 -0
  208. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +39 -74
  209. data/bundler/lib/bundler/vendor/fileutils/LICENSE.txt +22 -0
  210. data/bundler/lib/bundler/vendor/molinillo/LICENSE +9 -0
  211. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +7 -0
  212. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +2 -2
  213. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +11 -5
  214. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +37 -5
  215. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +34 -28
  216. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +1 -1
  217. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +12 -1
  218. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +49 -47
  219. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -1
  220. data/bundler/lib/bundler/vendor/net-http-persistent/README.rdoc +82 -0
  221. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +82 -189
  222. data/bundler/lib/bundler/vendor/thor/LICENSE.md +20 -0
  223. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +2 -1
  224. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +9 -7
  225. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +1 -2
  226. data/bundler/lib/bundler/vendor/thor/lib/thor/actions.rb +7 -3
  227. data/bundler/lib/bundler/vendor/thor/lib/thor/base.rb +9 -0
  228. data/bundler/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +6 -0
  229. data/bundler/lib/bundler/vendor/thor/lib/thor/error.rb +10 -5
  230. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb +5 -1
  231. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/options.rb +28 -9
  232. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +27 -6
  233. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/color.rb +5 -1
  234. data/bundler/lib/bundler/vendor/thor/lib/thor/shell.rb +1 -1
  235. data/bundler/lib/bundler/vendor/thor/lib/thor/util.rb +1 -1
  236. data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
  237. data/bundler/lib/bundler/vendor/thor/lib/thor.rb +5 -13
  238. data/bundler/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +154 -0
  239. data/bundler/lib/bundler/vendor/tsort/LICENSE.txt +22 -0
  240. data/bundler/lib/bundler/vendor/tsort/lib/tsort.rb +452 -0
  241. data/bundler/lib/bundler/vendor/uri/LICENSE.txt +22 -0
  242. data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +17 -80
  243. data/bundler/lib/bundler/vendor/uri/lib/uri/ftp.rb +0 -1
  244. data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +5 -6
  245. data/bundler/lib/bundler/vendor/uri/lib/uri/http.rb +0 -1
  246. data/bundler/lib/bundler/vendor/uri/lib/uri/https.rb +0 -1
  247. data/bundler/lib/bundler/vendor/uri/lib/uri/ldap.rb +1 -1
  248. data/bundler/lib/bundler/vendor/uri/lib/uri/mailto.rb +0 -1
  249. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +1 -14
  250. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +1 -12
  251. data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
  252. data/bundler/lib/bundler/vendor/uri/lib/uri/ws.rb +84 -0
  253. data/bundler/lib/bundler/vendor/uri/lib/uri/wss.rb +22 -0
  254. data/bundler/lib/bundler/vendor/uri/lib/uri.rb +0 -1
  255. data/bundler/lib/bundler/vendored_persistent.rb +0 -7
  256. data/bundler/lib/bundler/vendored_tmpdir.rb +4 -0
  257. data/bundler/lib/bundler/vendored_tsort.rb +4 -0
  258. data/bundler/lib/bundler/version.rb +1 -1
  259. data/bundler/lib/bundler/worker.rb +20 -5
  260. data/bundler/lib/bundler/yaml_serializer.rb +1 -1
  261. data/bundler/lib/bundler.rb +79 -47
  262. data/hide_lib_for_update/note.txt +0 -4
  263. data/lib/rubygems/available_set.rb +7 -9
  264. data/lib/rubygems/basic_specification.rb +23 -21
  265. data/lib/rubygems/bundler_version_finder.rb +26 -53
  266. data/lib/rubygems/command.rb +48 -45
  267. data/lib/rubygems/command_manager.rb +20 -14
  268. data/lib/rubygems/commands/build_command.rb +47 -27
  269. data/lib/rubygems/commands/cert_command.rb +78 -75
  270. data/lib/rubygems/commands/check_command.rb +20 -22
  271. data/lib/rubygems/commands/cleanup_command.rb +30 -26
  272. data/lib/rubygems/commands/contents_command.rb +16 -18
  273. data/lib/rubygems/commands/dependency_command.rb +39 -51
  274. data/lib/rubygems/commands/environment_command.rb +11 -10
  275. data/lib/rubygems/commands/fetch_command.rb +33 -16
  276. data/lib/rubygems/commands/generate_index_command.rb +17 -19
  277. data/lib/rubygems/commands/help_command.rb +6 -6
  278. data/lib/rubygems/commands/info_command.rb +10 -7
  279. data/lib/rubygems/commands/install_command.rb +29 -27
  280. data/lib/rubygems/commands/list_command.rb +9 -8
  281. data/lib/rubygems/commands/lock_command.rb +5 -7
  282. data/lib/rubygems/commands/mirror_command.rb +3 -5
  283. data/lib/rubygems/commands/open_command.rb +10 -14
  284. data/lib/rubygems/commands/outdated_command.rb +5 -7
  285. data/lib/rubygems/commands/owner_command.rb +26 -16
  286. data/lib/rubygems/commands/pristine_command.rb +61 -49
  287. data/lib/rubygems/commands/push_command.rb +22 -59
  288. data/lib/rubygems/commands/query_command.rb +21 -351
  289. data/lib/rubygems/commands/rdoc_command.rb +23 -25
  290. data/lib/rubygems/commands/search_command.rb +8 -8
  291. data/lib/rubygems/commands/server_command.rb +16 -77
  292. data/lib/rubygems/commands/setup_command.rb +255 -229
  293. data/lib/rubygems/commands/signin_command.rb +9 -11
  294. data/lib/rubygems/commands/signout_command.rb +7 -9
  295. data/lib/rubygems/commands/sources_command.rb +27 -25
  296. data/lib/rubygems/commands/specification_command.rb +25 -21
  297. data/lib/rubygems/commands/stale_command.rb +3 -5
  298. data/lib/rubygems/commands/uninstall_command.rb +41 -43
  299. data/lib/rubygems/commands/unpack_command.rb +13 -15
  300. data/lib/rubygems/commands/update_command.rb +132 -74
  301. data/lib/rubygems/commands/which_command.rb +7 -9
  302. data/lib/rubygems/commands/yank_command.rb +16 -19
  303. data/lib/rubygems/compatibility.rb +4 -2
  304. data/lib/rubygems/config_file.rb +42 -26
  305. data/lib/rubygems/core_ext/kernel_gem.rb +1 -1
  306. data/lib/rubygems/core_ext/kernel_require.rb +6 -3
  307. data/lib/rubygems/core_ext/kernel_warn.rb +12 -13
  308. data/lib/rubygems/core_ext/tcpsocket_init.rb +52 -0
  309. data/lib/rubygems/defaults.rb +108 -32
  310. data/lib/rubygems/dependency.rb +21 -22
  311. data/lib/rubygems/dependency_installer.rb +19 -91
  312. data/lib/rubygems/dependency_list.rb +13 -15
  313. data/lib/rubygems/deprecate.rb +102 -8
  314. data/lib/rubygems/doctor.rb +22 -22
  315. data/lib/rubygems/errors.rb +6 -21
  316. data/lib/rubygems/exceptions.rb +33 -34
  317. data/lib/rubygems/ext/build_error.rb +2 -0
  318. data/lib/rubygems/ext/builder.rb +48 -54
  319. data/lib/rubygems/ext/cargo_builder/link_flag_converter.rb +23 -0
  320. data/lib/rubygems/ext/cargo_builder.rb +321 -0
  321. data/lib/rubygems/ext/cmake_builder.rb +6 -9
  322. data/lib/rubygems/ext/configure_builder.rb +5 -8
  323. data/lib/rubygems/ext/ext_conf_builder.rb +42 -66
  324. data/lib/rubygems/ext/rake_builder.rb +7 -10
  325. data/lib/rubygems/ext.rb +7 -6
  326. data/lib/rubygems/gem_runner.rb +15 -26
  327. data/lib/rubygems/gemcutter_utilities.rb +153 -32
  328. data/lib/rubygems/indexer.rb +30 -49
  329. data/lib/rubygems/install_default_message.rb +2 -2
  330. data/lib/rubygems/install_message.rb +2 -2
  331. data/lib/rubygems/install_update_options.rb +73 -64
  332. data/lib/rubygems/installer.rb +194 -151
  333. data/lib/rubygems/installer_uninstaller_utils.rb +29 -0
  334. data/lib/rubygems/local_remote_options.rb +22 -24
  335. data/lib/rubygems/mock_gem_ui.rb +2 -8
  336. data/lib/rubygems/name_tuple.rb +9 -14
  337. data/lib/rubygems/openssl.rb +7 -0
  338. data/lib/rubygems/optparse/.document +1 -0
  339. data/lib/rubygems/optparse/COPYING +56 -0
  340. data/lib/rubygems/optparse/lib/optionparser.rb +2 -0
  341. data/lib/rubygems/optparse/lib/optparse/ac.rb +54 -0
  342. data/lib/rubygems/optparse/lib/optparse/date.rb +18 -0
  343. data/lib/rubygems/optparse/lib/optparse/kwargs.rb +22 -0
  344. data/lib/rubygems/optparse/lib/optparse/shellwords.rb +7 -0
  345. data/lib/rubygems/optparse/lib/optparse/time.rb +11 -0
  346. data/lib/rubygems/optparse/lib/optparse/uri.rb +7 -0
  347. data/lib/rubygems/optparse/lib/optparse/version.rb +71 -0
  348. data/lib/rubygems/optparse/lib/optparse.rb +2303 -0
  349. data/lib/rubygems/optparse.rb +3 -0
  350. data/lib/rubygems/package/digest_io.rb +0 -2
  351. data/lib/rubygems/package/file_source.rb +2 -4
  352. data/lib/rubygems/package/io_source.rb +4 -2
  353. data/lib/rubygems/package/old.rb +9 -11
  354. data/lib/rubygems/package/tar_header.rb +54 -56
  355. data/lib/rubygems/package/tar_reader/entry.rb +2 -5
  356. data/lib/rubygems/package/tar_reader.rb +1 -4
  357. data/lib/rubygems/package/tar_writer.rb +8 -18
  358. data/lib/rubygems/package.rb +101 -117
  359. data/lib/rubygems/package_task.rb +5 -11
  360. data/lib/rubygems/path_support.rb +2 -9
  361. data/lib/rubygems/platform.rb +101 -76
  362. data/lib/rubygems/psych_tree.rb +1 -3
  363. data/lib/rubygems/query_utils.rb +351 -0
  364. data/lib/rubygems/rdoc.rb +2 -14
  365. data/lib/rubygems/remote_fetcher.rb +48 -74
  366. data/lib/rubygems/request/connection_pools.rb +6 -10
  367. data/lib/rubygems/request/http_pool.rb +2 -4
  368. data/lib/rubygems/request/https_pool.rb +0 -2
  369. data/lib/rubygems/request.rb +26 -31
  370. data/lib/rubygems/request_set/gem_dependency_api.rb +23 -25
  371. data/lib/rubygems/request_set/lockfile/parser.rb +26 -28
  372. data/lib/rubygems/request_set/lockfile/tokenizer.rb +5 -7
  373. data/lib/rubygems/request_set/lockfile.rb +17 -21
  374. data/lib/rubygems/request_set.rb +27 -40
  375. data/lib/rubygems/requirement.rb +28 -48
  376. data/lib/rubygems/resolver/activation_request.rb +12 -6
  377. data/lib/rubygems/resolver/api_set/gem_parser.rb +20 -0
  378. data/lib/rubygems/resolver/api_set.rb +32 -25
  379. data/lib/rubygems/resolver/api_specification.rb +29 -15
  380. data/lib/rubygems/resolver/best_set.rb +7 -9
  381. data/lib/rubygems/resolver/composed_set.rb +3 -5
  382. data/lib/rubygems/resolver/conflict.rb +12 -14
  383. data/lib/rubygems/resolver/current_set.rb +0 -2
  384. data/lib/rubygems/resolver/dependency_request.rb +3 -5
  385. data/lib/rubygems/resolver/git_set.rb +2 -4
  386. data/lib/rubygems/resolver/git_specification.rb +6 -8
  387. data/lib/rubygems/resolver/index_set.rb +4 -6
  388. data/lib/rubygems/resolver/index_specification.rb +38 -7
  389. data/lib/rubygems/resolver/installed_specification.rb +4 -6
  390. data/lib/rubygems/resolver/installer_set.rb +66 -24
  391. data/lib/rubygems/resolver/local_specification.rb +2 -4
  392. data/lib/rubygems/resolver/lock_set.rb +6 -8
  393. data/lib/rubygems/resolver/lock_specification.rb +4 -6
  394. data/lib/rubygems/resolver/molinillo/LICENSE +9 -0
  395. data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/resolution_state.rb +7 -0
  396. data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb +8 -0
  397. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/action.rb +1 -0
  398. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +2 -1
  399. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +2 -1
  400. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +2 -1
  401. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +2 -1
  402. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb +7 -6
  403. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/set_payload.rb +2 -1
  404. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/tag.rb +4 -3
  405. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/vertex.rb +51 -12
  406. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +41 -8
  407. data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +76 -8
  408. data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +2 -1
  409. data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/specification_provider.rb +13 -1
  410. data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/ui.rb +3 -1
  411. data/lib/rubygems/resolver/molinillo/lib/molinillo/resolution.rb +510 -165
  412. data/lib/rubygems/resolver/molinillo/lib/molinillo/resolver.rb +3 -2
  413. data/lib/rubygems/resolver/molinillo/lib/molinillo/state.rb +8 -4
  414. data/lib/rubygems/resolver/molinillo/lib/molinillo.rb +6 -5
  415. data/lib/rubygems/resolver/molinillo.rb +1 -1
  416. data/lib/rubygems/resolver/requirement_list.rb +0 -2
  417. data/lib/rubygems/resolver/set.rb +0 -3
  418. data/lib/rubygems/resolver/source_set.rb +0 -2
  419. data/lib/rubygems/resolver/spec_specification.rb +14 -2
  420. data/lib/rubygems/resolver/specification.rb +14 -4
  421. data/lib/rubygems/resolver/stats.rb +0 -2
  422. data/lib/rubygems/resolver/vendor_set.rb +1 -3
  423. data/lib/rubygems/resolver/vendor_specification.rb +3 -5
  424. data/lib/rubygems/resolver.rb +53 -51
  425. data/lib/rubygems/s3_uri_signer.rb +7 -15
  426. data/lib/rubygems/safe_yaml.rb +14 -16
  427. data/lib/rubygems/security/policies.rb +11 -11
  428. data/lib/rubygems/security/policy.rb +25 -29
  429. data/lib/rubygems/security/signer.rb +13 -16
  430. data/lib/rubygems/security/trust_dir.rb +4 -5
  431. data/lib/rubygems/security.rb +103 -69
  432. data/lib/rubygems/security_option.rb +7 -7
  433. data/lib/rubygems/source/git.rb +30 -30
  434. data/lib/rubygems/source/installed.rb +1 -3
  435. data/lib/rubygems/source/local.rb +4 -6
  436. data/lib/rubygems/source/lock.rb +0 -2
  437. data/lib/rubygems/source/specific_file.rb +1 -3
  438. data/lib/rubygems/source/vendor.rb +0 -2
  439. data/lib/rubygems/source.rb +44 -38
  440. data/lib/rubygems/source_list.rb +9 -16
  441. data/lib/rubygems/spec_fetcher.rb +49 -48
  442. data/lib/rubygems/specification.rb +338 -295
  443. data/lib/rubygems/specification_policy.rb +112 -61
  444. data/lib/rubygems/stub_specification.rb +21 -28
  445. data/lib/rubygems/text.rb +21 -20
  446. data/lib/rubygems/tsort/.document +1 -0
  447. data/lib/rubygems/tsort/LICENSE.txt +22 -0
  448. data/lib/rubygems/tsort/lib/tsort.rb +454 -0
  449. data/lib/rubygems/tsort.rb +3 -0
  450. data/lib/rubygems/uninstaller.rb +98 -45
  451. data/lib/rubygems/unknown_command_spell_checker.rb +21 -0
  452. data/lib/rubygems/uri.rb +126 -0
  453. data/lib/rubygems/uri_formatter.rb +2 -3
  454. data/lib/rubygems/user_interaction.rb +43 -54
  455. data/lib/rubygems/util/licenses.rb +115 -10
  456. data/lib/rubygems/util/list.rb +0 -2
  457. data/lib/rubygems/util.rb +18 -12
  458. data/lib/rubygems/validator.rb +6 -8
  459. data/lib/rubygems/version.rb +29 -20
  460. data/lib/rubygems/version_option.rb +11 -5
  461. data/lib/rubygems.rb +192 -289
  462. data/rubygems-update.gemspec +4 -4
  463. data/setup.rb +11 -22
  464. data/test/rubygems/data/excon-0.7.7.gemspec.rz +0 -0
  465. data/test/rubygems/data/null-required-ruby-version.gemspec.rz +0 -0
  466. data/test/rubygems/data/null-required-rubygems-version.gemspec.rz +0 -0
  467. data/test/rubygems/data/pry-0.4.7.gemspec.rz +0 -0
  468. data/test/rubygems/encrypted_private_key.pem +26 -26
  469. data/{lib/rubygems/test_case.rb → test/rubygems/helper.rb} +380 -314
  470. data/{lib → test}/rubygems/installer_test_case.rb +38 -24
  471. data/{lib → test}/rubygems/package/tar_test_case.rb +4 -6
  472. data/test/rubygems/packages/ascii_binder-0.1.10.1.gem +0 -0
  473. data/test/rubygems/packages/ill-formatted-platform-1.0.0.10.gem +0 -0
  474. data/test/rubygems/plugin/exception/rubygems_plugin.rb +1 -1
  475. data/test/rubygems/plugin/load/rubygems_plugin.rb +0 -2
  476. data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +1 -1
  477. data/test/rubygems/private_ec_key.pem +9 -0
  478. data/test/rubygems/rubygems/commands/crash_command.rb +0 -2
  479. data/test/rubygems/rubygems_plugin.rb +2 -4
  480. data/test/rubygems/specifications/bar-0.0.2.gemspec +0 -2
  481. data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +4 -6
  482. data/test/rubygems/test_bundled_ca.rb +43 -50
  483. data/test/rubygems/test_config.rb +5 -7
  484. data/test/rubygems/test_deprecate.rb +87 -10
  485. data/test/rubygems/test_exit.rb +11 -0
  486. data/test/rubygems/test_gem.rb +719 -639
  487. data/test/rubygems/test_gem_available_set.rb +24 -26
  488. data/test/rubygems/test_gem_bundler_version_finder.rb +37 -44
  489. data/test/rubygems/test_gem_command.rb +78 -49
  490. data/test/rubygems/test_gem_command_manager.rb +98 -35
  491. data/test/rubygems/test_gem_commands_build_command.rb +275 -57
  492. data/test/rubygems/test_gem_commands_cert_command.rb +180 -125
  493. data/test/rubygems/test_gem_commands_check_command.rb +9 -11
  494. data/test/rubygems/test_gem_commands_cleanup_command.rb +78 -69
  495. data/test/rubygems/test_gem_commands_contents_command.rb +73 -42
  496. data/test/rubygems/test_gem_commands_dependency_command.rb +38 -40
  497. data/test/rubygems/test_gem_commands_environment_command.rb +60 -38
  498. data/test/rubygems/test_gem_commands_fetch_command.rb +163 -32
  499. data/test/rubygems/test_gem_commands_generate_index_command.rb +8 -14
  500. data/test/rubygems/test_gem_commands_help_command.rb +34 -16
  501. data/test/rubygems/test_gem_commands_info_command.rb +33 -9
  502. data/test/rubygems/test_gem_commands_install_command.rb +401 -198
  503. data/test/rubygems/test_gem_commands_list_command.rb +5 -7
  504. data/test/rubygems/test_gem_commands_lock_command.rb +11 -13
  505. data/test/rubygems/test_gem_commands_mirror.rb +3 -5
  506. data/test/rubygems/test_gem_commands_open_command.rb +16 -19
  507. data/test/rubygems/test_gem_commands_outdated_command.rb +23 -7
  508. data/test/rubygems/test_gem_commands_owner_command.rb +100 -46
  509. data/test/rubygems/test_gem_commands_pristine_command.rb +131 -99
  510. data/test/rubygems/test_gem_commands_push_command.rb +134 -66
  511. data/test/rubygems/test_gem_commands_query_command.rb +91 -91
  512. data/test/rubygems/test_gem_commands_search_command.rb +2 -4
  513. data/test/rubygems/test_gem_commands_server_command.rb +6 -50
  514. data/test/rubygems/test_gem_commands_setup_command.rb +288 -179
  515. data/test/rubygems/test_gem_commands_signin_command.rb +162 -28
  516. data/test/rubygems/test_gem_commands_signout_command.rb +3 -10
  517. data/test/rubygems/test_gem_commands_sources_command.rb +139 -32
  518. data/test/rubygems/test_gem_commands_specification_command.rb +81 -55
  519. data/test/rubygems/test_gem_commands_stale_command.rb +4 -6
  520. data/test/rubygems/test_gem_commands_uninstall_command.rb +80 -82
  521. data/test/rubygems/test_gem_commands_unpack_command.rb +32 -34
  522. data/test/rubygems/test_gem_commands_update_command.rb +335 -88
  523. data/test/rubygems/test_gem_commands_which_command.rb +12 -14
  524. data/test/rubygems/test_gem_commands_yank_command.rb +80 -44
  525. data/test/rubygems/test_gem_config_file.rb +114 -97
  526. data/test/rubygems/test_gem_dependency.rb +87 -87
  527. data/test/rubygems/test_gem_dependency_installer.rb +277 -391
  528. data/test/rubygems/test_gem_dependency_list.rb +57 -59
  529. data/test/rubygems/test_gem_dependency_resolution_error.rb +5 -7
  530. data/test/rubygems/test_gem_doctor.rb +73 -47
  531. data/test/rubygems/test_gem_ext_builder.rb +115 -109
  532. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/.gitignore +1 -0
  533. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/Cargo.lock +243 -0
  534. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/Cargo.toml +10 -0
  535. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/build.rb +21 -0
  536. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +10 -0
  537. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/src/lib.rs +27 -0
  538. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/.gitignore +1 -0
  539. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +243 -0
  540. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +10 -0
  541. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/build.rb +21 -0
  542. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/rust_ruby_example.gemspec +8 -0
  543. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs +39 -0
  544. data/test/rubygems/test_gem_ext_cargo_builder.rb +178 -0
  545. data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +33 -0
  546. data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +75 -0
  547. data/test/rubygems/test_gem_ext_cmake_builder.rb +31 -38
  548. data/test/rubygems/test_gem_ext_configure_builder.rb +23 -39
  549. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +66 -82
  550. data/test/rubygems/test_gem_ext_rake_builder.rb +49 -32
  551. data/test/rubygems/test_gem_gem_runner.rb +51 -8
  552. data/test/rubygems/test_gem_gemcutter_utilities.rb +87 -76
  553. data/test/rubygems/test_gem_impossible_dependencies_error.rb +4 -6
  554. data/test/rubygems/test_gem_indexer.rb +62 -64
  555. data/test/rubygems/test_gem_install_update_options.rb +31 -21
  556. data/test/rubygems/test_gem_installer.rb +798 -491
  557. data/test/rubygems/test_gem_local_remote_options.rb +11 -13
  558. data/test/rubygems/test_gem_name_tuple.rb +4 -6
  559. data/test/rubygems/test_gem_package.rb +318 -283
  560. data/test/rubygems/test_gem_package_old.rb +18 -20
  561. data/test/rubygems/test_gem_package_tar_header.rb +64 -47
  562. data/test/rubygems/test_gem_package_tar_reader.rb +8 -10
  563. data/test/rubygems/test_gem_package_tar_reader_entry.rb +18 -20
  564. data/test/rubygems/test_gem_package_tar_writer.rb +96 -100
  565. data/test/rubygems/test_gem_package_task.rb +58 -25
  566. data/test/rubygems/test_gem_path_support.rb +15 -21
  567. data/test/rubygems/test_gem_platform.rb +354 -201
  568. data/test/rubygems/test_gem_rdoc.rb +19 -21
  569. data/test/rubygems/test_gem_remote_fetcher.rb +376 -337
  570. data/test/rubygems/test_gem_request.rb +114 -86
  571. data/test/rubygems/test_gem_request_connection_pools.rb +30 -34
  572. data/test/rubygems/test_gem_request_set.rb +123 -124
  573. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +222 -226
  574. data/test/rubygems/test_gem_request_set_lockfile.rb +93 -95
  575. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +68 -70
  576. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +136 -138
  577. data/test/rubygems/test_gem_requirement.rb +133 -54
  578. data/test/rubygems/test_gem_resolver.rb +149 -117
  579. data/test/rubygems/test_gem_resolver_activation_request.rb +6 -8
  580. data/test/rubygems/test_gem_resolver_api_set.rb +79 -78
  581. data/test/rubygems/test_gem_resolver_api_specification.rb +47 -49
  582. data/test/rubygems/test_gem_resolver_best_set.rb +43 -22
  583. data/test/rubygems/test_gem_resolver_composed_set.rb +1 -3
  584. data/test/rubygems/test_gem_resolver_conflict.rb +12 -14
  585. data/test/rubygems/test_gem_resolver_dependency_request.rb +15 -17
  586. data/test/rubygems/test_gem_resolver_git_set.rb +22 -24
  587. data/test/rubygems/test_gem_resolver_git_specification.rb +22 -23
  588. data/test/rubygems/test_gem_resolver_index_set.rb +14 -16
  589. data/test/rubygems/test_gem_resolver_index_specification.rb +16 -18
  590. data/test/rubygems/test_gem_resolver_installed_specification.rb +5 -7
  591. data/test/rubygems/test_gem_resolver_installer_set.rb +104 -44
  592. data/test/rubygems/test_gem_resolver_local_specification.rb +7 -9
  593. data/test/rubygems/test_gem_resolver_lock_set.rb +15 -17
  594. data/test/rubygems/test_gem_resolver_lock_specification.rb +17 -19
  595. data/test/rubygems/test_gem_resolver_requirement_list.rb +1 -3
  596. data/test/rubygems/test_gem_resolver_specification.rb +8 -12
  597. data/test/rubygems/test_gem_resolver_vendor_set.rb +9 -11
  598. data/test/rubygems/test_gem_resolver_vendor_specification.rb +10 -12
  599. data/test/rubygems/test_gem_security.rb +104 -78
  600. data/test/rubygems/test_gem_security_policy.rb +92 -97
  601. data/test/rubygems/test_gem_security_signer.rb +45 -47
  602. data/test/rubygems/test_gem_security_trust_dir.rb +12 -14
  603. data/test/rubygems/test_gem_silent_ui.rb +46 -42
  604. data/test/rubygems/test_gem_source.rb +53 -52
  605. data/test/rubygems/test_gem_source_fetch_problem.rb +16 -8
  606. data/test/rubygems/test_gem_source_git.rb +69 -69
  607. data/test/rubygems/test_gem_source_installed.rb +16 -18
  608. data/test/rubygems/test_gem_source_list.rb +5 -6
  609. data/test/rubygems/test_gem_source_local.rb +15 -17
  610. data/test/rubygems/test_gem_source_lock.rb +31 -33
  611. data/test/rubygems/test_gem_source_specific_file.rb +18 -20
  612. data/test/rubygems/test_gem_source_subpath_problem.rb +49 -0
  613. data/test/rubygems/test_gem_source_vendor.rb +13 -15
  614. data/test/rubygems/test_gem_spec_fetcher.rb +74 -67
  615. data/test/rubygems/test_gem_specification.rb +888 -1024
  616. data/test/rubygems/test_gem_stream_ui.rb +23 -23
  617. data/test/rubygems/test_gem_stub_specification.rb +39 -57
  618. data/test/rubygems/test_gem_text.rb +8 -4
  619. data/test/rubygems/test_gem_uninstaller.rb +233 -104
  620. data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +3 -5
  621. data/test/rubygems/test_gem_uri.rb +39 -0
  622. data/test/rubygems/test_gem_uri_formatter.rb +14 -16
  623. data/test/rubygems/test_gem_util.rb +37 -35
  624. data/test/rubygems/test_gem_validator.rb +10 -12
  625. data/test/rubygems/test_gem_version.rb +31 -31
  626. data/test/rubygems/test_gem_version_option.rb +16 -18
  627. data/test/rubygems/test_kernel.rb +46 -60
  628. data/test/rubygems/test_project_sanity.rb +8 -3
  629. data/test/rubygems/test_remote_fetch_error.rb +7 -9
  630. data/test/rubygems/test_require.rb +240 -167
  631. data/test/rubygems/test_rubygems.rb +74 -0
  632. data/{lib/rubygems/test_utilities.rb → test/rubygems/utilities.rb} +30 -39
  633. data/test/test_changelog_generator.rb +17 -0
  634. metadata +158 -146
  635. data/.bundle/config +0 -2
  636. data/.rubocop.yml +0 -91
  637. data/Gemfile +0 -8
  638. data/Gemfile.lock +0 -43
  639. data/Rakefile +0 -428
  640. data/bundler/CODE_OF_CONDUCT.md +0 -136
  641. data/bundler/lib/bundler/gemdeps.rb +0 -29
  642. data/bundler/lib/bundler/psyched_yaml.rb +0 -37
  643. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/monotonic_time.rb +0 -66
  644. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb +0 -26
  645. data/bundler/man/bundle-add.1.txt +0 -58
  646. data/bundler/man/bundle-binstubs.1.txt +0 -48
  647. data/bundler/man/bundle-cache.1.txt +0 -78
  648. data/bundler/man/bundle-check.1.txt +0 -33
  649. data/bundler/man/bundle-clean.1.txt +0 -26
  650. data/bundler/man/bundle-config.1.txt +0 -528
  651. data/bundler/man/bundle-doctor.1.txt +0 -44
  652. data/bundler/man/bundle-exec.1.txt +0 -178
  653. data/bundler/man/bundle-gem.1.txt +0 -91
  654. data/bundler/man/bundle-info.1.txt +0 -21
  655. data/bundler/man/bundle-init.1.txt +0 -34
  656. data/bundler/man/bundle-inject.1.txt +0 -32
  657. data/bundler/man/bundle-install.1.txt +0 -401
  658. data/bundler/man/bundle-list.1.txt +0 -43
  659. data/bundler/man/bundle-lock.1.txt +0 -93
  660. data/bundler/man/bundle-open.1.txt +0 -29
  661. data/bundler/man/bundle-outdated.1.txt +0 -131
  662. data/bundler/man/bundle-platform.1.txt +0 -57
  663. data/bundler/man/bundle-pristine.1.txt +0 -44
  664. data/bundler/man/bundle-remove.1.txt +0 -34
  665. data/bundler/man/bundle-show.1.txt +0 -27
  666. data/bundler/man/bundle-update.1.txt +0 -390
  667. data/bundler/man/bundle-viz.1.txt +0 -39
  668. data/bundler/man/bundle.1.txt +0 -116
  669. data/bundler/man/gemfile.5.txt +0 -649
  670. data/lib/rubygems/psych_additions.rb +0 -10
  671. data/lib/rubygems/server.rb +0 -879
  672. data/lib/rubygems/source_local.rb +0 -7
  673. data/lib/rubygems/source_specific_file.rb +0 -6
  674. data/lib/rubygems/syck_hack.rb +0 -79
  675. data/lib/rubygems/uri_parser.rb +0 -36
  676. data/lib/rubygems/uri_parsing.rb +0 -23
  677. data/lib/ubygems.rb +0 -14
  678. data/test/rubygems/bogussources.rb +0 -9
  679. data/test/rubygems/data/null-type.gemspec.rz +0 -0
  680. data/test/rubygems/test_gem_server.rb +0 -612
  681. data/tmp/.keep +0 -0
  682. data/util/CL2notes +0 -55
  683. data/util/bisect +0 -10
  684. data/util/ci.sh +0 -62
  685. data/util/cops/deprecations.rb +0 -52
  686. data/util/create_certs.rb +0 -171
  687. data/util/create_certs.sh +0 -27
  688. data/util/create_encrypted_key.rb +0 -16
  689. data/util/generate_spdx_license_list.rb +0 -63
  690. data/util/patch_with_prs.rb +0 -77
  691. data/util/rubocop +0 -8
  692. data/util/update_bundled_ca_certificates.rb +0 -137
  693. data/util/update_changelog.rb +0 -64
  694. /data/bundler/{man/bundle-check.ronn → lib/bundler/man/bundle-check.1.ronn} +0 -0
  695. /data/bundler/{man/bundle-clean.ronn → lib/bundler/man/bundle-clean.1.ronn} +0 -0
  696. /data/bundler/{man/bundle-doctor.ronn → lib/bundler/man/bundle-doctor.1.ronn} +0 -0
  697. /data/bundler/{man/bundle-info.ronn → lib/bundler/man/bundle-info.1.ronn} +0 -0
  698. /data/bundler/{man/bundle-init.ronn → lib/bundler/man/bundle-init.1.ronn} +0 -0
  699. /data/bundler/{man/bundle-lock.ronn → lib/bundler/man/bundle-lock.1.ronn} +0 -0
  700. /data/bundler/{man/bundle-open.ronn → lib/bundler/man/bundle-open.1.ronn} +0 -0
  701. /data/bundler/{man/bundle-pristine.ronn → lib/bundler/man/bundle-pristine.1.ronn} +0 -0
  702. /data/bundler/{man/bundle-remove.ronn → lib/bundler/man/bundle-remove.1.ronn} +0 -0
  703. /data/bundler/{man/bundle-show.ronn → lib/bundler/man/bundle-show.1.ronn} +0 -0
@@ -1,10 +1,8 @@
1
1
  # frozen_string_literal: true
2
- require 'rubygems/package/tar_test_case'
3
- require 'rubygems/package/tar_writer'
4
- require 'minitest/mock'
2
+ require_relative "package/tar_test_case"
3
+ require "rubygems/package/tar_writer"
5
4
 
6
5
  class TestGemPackageTarWriter < Gem::Package::TarTestCase
7
-
8
6
  def setup
9
7
  super
10
8
 
@@ -13,7 +11,7 @@ class TestGemPackageTarWriter < Gem::Package::TarTestCase
13
11
  # is not set.
14
12
  Gem.instance_variable_set(:'@default_source_date_epoch', nil)
15
13
 
16
- @data = 'abcde12345'
14
+ @data = "abcde12345"
17
15
  @io = TempIO.new
18
16
  @tar_writer = Gem::Package::TarWriter.new @io
19
17
  @epoch = ENV["SOURCE_DATE_EPOCH"]
@@ -30,11 +28,11 @@ class TestGemPackageTarWriter < Gem::Package::TarTestCase
30
28
 
31
29
  def test_add_file
32
30
  Time.stub :now, Time.at(1458518157) do
33
- @tar_writer.add_file 'x', 0644 do |f|
34
- f.write 'a' * 10
31
+ @tar_writer.add_file "x", 0644 do |f|
32
+ f.write "a" * 10
35
33
  end
36
34
 
37
- assert_headers_equal(tar_file_header('x', '', 0644, 10, Time.now),
35
+ assert_headers_equal(tar_file_header("x", "", 0644, 10, Time.now),
38
36
  @io.string[0, 512])
39
37
  end
40
38
  assert_equal "aaaaaaaaaa#{"\0" * 502}", @io.string[512, 512]
@@ -44,18 +42,18 @@ class TestGemPackageTarWriter < Gem::Package::TarTestCase
44
42
  def test_add_file_source_date_epoch
45
43
  ENV["SOURCE_DATE_EPOCH"] = "123456789"
46
44
  Time.stub :now, Time.at(1458518157) do
47
- @tar_writer.mkdir 'foo', 0644
45
+ @tar_writer.mkdir "foo", 0644
48
46
 
49
- assert_headers_equal tar_dir_header('foo', '', 0644, Time.at(ENV["SOURCE_DATE_EPOCH"].to_i).utc),
47
+ assert_headers_equal tar_dir_header("foo", "", 0644, Time.at(ENV["SOURCE_DATE_EPOCH"].to_i).utc),
50
48
  @io.string[0, 512]
51
49
  end
52
50
  end
53
51
 
54
52
  def test_add_symlink
55
53
  Time.stub :now, Time.at(1458518157) do
56
- @tar_writer.add_symlink 'x', 'y', 0644
54
+ @tar_writer.add_symlink "x", "y", 0644
57
55
 
58
- assert_headers_equal(tar_symlink_header('x', '', 0644, Time.now, 'y'),
56
+ assert_headers_equal(tar_symlink_header("x", "", 0644, Time.now, "y"),
59
57
  @io.string[0, 512])
60
58
  end
61
59
  assert_equal 512, @io.pos
@@ -64,30 +62,30 @@ class TestGemPackageTarWriter < Gem::Package::TarTestCase
64
62
  def test_add_symlink_source_date_epoch
65
63
  ENV["SOURCE_DATE_EPOCH"] = "123456789"
66
64
  Time.stub :now, Time.at(1458518157) do
67
- @tar_writer.add_symlink 'x', 'y', 0644
65
+ @tar_writer.add_symlink "x", "y", 0644
68
66
 
69
- assert_headers_equal(tar_symlink_header('x', '', 0644, Time.at(ENV["SOURCE_DATE_EPOCH"].to_i).utc, 'y'),
67
+ assert_headers_equal(tar_symlink_header("x", "", 0644, Time.at(ENV["SOURCE_DATE_EPOCH"].to_i).utc, "y"),
70
68
  @io.string[0, 512])
71
69
  end
72
70
  end
73
71
 
74
72
  def test_add_file_digest
75
- digest_algorithms = Digest::SHA1, Digest::SHA512
73
+ digest_algorithms = Digest::SHA1.new, Digest::SHA512.new
76
74
 
77
75
  Time.stub :now, Time.at(1458518157) do
78
- digests = @tar_writer.add_file_digest 'x', 0644, digest_algorithms do |io|
79
- io.write 'a' * 10
76
+ digests = @tar_writer.add_file_digest "x", 0644, digest_algorithms do |io|
77
+ io.write "a" * 10
80
78
  end
81
79
 
82
- assert_equal '3495ff69d34671d1e15b33a63c1379fdedd3a32a',
83
- digests['SHA1'].hexdigest
84
- assert_equal '4714870aff6c97ca09d135834fdb58a6389a50c1' \
85
- '1fef8ec4afef466fb60a23ac6b7a9c92658f14df' \
86
- '4993d6b40a4e4d8424196afc347e97640d68de61' \
87
- 'e1cf14b0',
88
- digests['SHA512'].hexdigest
80
+ assert_equal "3495ff69d34671d1e15b33a63c1379fdedd3a32a",
81
+ digests["SHA1"].hexdigest
82
+ assert_equal "4714870aff6c97ca09d135834fdb58a6389a50c1" \
83
+ "1fef8ec4afef466fb60a23ac6b7a9c92658f14df" \
84
+ "4993d6b40a4e4d8424196afc347e97640d68de61" \
85
+ "e1cf14b0",
86
+ digests["SHA512"].hexdigest
89
87
 
90
- assert_headers_equal(tar_file_header('x', '', 0644, 10, Time.now),
88
+ assert_headers_equal(tar_file_header("x", "", 0644, 10, Time.now),
91
89
  @io.string[0, 512])
92
90
  end
93
91
  assert_equal "aaaaaaaaaa#{"\0" * 502}", @io.string[512, 512]
@@ -95,22 +93,22 @@ class TestGemPackageTarWriter < Gem::Package::TarTestCase
95
93
  end
96
94
 
97
95
  def test_add_file_digest_multiple
98
- digest_algorithms = [Digest::SHA1, Digest::SHA512]
96
+ digest_algorithms = [Digest::SHA1.new, Digest::SHA512.new]
99
97
 
100
98
  Time.stub :now, Time.at(1458518157) do
101
- digests = @tar_writer.add_file_digest 'x', 0644, digest_algorithms do |io|
102
- io.write 'a' * 10
99
+ digests = @tar_writer.add_file_digest "x", 0644, digest_algorithms do |io|
100
+ io.write "a" * 10
103
101
  end
104
102
 
105
- assert_equal '3495ff69d34671d1e15b33a63c1379fdedd3a32a',
106
- digests['SHA1'].hexdigest
107
- assert_equal '4714870aff6c97ca09d135834fdb58a6389a50c1' \
108
- '1fef8ec4afef466fb60a23ac6b7a9c92658f14df' \
109
- '4993d6b40a4e4d8424196afc347e97640d68de61' \
110
- 'e1cf14b0',
111
- digests['SHA512'].hexdigest
103
+ assert_equal "3495ff69d34671d1e15b33a63c1379fdedd3a32a",
104
+ digests["SHA1"].hexdigest
105
+ assert_equal "4714870aff6c97ca09d135834fdb58a6389a50c1" \
106
+ "1fef8ec4afef466fb60a23ac6b7a9c92658f14df" \
107
+ "4993d6b40a4e4d8424196afc347e97640d68de61" \
108
+ "e1cf14b0",
109
+ digests["SHA512"].hexdigest
112
110
 
113
- assert_headers_equal(tar_file_header('x', '', 0644, 10, Time.now),
111
+ assert_headers_equal(tar_file_header("x", "", 0644, 10, Time.now),
114
112
  @io.string[0, 512])
115
113
  end
116
114
  assert_equal "aaaaaaaaaa#{"\0" * 502}", @io.string[512, 512]
@@ -118,26 +116,26 @@ class TestGemPackageTarWriter < Gem::Package::TarTestCase
118
116
  end
119
117
 
120
118
  def test_add_file_signer
121
- skip 'openssl is missing' unless defined?(OpenSSL::SSL)
119
+ pend "openssl is missing" unless Gem::HAVE_OPENSSL
122
120
 
123
121
  signer = Gem::Security::Signer.new PRIVATE_KEY, [PUBLIC_CERT]
124
122
 
125
123
  Time.stub :now, Time.at(1458518157) do
126
- @tar_writer.add_file_signed 'x', 0644, signer do |io|
127
- io.write 'a' * 10
124
+ @tar_writer.add_file_signed "x", 0644, signer do |io|
125
+ io.write "a" * 10
128
126
  end
129
127
 
130
- assert_headers_equal(tar_file_header('x', '', 0644, 10, Time.now),
128
+ assert_headers_equal(tar_file_header("x", "", 0644, 10, Time.now),
131
129
  @io.string[0, 512])
132
130
 
133
131
  assert_equal "aaaaaaaaaa#{"\0" * 502}", @io.string[512, 512]
134
132
 
135
133
  digest = signer.digest_algorithm.new
136
- digest.update 'a' * 10
134
+ digest.update "a" * 10
137
135
 
138
136
  signature = signer.sign digest.digest
139
137
 
140
- assert_headers_equal(tar_file_header('x.sig', '', 0444, signature.length,
138
+ assert_headers_equal(tar_file_header("x.sig", "", 0444, signature.length,
141
139
  Time.now),
142
140
  @io.string[1024, 512])
143
141
  assert_equal "#{signature}#{"\0" * (512 - signature.length)}",
@@ -151,13 +149,12 @@ class TestGemPackageTarWriter < Gem::Package::TarTestCase
151
149
  signer = Gem::Security::Signer.new nil, nil
152
150
 
153
151
  Time.stub :now, Time.at(1458518157) do
154
-
155
- @tar_writer.add_file_signed 'x', 0644, signer do |io|
156
- io.write 'a' * 10
152
+ @tar_writer.add_file_signed "x", 0644, signer do |io|
153
+ io.write "a" * 10
157
154
  end
158
155
 
159
- assert_headers_equal(tar_file_header('x', '', 0644, 10, Time.now),
160
- @io.string[0, 512])
156
+ assert_headers_equal(tar_file_header("x", "", 0644, 10, Time.now),
157
+ @io.string[0, 512])
161
158
  end
162
159
  assert_equal "aaaaaaaaaa#{"\0" * 502}", @io.string[512, 512]
163
160
 
@@ -166,43 +163,43 @@ class TestGemPackageTarWriter < Gem::Package::TarTestCase
166
163
 
167
164
  def test_add_file_simple
168
165
  Time.stub :now, Time.at(1458518157) do
169
- @tar_writer.add_file_simple 'x', 0644, 10 do |io|
166
+ @tar_writer.add_file_simple "x", 0644, 10 do |io|
170
167
  io.write "a" * 10
171
168
  end
172
169
 
173
- assert_headers_equal(tar_file_header('x', '', 0644, 10, Time.now),
174
- @io.string[0, 512])
175
- end
170
+ assert_headers_equal(tar_file_header("x", "", 0644, 10, Time.now),
171
+ @io.string[0, 512])
176
172
 
177
- assert_equal "aaaaaaaaaa#{"\0" * 502}", @io.string[512, 512]
178
- assert_equal 1024, @io.pos
173
+ assert_equal "aaaaaaaaaa#{"\0" * 502}", @io.string[512, 512]
174
+ assert_equal 1024, @io.pos
175
+ end
179
176
  end
180
177
 
181
178
  def test_add_file_simple_source_date_epoch
182
179
  ENV["SOURCE_DATE_EPOCH"] = "123456789"
183
180
  Time.stub :now, Time.at(1458518157) do
184
- @tar_writer.add_file_simple 'x', 0644, 10 do |io|
181
+ @tar_writer.add_file_simple "x", 0644, 10 do |io|
185
182
  io.write "a" * 10
186
183
  end
187
184
 
188
- assert_headers_equal(tar_file_header('x', '', 0644, 10, Time.at(ENV["SOURCE_DATE_EPOCH"].to_i).utc),
189
- @io.string[0, 512])
185
+ assert_headers_equal(tar_file_header("x", "", 0644, 10, Time.at(ENV["SOURCE_DATE_EPOCH"].to_i).utc),
186
+ @io.string[0, 512])
190
187
  end
191
188
  end
192
189
 
193
190
  def test_add_file_simple_padding
194
191
  Time.stub :now, Time.at(1458518157) do
195
- @tar_writer.add_file_simple 'x', 0, 100
192
+ @tar_writer.add_file_simple "x", 0, 100
196
193
 
197
- assert_headers_equal tar_file_header('x', '', 0, 100, Time.now),
198
- @io.string[0, 512]
194
+ assert_headers_equal tar_file_header("x", "", 0, 100, Time.now),
195
+ @io.string[0, 512]
199
196
  end
200
197
 
201
198
  assert_equal "\0" * 512, @io.string[512, 512]
202
199
  end
203
200
 
204
201
  def test_add_file_simple_data
205
- @tar_writer.add_file_simple("lib/foo/bar", 0, 10) { |f| f.write @data }
202
+ @tar_writer.add_file_simple("lib/foo/bar", 0, 10) {|f| f.write @data }
206
203
  @tar_writer.flush
207
204
 
208
205
  assert_equal @data + ("\0" * (512 - @data.size)),
@@ -210,7 +207,7 @@ class TestGemPackageTarWriter < Gem::Package::TarTestCase
210
207
  end
211
208
 
212
209
  def test_add_file_simple_size
213
- assert_raises Gem::Package::TarWriter::FileOverflow do
210
+ assert_raise Gem::Package::TarWriter::FileOverflow do
214
211
  @tar_writer.add_file_simple("lib/foo/bar", 0, 10) do |io|
215
212
  io.write "1" * 11
216
213
  end
@@ -222,37 +219,37 @@ class TestGemPackageTarWriter < Gem::Package::TarTestCase
222
219
 
223
220
  assert_equal "\0" * 1024, @io.string
224
221
 
225
- e = assert_raises IOError do
222
+ e = assert_raise IOError do
226
223
  @tar_writer.close
227
224
  end
228
- assert_equal 'closed Gem::Package::TarWriter', e.message
225
+ assert_equal "closed Gem::Package::TarWriter", e.message
229
226
 
230
- e = assert_raises IOError do
227
+ e = assert_raise IOError do
231
228
  @tar_writer.flush
232
229
  end
233
- assert_equal 'closed Gem::Package::TarWriter', e.message
230
+ assert_equal "closed Gem::Package::TarWriter", e.message
234
231
 
235
- e = assert_raises IOError do
236
- @tar_writer.add_file 'x', 0
232
+ e = assert_raise IOError do
233
+ @tar_writer.add_file "x", 0
237
234
  end
238
- assert_equal 'closed Gem::Package::TarWriter', e.message
235
+ assert_equal "closed Gem::Package::TarWriter", e.message
239
236
 
240
- e = assert_raises IOError do
241
- @tar_writer.add_file_simple 'x', 0, 0
237
+ e = assert_raise IOError do
238
+ @tar_writer.add_file_simple "x", 0, 0
242
239
  end
243
- assert_equal 'closed Gem::Package::TarWriter', e.message
240
+ assert_equal "closed Gem::Package::TarWriter", e.message
244
241
 
245
- e = assert_raises IOError do
246
- @tar_writer.mkdir 'x', 0
242
+ e = assert_raise IOError do
243
+ @tar_writer.mkdir "x", 0
247
244
  end
248
- assert_equal 'closed Gem::Package::TarWriter', e.message
245
+ assert_equal "closed Gem::Package::TarWriter", e.message
249
246
  end
250
247
 
251
248
  def test_mkdir
252
249
  Time.stub :now, Time.at(1458518157) do
253
- @tar_writer.mkdir 'foo', 0644
250
+ @tar_writer.mkdir "foo", 0644
254
251
 
255
- assert_headers_equal tar_dir_header('foo', '', 0644, Time.now),
252
+ assert_headers_equal tar_dir_header("foo", "", 0644, Time.now),
256
253
  @io.string[0, 512]
257
254
 
258
255
  assert_equal 512, @io.pos
@@ -262,73 +259,72 @@ class TestGemPackageTarWriter < Gem::Package::TarTestCase
262
259
  def test_mkdir_source_date_epoch
263
260
  ENV["SOURCE_DATE_EPOCH"] = "123456789"
264
261
  Time.stub :now, Time.at(1458518157) do
265
- @tar_writer.mkdir 'foo', 0644
262
+ @tar_writer.mkdir "foo", 0644
266
263
 
267
- assert_headers_equal tar_dir_header('foo', '', 0644, Time.at(ENV["SOURCE_DATE_EPOCH"].to_i).utc),
264
+ assert_headers_equal tar_dir_header("foo", "", 0644, Time.at(ENV["SOURCE_DATE_EPOCH"].to_i).utc),
268
265
  @io.string[0, 512]
269
266
  end
270
267
  end
271
268
 
272
269
  def test_split_name
273
- assert_equal ['b' * 100, 'a' * 155],
270
+ assert_equal ["b" * 100, "a" * 155],
274
271
  @tar_writer.split_name("#{'a' * 155}/#{'b' * 100}")
275
272
 
276
- assert_equal ["#{'qwer/' * 19}bla", 'a' * 151],
273
+ assert_equal ["#{'qwer/' * 19}bla", "a" * 151],
277
274
  @tar_writer.split_name("#{'a' * 151}/#{'qwer/' * 19}bla")
278
275
  names = [
279
- ([''] + ['123456789'] * 9 + ['1234567890']).join('/'), # 101 bytes (several pieces)
280
- (['123456789'] * 9 + ['1234567890'] + ['']).join('/'), # 101 bytes (several pieces)
281
- '/' * 99,
282
- '/' * 100,
283
- '/' * 101,
284
- '/' * 102,
276
+ ([""] + ["123456789"] * 9 + ["1234567890"]).join("/"), # 101 bytes (several pieces)
277
+ (["123456789"] * 9 + ["1234567890"] + [""]).join("/"), # 101 bytes (several pieces)
278
+ "/" * 99,
279
+ "/" * 100,
280
+ "/" * 101,
281
+ "/" * 102,
285
282
  ]
286
283
  names.each do |name|
287
284
  newname, prefix = @tar_writer.split_name(name)
288
285
  assert(!(newname.empty?), "split_name() returned empty name")
289
286
  assert(newname.bytesize <= 100, "split_name() returned name longer than 100 bytes: '#{newname}' for '#{name}'")
290
287
  assert(prefix.bytesize <= 155, "split_name() returned prefix longer than 155 bytes: '#{prefix}' for '#{name}'")
291
- newname = [prefix, newname].join('/') unless prefix.empty?
288
+ newname = [prefix, newname].join("/") unless prefix.empty?
292
289
  assert_equal name, newname
293
290
  end
294
291
  end
295
292
 
296
293
  def test_split_name_too_long_name
297
- name = File.join 'a', 'b' * 100
298
- assert_equal ['b' * 100, 'a'], @tar_writer.split_name(name)
294
+ name = File.join "a", "b" * 100
295
+ assert_equal ["b" * 100, "a"], @tar_writer.split_name(name)
299
296
 
300
- name = File.join 'a', 'b' * 101
301
- exception = assert_raises Gem::Package::TooLongFileName do
297
+ name = File.join "a", "b" * 101
298
+ exception = assert_raise Gem::Package::TooLongFileName do
302
299
  @tar_writer.split_name name
303
300
  end
304
301
  assert_includes exception.message, name
305
302
 
306
303
  # note, GNU tar 1.28 is unable to handle this case too,
307
304
  # tested with "tar --format=ustar -cPf /tmp/foo.tartar -- /aaaaaa....a"
308
- name = '/' + 'a' * 100
309
- exception = assert_raises Gem::Package::TooLongFileName do
305
+ name = "/" + "a" * 100
306
+ exception = assert_raise Gem::Package::TooLongFileName do
310
307
  @tar_writer.split_name name
311
308
  end
312
309
  assert_includes exception.message, name
313
310
  end
314
311
 
315
312
  def test_split_name_too_long_prefix
316
- name = File.join 'a' * 155, 'b'
317
- assert_equal ['b', 'a' * 155], @tar_writer.split_name(name)
313
+ name = File.join "a" * 155, "b"
314
+ assert_equal ["b", "a" * 155], @tar_writer.split_name(name)
318
315
 
319
- name = File.join 'a' * 156, 'b'
320
- exception = assert_raises Gem::Package::TooLongFileName do
316
+ name = File.join "a" * 156, "b"
317
+ exception = assert_raise Gem::Package::TooLongFileName do
321
318
  @tar_writer.split_name name
322
319
  end
323
320
  assert_includes exception.message, name
324
321
  end
325
322
 
326
323
  def test_split_name_too_long_total
327
- name = 'a' * 257
328
- exception = assert_raises Gem::Package::TooLongFileName do
324
+ name = "a" * 257
325
+ exception = assert_raise Gem::Package::TooLongFileName do
329
326
  @tar_writer.split_name name
330
327
  end
331
328
  assert_includes exception.message, name
332
329
  end
333
-
334
330
  end
@@ -1,45 +1,79 @@
1
1
  # frozen_string_literal: true
2
- require 'rubygems/test_case'
3
- require 'rubygems'
4
- require 'bundler/errors'
2
+ require_relative "helper"
3
+ require "rubygems"
4
+
5
5
  begin
6
- require 'rubygems/package_task'
7
- rescue LoadError, Bundler::GemfileNotFound
6
+ require "rubygems/package_task"
7
+ rescue LoadError => e
8
+ raise unless e.path == "rake/packagetask"
8
9
  end
9
10
 
10
- class TestGemPackageTask < Gem::TestCase
11
-
12
- def setup
13
- super
11
+ unless defined?(Rake::PackageTask)
12
+ warn "Skipping Gem::PackageTask tests. rake not found."
13
+ end
14
14
 
15
- Rake.application = Rake::Application.new
15
+ class TestGemPackageTask < Gem::TestCase
16
+ def test_gem_package
17
+ original_rake_fileutils_verbosity = RakeFileUtils.verbose_flag
16
18
  RakeFileUtils.verbose_flag = false
17
- end
18
19
 
19
- def test_gem_package
20
20
  gem = Gem::Specification.new do |g|
21
21
  g.name = "pkgr"
22
22
  g.version = "1.2.3"
23
23
 
24
24
  g.authors = %w[author]
25
25
  g.files = %w[x]
26
- g.summary = 'summary'
26
+ g.summary = "summary"
27
27
  end
28
28
 
29
- pkg = Gem::PackageTask.new(gem) do |p|
29
+ Rake.application = Rake::Application.new
30
+
31
+ pkg = Gem::PackageTask.new(gem) do |p|
30
32
  p.package_files << "y"
31
33
  end
32
34
 
33
35
  assert_equal %w[x y], pkg.package_files
34
36
 
35
37
  Dir.chdir @tempdir do
36
- FileUtils.touch 'x'
37
- FileUtils.touch 'y'
38
+ FileUtils.touch "x"
39
+ FileUtils.touch "y"
40
+
41
+ Rake.application["package"].invoke
42
+
43
+ assert_path_exist "pkg/pkgr-1.2.3.gem"
44
+ end
45
+ ensure
46
+ RakeFileUtils.verbose_flag = original_rake_fileutils_verbosity
47
+ end
48
+
49
+ def test_gem_package_prints_to_stdout_by_default
50
+ gem = Gem::Specification.new do |g|
51
+ g.name = "pkgr"
52
+ g.version = "1.2.3"
53
+
54
+ g.authors = %w[author]
55
+ g.files = %w[x]
56
+ g.summary = "summary"
57
+ end
58
+
59
+ _, err = capture_output do
60
+ Rake.application = Rake::Application.new
61
+
62
+ pkg = Gem::PackageTask.new(gem) do |p|
63
+ p.package_files << "y"
64
+ end
38
65
 
39
- Rake.application['package'].invoke
66
+ assert_equal %w[x y], pkg.package_files
40
67
 
41
- assert_path_exists 'pkg/pkgr-1.2.3.gem'
68
+ Dir.chdir @tempdir do
69
+ FileUtils.touch "x"
70
+ FileUtils.touch "y"
71
+
72
+ Rake.application["package"].invoke
73
+ end
42
74
  end
75
+
76
+ assert_empty err
43
77
  end
44
78
 
45
79
  def test_gem_package_with_current_platform
@@ -49,7 +83,7 @@ class TestGemPackageTask < Gem::TestCase
49
83
  g.files = Rake::FileList["x"].resolve
50
84
  g.platform = Gem::Platform::CURRENT
51
85
  end
52
- pkg = Gem::PackageTask.new(gem) do |p|
86
+ pkg = Gem::PackageTask.new(gem) do |p|
53
87
  p.package_files << "y"
54
88
  end
55
89
  assert_equal ["x", "y"], pkg.package_files
@@ -62,7 +96,7 @@ class TestGemPackageTask < Gem::TestCase
62
96
  g.files = Rake::FileList["x"].resolve
63
97
  g.platform = Gem::Platform::RUBY
64
98
  end
65
- pkg = Gem::PackageTask.new(gem) do |p|
99
+ pkg = Gem::PackageTask.new(gem) do |p|
66
100
  p.package_files << "y"
67
101
  end
68
102
  assert_equal ["x", "y"], pkg.package_files
@@ -70,15 +104,14 @@ class TestGemPackageTask < Gem::TestCase
70
104
 
71
105
  def test_package_dir_path
72
106
  gem = Gem::Specification.new do |g|
73
- g.name = 'nokogiri'
74
- g.version = '1.5.0'
75
- g.platform = 'java'
107
+ g.name = "nokogiri"
108
+ g.version = "1.5.0"
109
+ g.platform = "java"
76
110
  end
77
111
 
78
112
  pkg = Gem::PackageTask.new gem
79
113
  pkg.define
80
114
 
81
- assert_equal 'pkg/nokogiri-1.5.0-java', pkg.package_dir_path
115
+ assert_equal "pkg/nokogiri-1.5.0-java", pkg.package_dir_path
82
116
  end
83
-
84
117
  end if defined?(Rake::PackageTask)
@@ -1,10 +1,9 @@
1
1
  # frozen_string_literal: true
2
- require 'rubygems/test_case'
3
- require 'rubygems'
4
- require 'fileutils'
2
+ require_relative "helper"
3
+ require "rubygems"
4
+ require "fileutils"
5
5
 
6
6
  class TestGemPathSupport < Gem::TestCase
7
-
8
7
  def setup
9
8
  super
10
9
 
@@ -17,7 +16,7 @@ class TestGemPathSupport < Gem::TestCase
17
16
 
18
17
  assert_equal ENV["GEM_HOME"], ps.home
19
18
 
20
- expected = util_path
19
+ expected = ENV["GEM_PATH"].split(File::PATH_SEPARATOR)
21
20
  assert_equal expected, ps.path, "defaults to GEM_PATH"
22
21
  end
23
22
 
@@ -26,7 +25,7 @@ class TestGemPathSupport < Gem::TestCase
26
25
 
27
26
  assert_equal File.join(@tempdir, "foo"), ps.home
28
27
 
29
- expected = util_path + [File.join(@tempdir, 'foo')]
28
+ expected = ENV["GEM_PATH"].split(File::PATH_SEPARATOR) + [File.join(@tempdir, "foo")]
30
29
  assert_equal expected, ps.path
31
30
  end
32
31
 
@@ -46,8 +45,8 @@ class TestGemPathSupport < Gem::TestCase
46
45
  assert_equal ENV["GEM_HOME"], ps.home
47
46
 
48
47
  expected = [
49
- File.join(@tempdir, 'foo'),
50
- File.join(@tempdir, 'bar'),
48
+ File.join(@tempdir, "foo"),
49
+ File.join(@tempdir, "bar"),
51
50
  ENV["GEM_HOME"],
52
51
  ]
53
52
 
@@ -66,8 +65,8 @@ class TestGemPathSupport < Gem::TestCase
66
65
  assert_equal ENV["GEM_HOME"], ps.home
67
66
 
68
67
  expected = [
69
- File.join(@tempdir, 'foo'),
70
- File.join(@tempdir, 'bar'),
68
+ File.join(@tempdir, "foo"),
69
+ File.join(@tempdir, "bar"),
71
70
  ] + Gem.default_path << ENV["GEM_HOME"]
72
71
 
73
72
  assert_equal expected, ps.path
@@ -84,8 +83,8 @@ class TestGemPathSupport < Gem::TestCase
84
83
  assert_equal ENV["GEM_HOME"], ps.home
85
84
 
86
85
  expected = [
87
- File.join(@tempdir, 'foo'),
88
- File.join(@tempdir, 'bar'),
86
+ File.join(@tempdir, "foo"),
87
+ File.join(@tempdir, "bar"),
89
88
  ] + Gem.default_path << ENV["GEM_HOME"]
90
89
 
91
90
  assert_equal expected, ps.path
@@ -98,27 +97,23 @@ class TestGemPathSupport < Gem::TestCase
98
97
 
99
98
  assert_equal File.join(@tempdir, "foo"), ps.home
100
99
 
101
- expected = [File.join(@tempdir, 'foo'), File.join(@tempdir, 'bar')]
100
+ expected = [File.join(@tempdir, "foo"), File.join(@tempdir, "bar")]
102
101
  assert_equal expected, ps.path
103
102
  end
104
103
  end
105
104
 
106
- def util_path
107
- ENV["GEM_PATH"].split(File::PATH_SEPARATOR)
108
- end
109
-
110
105
  def test_initialize_spec
111
106
  ENV["GEM_SPEC_CACHE"] = nil
112
107
 
113
108
  ps = Gem::PathSupport.new ENV
114
109
  assert_equal Gem.default_spec_cache_dir, ps.spec_cache_dir
115
110
 
116
- ENV["GEM_SPEC_CACHE"] = 'bar'
111
+ ENV["GEM_SPEC_CACHE"] = "bar"
117
112
 
118
113
  ps = Gem::PathSupport.new ENV
119
114
  assert_equal ENV["GEM_SPEC_CACHE"], ps.spec_cache_dir
120
115
 
121
- ENV["GEM_SPEC_CACHE"] = File.join @tempdir, 'spec_cache'
116
+ ENV["GEM_SPEC_CACHE"] = File.join @tempdir, "spec_cache"
122
117
 
123
118
  ps = Gem::PathSupport.new "GEM_SPEC_CACHE" => "foo"
124
119
  assert_equal "foo", ps.spec_cache_dir
@@ -131,7 +126,7 @@ class TestGemPathSupport < Gem::TestCase
131
126
  begin
132
127
  File.symlink(dir, symlink)
133
128
  rescue NotImplementedError, SystemCallError
134
- skip 'symlinks not supported'
129
+ pend "symlinks not supported"
135
130
  end
136
131
  not_existing = "#{@tempdir}/does_not_exist"
137
132
  path = "#{symlink}#{File::PATH_SEPARATOR}#{not_existing}"
@@ -140,5 +135,4 @@ class TestGemPathSupport < Gem::TestCase
140
135
  assert_equal dir, ps.home
141
136
  assert_equal [dir, not_existing], ps.path
142
137
  end
143
-
144
138
  end