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,27 +1,26 @@
1
1
  # frozen_string_literal: true
2
- require 'rubygems/test_case'
2
+ require_relative "helper"
3
3
 
4
4
  class TestGemResolverInstallerSet < Gem::TestCase
5
-
6
5
  def test_add_always_install
7
6
  spec_fetcher do |fetcher|
8
- fetcher.download 'a', 1
9
- fetcher.download 'a', 2
7
+ fetcher.download "a", 1
8
+ fetcher.download "a", 2
10
9
  end
11
10
 
12
- util_gem 'a', 1
11
+ util_gem "a", 1
13
12
 
14
13
  set = Gem::Resolver::InstallerSet.new :both
15
14
 
16
- set.add_always_install dep('a')
15
+ set.add_always_install dep("a")
17
16
 
18
- assert_equal %w[a-2], set.always_install.map { |s| s.full_name }
17
+ assert_equal %w[a-2], set.always_install.map {|s| s.full_name }
19
18
 
20
- e = assert_raises Gem::UnsatisfiableDependencyError do
21
- set.add_always_install dep('b')
19
+ e = assert_raise Gem::UnsatisfiableDependencyError do
20
+ set.add_always_install dep("b")
22
21
  end
23
22
 
24
- assert_equal dep('b'), e.dependency.dependency
23
+ assert_equal dep("b"), e.dependency.dependency
25
24
  end
26
25
 
27
26
  def test_add_always_install_errors
@@ -30,8 +29,8 @@ class TestGemResolverInstallerSet < Gem::TestCase
30
29
 
31
30
  set = Gem::Resolver::InstallerSet.new :both
32
31
 
33
- e = assert_raises Gem::UnsatisfiableDependencyError do
34
- set.add_always_install dep 'a'
32
+ e = assert_raise Gem::UnsatisfiableDependencyError do
33
+ set.add_always_install dep "a"
35
34
  end
36
35
 
37
36
  refute_empty e.errors
@@ -39,46 +38,96 @@ class TestGemResolverInstallerSet < Gem::TestCase
39
38
 
40
39
  def test_add_always_install_platform
41
40
  spec_fetcher do |fetcher|
42
- fetcher.download 'a', 1
43
- fetcher.download 'a', 2 do |s|
44
- s.platform = Gem::Platform.new 'x86-freebsd-9'
41
+ fetcher.download "a", 1
42
+ fetcher.download "a", 2 do |s|
43
+ s.platform = Gem::Platform.new "x86-freebsd-9"
44
+ end
45
+ end
46
+
47
+ set = Gem::Resolver::InstallerSet.new :both
48
+
49
+ set.add_always_install dep("a")
50
+
51
+ assert_equal %w[a-1], set.always_install.map {|s| s.full_name }
52
+ end
53
+
54
+ def test_add_always_install_platform_if_gem_platforms_modified_by_platform_flag
55
+ freebsd = Gem::Platform.new "x86-freebsd-9"
56
+
57
+ spec_fetcher do |fetcher|
58
+ fetcher.download "a", 1
59
+ fetcher.download "a", 1 do |s|
60
+ s.platform = freebsd
45
61
  end
46
62
  end
47
63
 
64
+ # equivalent to --platform=x86-freebsd-9
65
+ Gem.platforms << freebsd
48
66
  set = Gem::Resolver::InstallerSet.new :both
49
67
 
50
- set.add_always_install dep('a')
68
+ set.add_always_install dep("a")
69
+
70
+ assert_equal %w[a-1-x86-freebsd-9], set.always_install.map {|s| s.full_name }
71
+ end
72
+
73
+ def test_add_always_install_index_spec_platform
74
+ _, a_1_local_gem = util_gem "a", 1 do |s|
75
+ s.platform = Gem::Platform.local
76
+ end
77
+
78
+ FileUtils.mv a_1_local_gem, @tempdir
79
+
80
+ set = Gem::Resolver::InstallerSet.new :both
81
+ set.add_always_install dep("a")
51
82
 
