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
@@ -31,7 +31,6 @@
31
31
  # See `gem help install` and `gem help gem_dependencies` for further details.
32
32
 
33
33
  class Gem::RequestSet::GemDependencyAPI
34
-
35
34
  ENGINE_MAP = { # :nodoc:
36
35
  :jruby => %w[jruby],
37
36
  :jruby_18 => %w[jruby],
@@ -51,10 +50,10 @@ class Gem::RequestSet::GemDependencyAPI
51
50
  :ruby_21 => %w[ruby rbx maglev truffleruby],
52
51
  }.freeze
53
52
 
54
- mswin = Gem::Platform.new 'x86-mswin32'
55
- mswin64 = Gem::Platform.new 'x64-mswin64'
56
- x86_mingw = Gem::Platform.new 'x86-mingw32'
57
- x64_mingw = Gem::Platform.new 'x64-mingw32'
53
+ mswin = Gem::Platform.new "x86-mswin32"
54
+ mswin64 = Gem::Platform.new "x64-mswin64"
55
+ x86_mingw = Gem::Platform.new "x86-mingw32"
56
+ x64_mingw = Gem::Platform.new "x64-mingw32"
58
57
 
59
58
  PLATFORM_MAP = { # :nodoc:
60
59
  :jruby => Gem::Platform::RUBY,
@@ -89,14 +88,14 @@ class Gem::RequestSet::GemDependencyAPI
89
88
  :truffleruby => Gem::Platform::RUBY,
90
89
  :x64_mingw => x64_mingw,
91
90
  :x64_mingw_20 => x64_mingw,
92
- :x64_mingw_21 => x64_mingw
91
+ :x64_mingw_21 => x64_mingw,
93
92
  }.freeze
94
93
 
95
- gt_eq_0 = Gem::Requirement.new '>= 0'
96
- tilde_gt_1_8_0 = Gem::Requirement.new '~> 1.8.0'
97
- tilde_gt_1_9_0 = Gem::Requirement.new '~> 1.9.0'
98
- tilde_gt_2_0_0 = Gem::Requirement.new '~> 2.0.0'
99
- tilde_gt_2_1_0 = Gem::Requirement.new '~> 2.1.0'
94
+ gt_eq_0 = Gem::Requirement.new ">= 0"
95
+ tilde_gt_1_8_0 = Gem::Requirement.new "~> 1.8.0"
96
+ tilde_gt_1_9_0 = Gem::Requirement.new "~> 1.9.0"
97
+ tilde_gt_2_0_0 = Gem::Requirement.new "~> 2.0.0"
98
+ tilde_gt_2_1_0 = Gem::Requirement.new "~> 2.1.0"
100
99
 