52
- assert_equal %w[a-1], set.always_install.map { |s| s.full_name }
83
+ assert_equal [Gem::Platform.local], set.always_install.map {|s| s.platform }
53
84
  end
54
85
 
55
86
  def test_add_always_install_prerelease
56
87
  spec_fetcher do |fetcher|
57
- fetcher.gem 'a', 1
58
- fetcher.gem 'a', '3.a'
88
+ fetcher.gem "a", 1
89
+ fetcher.gem "a", "3.a"
59
90
  end
60
91
 
61
92
  set = Gem::Resolver::InstallerSet.new :both
62
93
 
63
- set.add_always_install dep('a')
94
+ set.add_always_install dep("a")
64
95
 
65
- assert_equal %w[a-1], set.always_install.map { |s| s.full_name }
96
+ assert_equal %w[a-1], set.always_install.map {|s| s.full_name }
97
+ end
98
+
99
+ def test_add_always_install_prerelease_github_problem
100
+ spec_fetcher do |fetcher|
101
+ fetcher.gem "a", 1
102
+ end
103
+
104
+ # Github has an issue in which it will generate a misleading prerelease output in its RubyGems server API and
105
+ # returns a 0 version for the gem while it doesn't exist.
106
+ @fetcher.data["#{@gem_repo}prerelease_specs.#{Gem.marshal_version}.gz"] = util_gzip(Marshal.dump([
107
+ Gem::NameTuple.new("a", Gem::Version.new(0), "ruby"),
108
+ ]))
109
+
110
+ set = Gem::Resolver::InstallerSet.new :both
111
+
112
+ set.add_always_install dep("a")
113
+
114
+ assert_equal %w[a-1], set.always_install.map {|s| s.full_name }
66
115
  end
67
116
 
68
117
  def test_add_always_install_prerelease_only
69
118
  spec_fetcher do |fetcher|
70
- fetcher.gem 'a', '3.a'
119
+ fetcher.gem "a", "3.a"
71
120
  end
72
121
 
73
122
  set = Gem::Resolver::InstallerSet.new :both
74
123
 
75
- assert_raises Gem::UnsatisfiableDependencyError do
76
- set.add_always_install dep('a')
124
+ assert_raise Gem::UnsatisfiableDependencyError do
125
+ set.add_always_install dep("a")
77
126
  end
78
127
  end
79
128
 
80
129
  def test_add_local
81
- a_1, a_1_gem = util_gem 'a', 1
130
+ a_1, a_1_gem = util_gem "a", 1
82
131
 
83
132
  a_1_source = Gem::Source::SpecificFile.new a_1_gem
84
133
 
@@ -91,9 +140,9 @@ class TestGemResolverInstallerSet < Gem::TestCase
91
140
  FileUtils.rm a_1_gem
92
141
  util_clear_gems
93
142
 
94
- req = Gem::Resolver::DependencyRequest.new dep('a'), nil
143
+ req = Gem::Resolver::DependencyRequest.new dep("a"), nil
95
144
 
96
- assert_equal %w[a-1], set.find_all(req).map { |spec| spec.full_name }
145
+ assert_equal %w[a-1], set.find_all(req).map {|spec| spec.full_name }
97
146
  end
98
147
 
99
148
  def test_consider_local_eh
@@ -129,7 +178,7 @@ class TestGemResolverInstallerSet < Gem::TestCase
129
178
 
130
179
  set.instance_variable_get(:@errors) << :a
131
180
 
132
- req = Gem::Resolver::DependencyRequest.new dep('a'), nil
181
+ req = Gem::Resolver::DependencyRequest.new dep("a"), nil
133
182
 
134
183
  set.find_all req
135
184
 
@@ -138,42 +187,54 @@ class TestGemResolverInstallerSet < Gem::TestCase
138
187
 
139
188
  def test_find_all_always_install
140
189
  spec_fetcher do |fetcher|
141
- fetcher.download 'a', 2
190
+ fetcher.download "a", 2
142
191
  end
143
192
 
144
- util_gem 'a', 1
193
+ util_gem "a", 1
145
194
 
146
195
  set = Gem::Resolver::InstallerSet.new :both
147
196
 
148
- set.add_always_install dep 'a'
197
+ set.add_always_install dep "a"
149
198
 
150
- req = Gem::Resolver::DependencyRequest.new dep('a'), nil
199
+ req = Gem::Resolver::DependencyRequest.new dep("a"), nil
151
200
 
152
- assert_equal %w[a-2], set.find_all(req).map { |spec| spec.full_name }
201
+ assert_equal %w[a-2], set.find_all(req).map {|spec| spec.full_name }
153
202
  end
154
203
 
155
204
  def test_find_all_prerelease
156
205
  spec_fetcher do |fetcher|
157
- fetcher.download 'a', '1'
158
- fetcher.download 'a', '1.a'
206
+ fetcher.download "a", "1"
207
+ fetcher.download "a", "1.a"
159
208
  end
160
209
 
161
210
  set = Gem::Resolver::InstallerSet.new :both
162
211
 
163
- req = Gem::Resolver::DependencyRequest.new dep('a'), nil
212
+ req = Gem::Resolver::DependencyRequest.new dep("a"), nil
164
213
 
165
- assert_equal %w[a-1], set.find_all(req).map { |spec| spec.full_name }
214
+ assert_equal %w[a-1], set.find_all(req).map {|spec| spec.full_name }
166
215
 
167
- req = Gem::Resolver::DependencyRequest.new dep('a', '>= 0.a'), nil
216
+ req = Gem::Resolver::DependencyRequest.new dep("a", ">= 0.a"), nil
168
217
 
169
218
  assert_equal %w[a-1 a-1.a],
170
- set.find_all(req).map { |spec| spec.full_name }.sort
219
+ set.find_all(req).map {|spec| spec.full_name }.sort
220
+ end
221
+
222
+ def test_find_all_prerelease_dependencies_with_add_local
223
+ activesupport_7_1_0_alpha = util_spec "activesupport", "7.1.0.alpha"
224
+
225
+ install_gem activesupport_7_1_0_alpha
226
+
227
+ set = Gem::Resolver::InstallerSet.new :both
228
+
229
+ req = Gem::Resolver::DependencyRequest.new dep("activesupport", ">= 4.2.0"), nil
230
+
231
+ assert_equal %w[activesupport-7.1.0.alpha], set.find_all(req).map {|spec| spec.full_name }
171
232
  end
172
233
 
173
234
  def test_load_spec
174
235
  specs = spec_fetcher do |fetcher|
175
- fetcher.spec 'a', 2
176
- fetcher.spec 'a', 2 do |s|
236
+ fetcher.spec "a", 2
237
+ fetcher.spec "a", 2 do |s|
177
238
  s.platform = Gem::Platform.local
178
239
  end
179
240
  end
@@ -183,7 +244,7 @@ class TestGemResolverInstallerSet < Gem::TestCase
183
244
 
184
245
  set = Gem::Resolver::InstallerSet.new :remote
185
246
 
186
- spec = set.load_spec 'a', version, Gem::Platform.local, source
247
+ spec = set.load_spec "a", version, Gem::Platform.local, source
187
248
 
188
249
  assert_equal specs["a-2-#{Gem::Platform.local}"].full_name, spec.full_name
189
250
  end
@@ -193,7 +254,7 @@ class TestGemResolverInstallerSet < Gem::TestCase
193
254
  def (set.remote_set).prefetch(_)
194
255
  raise "called"
195
256
  end
196
- assert_raises(RuntimeError){ set.prefetch(nil) }
257
+ assert_raise(RuntimeError) { set.prefetch(nil) }
197
258
 
198
259
  set = Gem::Resolver::InstallerSet.new :local
199
260
  def (set.remote_set).prefetch(_)
@@ -255,5 +316,4 @@ class TestGemResolverInstallerSet < Gem::TestCase
255
316
  refute set.consider_local?