101
100
  VERSION_MAP = { # :nodoc:
102
101
  :jruby => gt_eq_0,
@@ -206,7 +205,7 @@ class Gem::RequestSet::GemDependencyAPI
206
205
  @git_set = @set.git_set
207
206
  @git_sources = {}
208
207
  @installing = false
209
- @requires = Hash.new { |h, name| h[name] = [] }
208
+ @requires = Hash.new {|h, name| h[name] = [] }
210
209
  @vendor_set = @set.vendor_set
211
210
  @source_set = @set.source_set
212
211
  @gem_sources = {}
@@ -372,7 +371,7 @@ class Gem::RequestSet::GemDependencyAPI
372
371
  duplicate = @dependencies.include? name
373
372
 
374
373
  @dependencies[name] =
375
- if requirements.empty? and not source_set
374
+ if requirements.empty? && !source_set
376
375
  Gem::Requirement.default
377
376
  elsif source_set
378
377
  Gem::Requirement.source_set
@@ -380,7 +379,7 @@ class Gem::RequestSet::GemDependencyAPI
380
379
  Gem::Requirement.create requirements
381
380
  end
382
381
 
383
- return unless gem_platforms options
382
+ return unless gem_platforms name, options
384
383
 
385
384
  groups = gem_group name, options
386
385
 
@@ -436,7 +435,7 @@ Gem dependencies file #{@path} requires #{name} more than once.
436
435
  reference ||= ref
437
436
  reference ||= branch
438
437
  reference ||= tag
439
- reference ||= 'master'
438
+ reference ||= "master"
440
439
 
441
440
  if ref && branch
442
441
  warn <<-WARNING
@@ -533,7 +532,7 @@ Gem dependencies file #{@path} includes git reference for both ref/branch and ta
533
532
  # Handles the platforms: option from +options+. Returns true if the
534
533
  # platform matches the current platform.
535
534
 
536
- def gem_platforms(options) # :nodoc:
535
+ def gem_platforms(name, options) # :nodoc:
537
536
  platform_names = Array(options.delete :platform)
538
537
  platform_names.concat Array(options.delete :platforms)
539
538
  platform_names.concat @current_platforms if @current_platforms
@@ -544,7 +543,7 @@ Gem dependencies file #{@path} includes git reference for both ref/branch and ta
544
543
  raise ArgumentError, "unknown platform #{platform_name.inspect}" unless
545
544
  platform = PLATFORM_MAP[platform_name]
546
545
 
547
- next false unless Gem::Platform.match platform
546
+ next false unless Gem::Platform.match_gem? platform, name
548
547
 
549
548
  if engines = ENGINE_MAP[platform_name]
550
549
  next false unless engines.include? Gem.ruby_engine
@@ -638,8 +637,8 @@ Gem dependencies file #{@path} includes git reference for both ref/branch and ta
638
637
  # :development. Only one group may be specified.
639
638
 
640
639
  def gemspec(options = {})
641
- name = options.delete(:name) || '{,*}'
642
- path = options.delete(:path) || '.'
640
+ name = options.delete(:name) || "{,*}"
641
+ path = options.delete(:path) || "."
643
642
  development_group = options.delete(:development_group) || :development
644
643
 
645
644
  spec = find_gemspec name, path
@@ -698,11 +697,11 @@ Gem dependencies file #{@path} includes git reference for both ref/branch and ta
698
697
  def pin_gem_source(name, type = :default, source = nil)
699
698
  source_description =
700
699
  case type
701
- when :default then '(default)'
700
+ when :default then "(default)"
702
701
  when :path then "path: #{source}"
703
702
  when :git then "git: #{source}"
704
703
  when :source then "source: #{source}"
705
- else '(unknown)'
704
+ else "(unknown)"
706
705
  end
707
706
 
708
707
  raise ArgumentError,
@@ -789,8 +788,8 @@ Gem dependencies file #{@path} includes git reference for both ref/branch and ta
789
788
  engine_version = options[:engine_version]
790
789
 
791
790
  raise ArgumentError,
792
- 'You must specify engine_version along with the Ruby engine' if
793
- engine and not engine_version
791
+ "You must specify engine_version along with the Ruby engine" if
792
+ engine && !engine_version
794
793
 
795
794
  return true if @installing
796
795
 
@@ -801,7 +800,7 @@ Gem dependencies file #{@path} includes git reference for both ref/branch and ta
801
800
  raise Gem::RubyVersionMismatch, message
802
801
  end
803
802
 
804
- if engine and engine != Gem.ruby_engine
803
+ if engine && engine != Gem.ruby_engine
805
804
  message = "Your Ruby engine is #{Gem.ruby_engine}, " +
806
805
  "but your #{gem_deps_file} requires #{engine}"
807
806
 
@@ -842,5 +841,4 @@ Gem dependencies file #{@path} includes git reference for both ref/branch and ta
842
841
 
843
842
  Gem.sources << url
844
843
  end
845
-
846
844
  end
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
  class Gem::RequestSet::Lockfile::Parser
3
-
4
3
  ###
5
4
  # Parses lockfiles
6
5
 
@@ -20,18 +19,18 @@ class Gem::RequestSet::Lockfile::Parser
20
19
  @tokens.skip :newline
21
20
 
22
21
  case token.value
23
- when 'DEPENDENCIES' then
22
+ when "DEPENDENCIES" then
24
23
  parse_DEPENDENCIES
25
- when 'GIT' then
24
+ when "GIT" then
26
25
  parse_GIT
27
- when 'GEM' then
26
+ when "GEM" then
28
27
  parse_GEM
29
- when 'PATH' then
28
+ when "PATH" then
30
29
  parse_PATH
31
- when 'PLATFORMS' then
30
+ when "PLATFORMS" then
32
31
  parse_PLATFORMS
33
32
  else
34
- token = get until @tokens.empty? or peek.first == :section
33
+ token = get until @tokens.empty? || peek.first == :section
35
34
  end
36
35
  else
37
36
  raise "BUG: unhandled token #{token.type} (#{token.value.inspect}) at line #{token.line} column #{token.column}"
@@ -45,7 +44,7 @@ class Gem::RequestSet::Lockfile::Parser
45
44
  def get(expected_types = nil, expected_value = nil) # :nodoc:
46
45
  token = @tokens.shift
47
46
 
48
- if expected_types and not Array(expected_types).include? token.type
47
+ if expected_types && !Array(expected_types).include?(token.type)
49
48
  unget token
50
49
 
51
50
  message = "unexpected token [#{token.type.inspect}, #{token.value.inspect}], " +
@@ -54,7 +53,7 @@ class Gem::RequestSet::Lockfile::Parser
54
53
  raise Gem::RequestSet::Lockfile::ParseError.new message, token.column, token.line, @filename
55
54
  end
56
55
 
57
- if expected_value and expected_value != token.value
56
+ if expected_value && expected_value != token.value
58
57
  unget token
59
58
 
60
59
  message = "unexpected token [#{token.type.inspect}, #{token.value.inspect}], " +
@@ -68,7 +67,7 @@ class Gem::RequestSet::Lockfile::Parser
68
67
  end
69
68
 
70
69
  def parse_DEPENDENCIES # :nodoc:
71
- while not @tokens.empty? and :text == peek.type do
70
+ while !@tokens.empty? && :text == peek.type do
72
71
  token = get :text
73
72
 
74
73
  requirements = []
@@ -111,8 +110,8 @@ class Gem::RequestSet::Lockfile::Parser
111
110
  def parse_GEM # :nodoc:
112
111
  sources = []
113
112
 
114
- while [:entry, 'remote'] == peek.first(2) do
115
- get :entry, 'remote'
113
+ while [:entry, "remote"] == peek.first(2) do
114
+ get :entry, "remote"
116
115
  data = get(:text).value
117
116
  skip :newline
118
117
 
@@ -121,14 +120,14 @@ class Gem::RequestSet::Lockfile::Parser
121
120
 
122
121
  sources << Gem::Source.new(Gem::DEFAULT_HOST) if sources.empty?
123
122
 
124
- get :entry, 'specs'
123
+ get :entry, "specs"
125
124
 
126
125
  skip :newline
127
126
 
128
127
  set = Gem::Resolver::LockSet.new sources
129
128
  last_specs = nil
130
129
 
131
- while not @tokens.empty? and :text == peek.type do
130
+ while !@tokens.empty? && :text == peek.type do
132
131
  token = get :text
133
132
  name = token.value
134
133
  column = token.column
@@ -145,8 +144,8 @@ class Gem::RequestSet::Lockfile::Parser
145
144
  type = token.type
146
145
  data = token.value
147
146
 
148
- if type == :text and column == 4
149
- version, platform = data.split '-', 2
147
+ if type == :text && column == 4
148
+ version, platform = data.split "-", 2
150
149
 
151
150
  platform =
152
151
  platform ? Gem::Platform.new(platform) : Gem::Platform::RUBY
@@ -172,26 +171,26 @@ class Gem::RequestSet::Lockfile::Parser
172
171
  end
173
172
 
174
173
  def parse_GIT # :nodoc:
175
- get :entry, 'remote'
174
+ get :entry, "remote"
176
175
  repository = get(:text).value
177
176
 
178
177
  skip :newline
179
178
 
180
- get :entry, 'revision'
179
+ get :entry, "revision"
181
180
  revision = get(:text).value
182
181
 
183
182
  skip :newline
184
183
 
185
184
  type = peek.type
186
185
  value = peek.value
187
- if type == :entry and %w[branch ref tag].include? value
186
+ if type == :entry && %w[branch ref tag].include?(value)
188
187
  get
189
188
  get :text
190
189
 
191
190
  skip :newline
192
191
  end
193
192
 
194
- get :entry, 'specs'
193
+ get :entry, "specs"
195
194
 
196
195
  skip :newline
197
196
 
@@ -200,7 +199,7 @@ class Gem::RequestSet::Lockfile::Parser
200
199
 
201
200
  last_spec = nil
202
201
 
203
- while not @tokens.empty? and :text == peek.type do
202
+ while !@tokens.empty? && :text == peek.type do
204
203
  token = get :text
205
204
  name = token.value
206
205
  column = token.column
@@ -215,7 +214,7 @@ class Gem::RequestSet::Lockfile::Parser
215
214
  type = token.type
216
215
  data = token.value
217
216
 
218
- if type == :text and column == 4
217
+ if type == :text && column == 4
219
218
  last_spec = set.add_git_spec name, data, repository, revision, true
220
219
  else
221
220
  dependency = parse_dependency name, data
@@ -235,19 +234,19 @@ class Gem::RequestSet::Lockfile::Parser
235
234
  end
236
235
 
237
236
  def parse_PATH # :nodoc:
238
- get :entry, 'remote'
237
+ get :entry, "remote"
239
238
  directory = get(:text).value
240
239
 
241
240
  skip :newline
242
241
 
243
- get :entry, 'specs'
242
+ get :entry, "specs"
244
243
 
245
244
  skip :newline
246
245
 
247
246
  set = Gem::Resolver::VendorSet.new
248
247
  last_spec = nil
249
248
 
250
- while not @tokens.empty? and :text == peek.first do
249
+ while !@tokens.empty? && :text == peek.first do
251
250
  token = get :text
252
251
  name = token.value
253
252
  column = token.column
@@ -262,7 +261,7 @@ class Gem::RequestSet::Lockfile::Parser
262
261
  type = token.type
263
262
  data = token.value
264
263
 
265
- if type == :text and column == 4
264
+ if type == :text && column == 4
266
265
  last_spec = set.add_vendor_gem name, directory
267
266
  else
268
267
  dependency = parse_dependency name, data
@@ -282,7 +281,7 @@ class Gem::RequestSet::Lockfile::Parser
282
281
  end
283
282
 
284
283
  def parse_PLATFORMS # :nodoc:
285
- while not @tokens.empty? and :text == peek.first do
284
+ while !@tokens.empty? && :text == peek.first do
286
285
  name = get(:text).value
287
286
 
288
287
  @platforms << name
@@ -341,5 +340,4 @@ class Gem::RequestSet::Lockfile::Parser
341
340
  def unget(token) # :nodoc:
342
341
  @tokens.unshift token
343
342
  end
344
-
345
343
  end
@@ -1,8 +1,7 @@
1
- # frozen_string_literal: true
2
- require 'rubygems/request_set/lockfile/parser'
1
+ #) frozen_string_literal: true
2
+ require_relative "parser"
3
3
 
4
4
  class Gem::RequestSet::Lockfile::Tokenizer
5
-
6
5
  Token = Struct.new :type, :value, :column, :line
7
6
  EOF = Token.new :EOF
8
7
 
@@ -23,11 +22,11 @@ class Gem::RequestSet::Lockfile::Tokenizer
23
22
  end
24
23
 
25
24
  def to_a
26
- @tokens.map { |token| [token.type, token.value, token.column, token.line] }
25
+ @tokens.map {|token| [token.type, token.value, token.column, token.line] }
27
26
  end
28
27
 
29
28
  def skip(type)
30
- @tokens.shift while not @tokens.empty? and peek.type == type
29
+ @tokens.shift while !@tokens.empty? && peek.type == type
31
30
  end
32
31
 
33
32
  ##
@@ -58,7 +57,7 @@ class Gem::RequestSet::Lockfile::Tokenizer
58
57
  private
59
58
 
60
59
  def tokenize(input)
61
- require 'strscan'
60
+ require "strscan"
62
61
  s = StringScanner.new input
63
62
 
64
63
  until s.eos? do
@@ -110,5 +109,4 @@ class Gem::RequestSet::Lockfile::Tokenizer
110
109
 
111
110
  @tokens
112
111
  end
113
-
114
112
  end
@@ -5,12 +5,10 @@
5
5
  # constructed.
6
6
 
7
7
  class Gem::RequestSet::Lockfile
8
-
9
8
  ##
10
9
  # Raised when a lockfile cannot be parsed
11
10
 
12
11
  class ParseError < Gem::Exception
13
-
14
12
  ##
15
13
  # The column where the error was encountered
16
14
 
@@ -36,7 +34,6 @@ class Gem::RequestSet::Lockfile
36
34
  @path = path
37
35
  super "#{message} (at line #{line} column #{column})"
38
36
  end
39
-
40
37
  end
41
38
 
42
39
  ##
@@ -59,10 +56,10 @@ class Gem::RequestSet::Lockfile
59
56
 
60
57
  deps[name] = if [Gem::Resolver::VendorSpecification,
61
58
  Gem::Resolver::GitSpecification].include? spec.class
62
- Gem::Requirement.source_set
63
- else
64
- requirement
65
- end
59
+ Gem::Requirement.source_set
60
+ else
61
+ requirement
62
+ end
66
63
  end
67
64
 
68
65
  deps
@@ -79,7 +76,7 @@ class Gem::RequestSet::Lockfile
79
76
  @gem_deps_file = File.expand_path(gem_deps_file)
80
77
  @gem_deps_dir = File.dirname(@gem_deps_file)
81
78
 
82
- if RUBY_VERSION < '2.7'
79
+ if RUBY_VERSION < "2.7"
83
80
  @gem_deps_file.untaint unless gem_deps_file.tainted?
84
81
  end
85
82
 
@@ -89,7 +86,7 @@ class Gem::RequestSet::Lockfile
89
86
  def add_DEPENDENCIES(out) # :nodoc:
90
87
  out << "DEPENDENCIES"
91
88
 
92
- out.concat @dependencies.sort_by { |name,| name }.map { |name, requirement|
89
+ out.concat @dependencies.sort_by {|name,| name }.map {|name, requirement|
93
90
  " #{name}#{requirement.for_lockfile}"
94
91
  }
95
92
 
@@ -103,13 +100,13 @@ class Gem::RequestSet::Lockfile
103
100
  request.spec.source.uri
104
101
  end
105
102
 
106
- source_groups.sort_by { |group,| group.to_s }.map do |group, requests|
103
+ source_groups.sort_by {|group,| group.to_s }.map do |group, requests|
107
104
  out << "GEM"
108
105
  out << " remote: #{group}"
109
106
  out << " specs:"
110
107
 
111
- requests.sort_by { |request| request.name }.each do |request|
112
- next if request.spec.name == 'bundler'
108
+ requests.sort_by {|request| request.name }.each do |request|
109
+ next if request.spec.name == "bundler"
113
110
  platform = "-#{request.spec.platform}" unless
114
111
  Gem::Platform::RUBY == request.spec.platform
115
112
 
@@ -140,10 +137,10 @@ class Gem::RequestSet::Lockfile
140
137
  out << " revision: #{revision}"
141
138
  out << " specs:"
142
139
 
143
- requests.sort_by { |request| request.name }.each do |request|
140
+ requests.sort_by {|request| request.name }.each do |request|
144
141
  out << " #{request.name} (#{request.version})"
145
142
 
146
- dependencies = request.spec.dependencies.sort_by { |dep| dep.name }
143
+ dependencies = request.spec.dependencies.sort_by {|dep| dep.name }
147
144
  dependencies.each do |dep|
148
145
  out << " #{dep.name}#{dep.requirement.for_lockfile}"
149
146
  end
@@ -159,7 +156,7 @@ class Gem::RequestSet::Lockfile
159
156
  if dest.index(base) == 0
160
157
  offset = dest[base.size + 1..-1]
161
158
 
162
- return '.' unless offset
159
+ return "." unless offset
163
160
 
164
161
  offset
165
162
  else
@@ -185,9 +182,9 @@ class Gem::RequestSet::Lockfile
185
182
  def add_PLATFORMS(out) # :nodoc:
186
183
  out << "PLATFORMS"
187
184
 
188
- platforms = requests.map { |request| request.spec.platform }.uniq
185
+ platforms = requests.map {|request| request.spec.platform }.uniq
189
186
 
190
- platforms = platforms.sort_by { |platform| platform.to_s }
187
+ platforms = platforms.sort_by {|platform| platform.to_s }
191
188
 
192
189
  platforms.each do |platform|
193
190
  out << " #{platform}"
@@ -197,7 +194,7 @@ class Gem::RequestSet::Lockfile
197
194
  end
198
195
 
199
196
  def spec_groups
200
- requests.group_by { |request| request.spec.class }
197
+ requests.group_by {|request| request.spec.class }
201
198
  end
202
199
 
203
200
  ##
@@ -227,7 +224,7 @@ class Gem::RequestSet::Lockfile
227
224
  def write
228
225
  content = to_s
229
226
 
230
- File.open "#{@gem_deps_file}.lock", 'w' do |io|
227
+ File.open "#{@gem_deps_file}.lock", "w" do |io|
231
228
  io.write content
232
229
  end
233
230
  end
@@ -237,7 +234,6 @@ class Gem::RequestSet::Lockfile
237
234
  def requests
238
235
  @set.sorted_requests
239
236
  end
240
-
241
237
  end
242
238
 
243
- require 'rubygems/request_set/lockfile/tokenizer'
239
+ require_relative "lockfile/tokenizer"
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
- require 'tsort'
2
+ require_relative "tsort"
3
3
 
4
4
  ##
5
5
  # A RequestSet groups a request to activate a set of dependencies.
@@ -15,8 +15,7 @@ require 'tsort'
15
15
  # #=> ["nokogiri-1.6.0", "mini_portile-0.5.1", "pg-0.17.0"]
16
16
 
17
17
  class Gem::RequestSet
18
-
19
- include TSort
18
+ include Gem::TSort
20
19
 
21
20
  ##
22
21
  # Array of gems to install even if already installed
@@ -152,7 +151,7 @@ class Gem::RequestSet
152
151
  @prerelease = options[:prerelease]
153
152
 
154
153
  requests = []
155
- download_queue = Queue.new
154
+ download_queue = Thread::Queue.new
156
155
 
157
156
  # Create a thread-safe list of gems to download
158
157
  sorted_requests.each do |req|
@@ -184,7 +183,7 @@ class Gem::RequestSet
184
183
  if req.installed?
185
184
  req.spec.spec.build_extensions
186
185
 
187
- if @always_install.none? { |spec| spec == req.spec.spec }
186
+ if @always_install.none? {|spec| spec == req.spec.spec }
188
187
  yield req, nil if block_given?
189
188
  next
190
189
  end
@@ -196,19 +195,8 @@ class Gem::RequestSet
196
195
  yield req, installer if block_given?
197
196
  end
198
197
  rescue Gem::RuntimeRequirementNotMetError => e
199
- recent_match = req.spec.set.find_all(req.request).sort_by(&:version).reverse_each.find do |s|
200
- s = s.spec
201
- s.required_ruby_version.satisfied_by?(Gem.ruby_version) &&
202
- s.required_rubygems_version.satisfied_by?(Gem.rubygems_version) &&
203
- Gem::Platform.installable?(s)
204
- end
205
- if recent_match
206
- suggestion = "The last version of #{req.request} to support your Ruby & RubyGems was #{recent_match.version}. Try installing it with `gem install #{recent_match.name} -v #{recent_match.version}`"
207
- suggestion += " and then running the current command again" unless @always_install.include?(req.spec.spec)
208
- else
209
- suggestion = "There are no versions of #{req.request} compatible with your Ruby & RubyGems"
210
- suggestion += ". Maybe try installing an older version of the gem you're looking for?" unless @always_install.include?(req.spec.spec)
211
- end
198
+ suggestion = "There are no versions of #{req.request} compatible with your Ruby & RubyGems"
199
+ suggestion += ". Maybe try installing an older version of the gem you're looking for?" unless @always_install.include?(req.spec.spec)
212
200
  e.suggestion = suggestion
213
201
  raise
214
202
  end
@@ -266,10 +254,10 @@ class Gem::RequestSet
266
254
  end
267
255
 
268
256
  def install_into(dir, force = true, options = {})
269
- gem_home, ENV['GEM_HOME'] = ENV['GEM_HOME'], dir
257
+ gem_home, ENV["GEM_HOME"] = ENV["GEM_HOME"], dir
270
258
 
271
259
  existing = force ? [] : specs_in(dir)
272
- existing.delete_if { |s| @always_install.include? s }
260
+ existing.delete_if {|s| @always_install.include? s }
273
261
 
274
262
  dir = File.expand_path dir
275
263
 
@@ -283,7 +271,7 @@ class Gem::RequestSet
283
271
  sorted_requests.each do |request|
284
272
  spec = request.spec
285
273
 
286
- if existing.find { |s| s.full_name == spec.full_name }
274
+ if existing.find {|s| s.full_name == spec.full_name }
287
275
  yield request, nil if block_given?
288
276
  next
289
277
  end
@@ -299,7 +287,7 @@ class Gem::RequestSet
299
287
 
300
288
  installed
301
289
  ensure
302
- ENV['GEM_HOME'] = gem_home
290
+ ENV["GEM_HOME"] = gem_home
303
291
  end
304
292
 
305
293
  ##
@@ -315,7 +303,7 @@ class Gem::RequestSet
315
303
  end
316
304
  end
317
305
 
318
- require "rubygems/dependency_installer"
306
+ require_relative "dependency_installer"
319
307
  inst = Gem::DependencyInstaller.new options
320
308
  inst.installed_gems.replace specs
321
309
 
@@ -349,32 +337,32 @@ class Gem::RequestSet
349
337
  end
350
338
 
351
339
  def pretty_print(q) # :nodoc:
352
- q.group 2, '[RequestSet:', ']' do
340
+ q.group 2, "[RequestSet:", "]" do
353
341
  q.breakable
354
342
 
355
343
  if @remote
356
- q.text 'remote'
344
+ q.text "remote"
357
345
  q.breakable
358
346
  end
359
347
 
360
348
  if @prerelease
361
- q.text 'prerelease'
349
+ q.text "prerelease"
362
350
  q.breakable
363
351
  end
364
352
 
365
353
  if @development_shallow
366
- q.text 'shallow development'
354
+ q.text "shallow development"
367
355
  q.breakable
368
356
  elsif @development
369
- q.text 'development'
357
+ q.text "development"
370
358
  q.breakable
371
359
  end
372
360
 
373
361
  if @soft_missing
374
- q.text 'soft missing'
362
+ q.text "soft missing"
375
363
  end
376
364
 
377
- q.group 2, '[dependencies:', ']' do
365
+ q.group 2, "[dependencies:", "]" do
378
366
  q.breakable
379
367
  @dependencies.map do |dep|
380
368
  q.text dep.to_s
@@ -383,10 +371,10 @@ class Gem::RequestSet
383
371
  end
384
372
 
385
373
  q.breakable
386
- q.text 'sets:'
374
+ q.text "sets:"
387
375
 
388
376
  q.breakable
389
- q.pp @sets.map { |set| set.class }
377
+ q.pp @sets.map {|set| set.class }
390
378
  end
391
379
  end
392
380
 
@@ -440,7 +428,7 @@ class Gem::RequestSet
440
428
  end
441
429
 
442
430
  def specs
443
- @specs ||= @requests.map { |r| r.full_spec }
431
+ @specs ||= @requests.map {|r| r.full_spec }
444
432
  end
445
433
 
446
434
  def specs_in(dir)
@@ -455,14 +443,14 @@ class Gem::RequestSet
455
443
 
456
444
  def tsort_each_child(node) # :nodoc:
457
445
  node.spec.dependencies.each do |dep|
458
- next if dep.type == :development and not @development
446
+ next if dep.type == :development && !@development
459
447
 
460
448
  match = @requests.find do |r|
461
- dep.match? r.spec.name, r.spec.version, @prerelease
449
+ dep.match? r.spec.name, r.spec.version, r.spec.is_a?(Gem::Resolver::InstalledSpecification) || @prerelease
462
450
  end
463
451
 
464
452
  unless match
465
- next if dep.type == :development and @development_shallow
453
+ next if dep.type == :development && @development_shallow
466
454
  next if @soft_missing
467
455
  raise Gem::DependencyError,
468
456
  "Unresolved dependency found during sorting - #{dep} (requested by #{node.spec.full_name})"
@@ -471,9 +459,8 @@ class Gem::RequestSet
471
459
  yield match
472
460
  end
473
461
  end
474
-
475
462
  end
476
463
 
477
- require 'rubygems/request_set/gem_dependency_api'
478
- require 'rubygems/request_set/lockfile'
479
- require 'rubygems/request_set/lockfile/tokenizer'
464
+ require_relative "request_set/gem_dependency_api"
465
+ require_relative "request_set/lockfile"
466
+ require_relative "request_set/lockfile/tokenizer"