256
317
  refute set.consider_remote?
257
318
  end
258
-
259
319
  end
@@ -1,9 +1,8 @@
1
1
  # frozen_string_literal: true
2
- require 'rubygems/test_case'
3
- require 'rubygems/available_set'
2
+ require_relative "helper"
3
+ require "rubygems/available_set"
4
4
 
5
5
  class TestGemResolverLocalSpecification < Gem::TestCase
6
-
7
6
  def setup
8
7
  super
9
8
 
@@ -12,12 +11,12 @@ class TestGemResolverLocalSpecification < Gem::TestCase
12
11
 
13
12
  def test_install
14
13
  specs = spec_fetcher do |fetcher|
15
- fetcher.gem 'a', 2
14
+ fetcher.gem "a", 2
16
15
  end
17
16
 
18
- source = Gem::Source::SpecificFile.new 'gems/a-2.gem'
17
+ source = Gem::Source::SpecificFile.new "gems/a-2.gem"
19
18
 
20
- spec = Gem::Resolver::LocalSpecification.new @set, specs['a-2'], source
19
+ spec = Gem::Resolver::LocalSpecification.new @set, specs["a-2"], source
21
20
 
22
21
  called = false
23
22
 
@@ -25,13 +24,13 @@ class TestGemResolverLocalSpecification < Gem::TestCase
25
24
  called = installer
26
25
  end
27
26
 
28
- assert_path_exists File.join @gemhome, 'specifications', 'a-2.gemspec'
27
+ assert_path_exist File.join @gemhome, "specifications", "a-2.gemspec"
29
28
 
30
29
  assert_kind_of Gem::Installer, called
31
30
  end
32
31
 
33
32
  def test_installable_platform_eh
34
- b, b_gem = util_gem 'a', 1 do |s|
33
+ b, b_gem = util_gem "a", 1 do |s|
35
34
  s.platform = Gem::Platform.new %w[cpu other_platform 1]
36
35
  end
37
36
 
@@ -41,5 +40,4 @@ class TestGemResolverLocalSpecification < Gem::TestCase
41
40
 
42
41
  assert b_spec.installable_platform?
43
42
  end
44
-
45
43
  end
@@ -1,8 +1,7 @@
1
1
  # frozen_string_literal: true
2
- require 'rubygems/test_case'
2
+ require_relative "helper"
3
3
 
4
4
  class TestGemResolverLockSet < Gem::TestCase
5
-
6
5
  def setup
7
6
  super
8
7
 
@@ -13,51 +12,50 @@ class TestGemResolverLockSet < Gem::TestCase
13
12
  end
14
13
 
15
14
  def test_add
16
- specs = @set.add 'a', '2', Gem::Platform::RUBY
15
+ specs = @set.add "a", "2", Gem::Platform::RUBY
17
16
  spec = specs.first
18
17
 
19
- assert_equal %w[a-2], @set.specs.map { |t| t.full_name }
18
+ assert_equal %w[a-2], @set.specs.map {|t| t.full_name }
20
19
 
21
20
  assert_kind_of Gem::Resolver::LockSpecification, spec
22
21
 
23
22
  assert_equal @set, spec.set
24
- assert_equal 'a', spec.name
23
+ assert_equal "a", spec.name
25
24
  assert_equal v(2), spec.version
26
25
  assert_equal Gem::Platform::RUBY, spec.platform
27
26
  assert_equal @lock_source, spec.source
28
27
  end
29
28
 
30
29
  def test_find_all
31
- @set.add 'a', '1.a', Gem::Platform::RUBY
32
- @set.add 'a', '2', Gem::Platform::RUBY
33
- @set.add 'b', '2', Gem::Platform::RUBY
30
+ @set.add "a", "1.a", Gem::Platform::RUBY
31
+ @set.add "a", "2", Gem::Platform::RUBY
32
+ @set.add "b", "2", Gem::Platform::RUBY
34
33
 
35
- found = @set.find_all dep 'a'
34
+ found = @set.find_all dep "a"
36
35
 
37
- assert_equal %w[a-2], found.map { |s| s.full_name }
36
+ assert_equal %w[a-2], found.map {|s| s.full_name }
38
37
 
39
- found = @set.find_all dep 'a', '>= 0.a'
38
+ found = @set.find_all dep "a", ">= 0.a"
40
39
 
41
- assert_equal %w[a-1.a a-2], found.map { |s| s.full_name }
40
+ assert_equal %w[a-1.a a-2], found.map {|s| s.full_name }
42
41
  end
43
42
 
44
43
  def test_load_spec
45
44
  spec_fetcher do |fetcher|
46
- fetcher.spec 'a', 2
45
+ fetcher.spec "a", 2
47
46
  end
48
47
 
49
48
  version = v(2)
50
- @set.add 'a', version, Gem::Platform::RUBY
49
+ @set.add "a", version, Gem::Platform::RUBY
51
50
 
52
- loaded = @set.load_spec 'a', version, Gem::Platform::RUBY, nil
51
+ loaded = @set.load_spec "a", version, Gem::Platform::RUBY, nil
53
52
 
54
53
  assert_kind_of Gem::Specification, loaded
55
54
 
56
- assert_equal 'a-2', loaded.full_name
55
+ assert_equal "a-2", loaded.full_name
57
56
  end
58
57
 
59
58
  def test_prefetch
60
59
  assert_respond_to @set, :prefetch
61
60
  end
62
-
63
61
  end
@@ -1,10 +1,9 @@
1
1
  # frozen_string_literal: true
2
- require 'rubygems/test_case'
3
- require 'rubygems/installer'
4
- require 'rubygems/resolver'
2
+ require_relative "helper"
3
+ require "rubygems/installer"
4
+ require "rubygems/resolver"
5
5
 
6
6
  class TestGemResolverLockSpecification < Gem::TestCase
7
-
8
7
  def setup
9
8
  super
10
9
 
@@ -15,9 +14,9 @@ class TestGemResolverLockSpecification < Gem::TestCase
15
14
  end
16
15
 
17
16
  def test_initialize
18
- spec = @LS.new @set, 'a', v(2), [@source], Gem::Platform::RUBY
17
+ spec = @LS.new @set, "a", v(2), [@source], Gem::Platform::RUBY
19
18
 
20
- assert_equal 'a', spec.name
19
+ assert_equal "a", spec.name
21
20
  assert_equal v(2), spec.version
22
21
  assert_equal Gem::Platform::RUBY, spec.platform
23
22
 
@@ -25,9 +24,9 @@ class TestGemResolverLockSpecification < Gem::TestCase
25
24
  end
26
25
 
27
26
  def test_add_dependency
28
- l_spec = @LS.new @set, 'a', v(2), [@source], Gem::Platform::RUBY
27
+ l_spec = @LS.new @set, "a", v(2), [@source], Gem::Platform::RUBY
29
28
 
30
- b_dep = dep('b', '>= 0')
29
+ b_dep = dep("b", ">= 0")
31
30
 
32
31
  l_spec.add_dependency b_dep
33
32
 
@@ -36,10 +35,10 @@ class TestGemResolverLockSpecification < Gem::TestCase
36
35
 
37
36
  def test_install
38
37
  spec_fetcher do |fetcher|
39
- fetcher.download 'a', 2
38
+ fetcher.download "a", 2
40
39
  end
41
40
 
42
- spec = @LS.new @set, 'a', v(2), [@source], Gem::Platform::RUBY
41
+ spec = @LS.new @set, "a", v(2), [@source], Gem::Platform::RUBY
43
42
 
44
43
  called = false
45
44
 
@@ -51,9 +50,9 @@ class TestGemResolverLockSpecification < Gem::TestCase
51
50
  end
52
51
 
53
52
  def test_install_installed
54
- spec = @LS.new @set, 'a', v(2), [@source], Gem::Platform::RUBY
53
+ spec = @LS.new @set, "a", v(2), [@source], Gem::Platform::RUBY
55
54
 
56
- FileUtils.touch File.join(@gemhome, 'specifications', spec.spec.spec_name)
55
+ FileUtils.touch File.join(@gemhome, "specifications", spec.spec.spec_name)
57
56
 
58
57
  called = false
59
58
 
@@ -67,17 +66,17 @@ class TestGemResolverLockSpecification < Gem::TestCase
67
66
  def test_spec
68
67
  version = v(2)
69
68
 
70
- l_spec = @LS.new @set, 'a', version, [@source], Gem::Platform::RUBY
69
+ l_spec = @LS.new @set, "a", version, [@source], Gem::Platform::RUBY
71
70
 
72
- b_dep = dep 'b', '>= 0'
73
- c_dep = dep 'c', '~> 1'
71
+ b_dep = dep "b", ">= 0"
72
+ c_dep = dep "c", "~> 1"
74
73
 
75
74
  l_spec.add_dependency b_dep
76
75
  l_spec.add_dependency c_dep
77
76
 
78
77
  spec = l_spec.spec
79
78
 
80
- assert_equal 'a', spec.name
79
+ assert_equal "a", spec.name
81
80
  assert_equal version, spec.version
82
81
  assert_equal Gem::Platform::RUBY, spec.platform
83
82
 
@@ -85,15 +84,14 @@ class TestGemResolverLockSpecification < Gem::TestCase
85
84
  end
86
85
 
87
86
  def test_spec_loaded
88
- real_spec = util_spec 'a', 2
87
+ real_spec = util_spec "a", 2
89
88
  install_specs real_spec
90
89
  real_spec.activate
91
90
 
92
91
  version = v(2)
93
92
 
94
- l_spec = @LS.new @set, 'a', version, [@source], Gem::Platform::RUBY
93
+ l_spec = @LS.new @set, "a", version, [@source], Gem::Platform::RUBY
95
94
 
96
95
  assert_same real_spec, l_spec.spec
97
96
  end
98
-
99
97
  end
@@ -1,8 +1,7 @@
1
1
  # frozen_string_literal: true
2
- require 'rubygems/test_case'
2
+ require_relative "helper"
3
3
 
4
4
  class TestGemResolverRequirementList < Gem::TestCase
5
-
6
5
  def setup
7
6
  super
8
7
 
@@ -16,5 +15,4 @@ class TestGemResolverRequirementList < Gem::TestCase
16
15
 
17
16
  assert_equal [req], @list.each.to_a
18
17
  end
19
-
20
18
  end
@@ -1,10 +1,8 @@
1
1
  # frozen_string_literal: true
2
- require 'rubygems/test_case'
2
+ require_relative "helper"
3
3
 
4
4
  class TestGemResolverSpecification < Gem::TestCase
5
-
6
5
  class TestSpec < Gem::Resolver::Specification
7
-
8
6
  attr_writer :source
9
7
  attr_reader :spec
10
8
 
@@ -13,37 +11,36 @@ class TestGemResolverSpecification < Gem::TestCase
13
11
 
14
12
  @spec = spec
15
13
  end
16
-
17
14
  end
18
15
 
19
16
  def test_install
20
17
  gemhome = "#{@gemhome}2"
21
18
  spec_fetcher do |fetcher|
22
- fetcher.gem 'a', 1
19
+ fetcher.gem "a", 1
23
20
  end
24
21
 
25
- a = util_spec 'a', 1
22
+ a = util_spec "a", 1
26
23
 
27
24
  a_spec = TestSpec.new a
28
25
  a_spec.source = Gem::Source.new @gem_repo
29
26
 
30
27
  a_spec.install :install_dir => gemhome
31
28
 
32
- assert_path_exists File.join gemhome, 'gems', a.full_name
29
+ assert_path_exist File.join gemhome, "gems", a.full_name
33
30
 
34
- expected = File.join gemhome, 'specifications', a.spec_name
31
+ expected = File.join gemhome, "specifications", a.spec_name
35
32
 
36
33
  assert_equal expected, a_spec.spec.loaded_from
37
34
  end
38
35
 
39
36
  def test_installable_platform_eh
40
- a = util_spec 'a', 1
37
+ a = util_spec "a", 1
41
38
 
42
39
  a_spec = TestSpec.new a
43
40
 
44
41
  assert a_spec.installable_platform?
45
42
 
46
- b = util_spec 'a', 1 do |s|
43
+ b = util_spec "a", 1 do |s|
47
44
  s.platform = Gem::Platform.new %w[cpu other_platform 1]
48
45
  end
49
46
 
@@ -53,7 +50,7 @@ class TestGemResolverSpecification < Gem::TestCase
53
50
  end
54
51
 
55
52
  def test_source
56
- a = util_spec 'a', 1
53
+ a = util_spec "a", 1
57
54
 
58
55
  source = Gem::Source.new @gem_repo
59
56
 
@@ -62,5 +59,4 @@ class TestGemResolverSpecification < Gem::TestCase
62
59
 
63
60
  assert_equal source, a_spec.source
64
61
  end
65
-
66
62
  end
@@ -1,8 +1,7 @@
1
1
  # frozen_string_literal: true
2
- require 'rubygems/test_case'
2
+ require_relative "helper"
3
3
 
4
4
  class TestGemResolverVendorSet < Gem::TestCase
5
-
6
5
  def setup
7
6
  super
8
7
 
@@ -28,7 +27,7 @@ class TestGemResolverVendorSet < Gem::TestCase
28
27
 
29
28
  FileUtils.rm_r directory
30
29
 
31
- e = assert_raises Gem::GemNotFoundException do
30
+ e = assert_raise Gem::GemNotFoundException do
32
31
  @set.add_vendor_gem name, directory
33
32
  end
34
33
 
@@ -41,7 +40,7 @@ class TestGemResolverVendorSet < Gem::TestCase
41
40
 
42
41
  @set.add_vendor_gem name, directory
43
42
 
44
- dependency = dep 'a', '~> 1'
43
+ dependency = dep "a", "~> 1"
45
44
 
46
45
  req = Gem::Resolver::DependencyRequest.new dependency, nil
47
46
 
@@ -52,22 +51,22 @@ class TestGemResolverVendorSet < Gem::TestCase
52
51
  source = Gem::Source::Vendor.new directory
53
52
 
54
53
  expected = [
55
- Gem::Resolver::VendorSpecification.new(@set, spec, source)
54
+ Gem::Resolver::VendorSpecification.new(@set, spec, source),
56
55
  ]
57
56
 
58
57
  assert_equal expected, found
59
58
  end
60
59
 
61
60
  def test_find_all_prerelease
62
- name, _, directory = vendor_gem 'a', '1.a'
61
+ name, _, directory = vendor_gem "a", "1.a"
63
62
 
64
63
  @set.add_vendor_gem name, directory
65
64
 
66
- req = Gem::Resolver::DependencyRequest.new dep('a'), nil
65
+ req = Gem::Resolver::DependencyRequest.new dep("a"), nil
67
66
 
68
67
  assert_empty @set.find_all req
69
68
 
70
- req = Gem::Resolver::DependencyRequest.new dep('a', '>= 0.a'), nil
69
+ req = Gem::Resolver::DependencyRequest.new dep("a", ">= 0.a"), nil
71
70
 
72
71
  refute_empty @set.find_all req
73
72
  end
@@ -75,9 +74,8 @@ class TestGemResolverVendorSet < Gem::TestCase
75
74
  def test_load_spec
76
75
  error = Object.const_defined?(:KeyError) ? KeyError : IndexError
77
76
 
78
- assert_raises error do
79
- @set.load_spec 'b', v(1), Gem::Platform::RUBY, nil
77
+ assert_raise error do
78
+ @set.load_spec "b", v(1), Gem::Platform::RUBY, nil
80
79
  end
81
80
  end
82
-
83
81
  end