rubygems-update 3.1.1 → 3.2.0.rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (518) hide show
  1. checksums.yaml +4 -4
  2. data/CODE_OF_CONDUCT.md +55 -19
  3. data/CONTRIBUTING.md +25 -11
  4. data/History.txt +389 -144
  5. data/Manifest.txt +37 -73
  6. data/POLICIES.md +2 -9
  7. data/README.md +5 -5
  8. data/Rakefile +47 -82
  9. data/bin/update_rubygems +2 -2
  10. data/bundler/CHANGELOG.md +1546 -1414
  11. data/bundler/README.md +6 -8
  12. data/bundler/UPGRADING.md +18 -32
  13. data/bundler/bundler.gemspec +3 -3
  14. data/bundler/exe/bundle +3 -0
  15. data/bundler/lib/bundler.rb +21 -7
  16. data/bundler/lib/bundler/build_metadata.rb +4 -12
  17. data/bundler/lib/bundler/cli.rb +54 -20
  18. data/bundler/lib/bundler/cli/add.rb +1 -1
  19. data/bundler/lib/bundler/cli/cache.rb +1 -7
  20. data/bundler/lib/bundler/cli/clean.rb +1 -1
  21. data/bundler/lib/bundler/cli/common.rb +14 -0
  22. data/bundler/lib/bundler/cli/console.rb +1 -1
  23. data/bundler/lib/bundler/cli/doctor.rb +1 -1
  24. data/bundler/lib/bundler/cli/exec.rb +4 -13
  25. data/bundler/lib/bundler/cli/fund.rb +36 -0
  26. data/bundler/lib/bundler/cli/gem.rb +84 -11
  27. data/bundler/lib/bundler/cli/info.rb +15 -4
  28. data/bundler/lib/bundler/cli/init.rb +2 -2
  29. data/bundler/lib/bundler/cli/inject.rb +1 -1
  30. data/bundler/lib/bundler/cli/install.rb +12 -18
  31. data/bundler/lib/bundler/cli/issue.rb +2 -2
  32. data/bundler/lib/bundler/cli/list.rb +12 -10
  33. data/bundler/lib/bundler/cli/outdated.rb +89 -66
  34. data/bundler/lib/bundler/cli/plugin.rb +10 -0
  35. data/bundler/lib/bundler/cli/pristine.rb +5 -0
  36. data/bundler/lib/bundler/cli/show.rb +1 -1
  37. data/bundler/lib/bundler/cli/update.rb +2 -0
  38. data/bundler/lib/bundler/compact_index_client.rb +1 -1
  39. data/bundler/lib/bundler/compact_index_client/cache.rb +1 -1
  40. data/bundler/lib/bundler/definition.rb +51 -60
  41. data/bundler/lib/bundler/dep_proxy.rb +1 -1
  42. data/bundler/lib/bundler/dependency.rb +0 -9
  43. data/bundler/lib/bundler/dsl.rb +5 -9
  44. data/bundler/lib/bundler/endpoint_specification.rb +1 -1
  45. data/bundler/lib/bundler/environment_preserver.rb +26 -2
  46. data/bundler/lib/bundler/errors.rb +1 -0
  47. data/bundler/lib/bundler/feature_flag.rb +0 -2
  48. data/bundler/lib/bundler/fetcher.rb +4 -3
  49. data/bundler/lib/bundler/fetcher/base.rb +1 -1
  50. data/bundler/lib/bundler/fetcher/compact_index.rb +1 -1
  51. data/bundler/lib/bundler/fetcher/downloader.rb +1 -1
  52. data/bundler/lib/bundler/fetcher/index.rb +1 -1
  53. data/bundler/lib/bundler/friendly_errors.rb +7 -13
  54. data/bundler/lib/bundler/gem_helper.rb +33 -19
  55. data/bundler/lib/bundler/gem_helpers.rb +6 -1
  56. data/bundler/lib/bundler/gem_version_promoter.rb +2 -2
  57. data/bundler/lib/bundler/graph.rb +1 -1
  58. data/bundler/lib/bundler/index.rb +1 -1
  59. data/bundler/lib/bundler/injector.rb +15 -4
  60. data/bundler/lib/bundler/inline.rb +2 -2
  61. data/bundler/lib/bundler/installer.rb +30 -29
  62. data/bundler/lib/bundler/installer/gem_installer.rb +3 -3
  63. data/bundler/lib/bundler/installer/parallel_installer.rb +10 -10
  64. data/bundler/lib/bundler/installer/standalone.rb +2 -2
  65. data/bundler/lib/bundler/lazy_specification.rb +19 -6
  66. data/bundler/lib/bundler/lockfile_generator.rb +1 -1
  67. data/bundler/lib/bundler/lockfile_parser.rb +1 -1
  68. data/bundler/lib/bundler/mirror.rb +2 -2
  69. data/bundler/lib/bundler/plugin.rb +30 -5
  70. data/bundler/lib/bundler/plugin/index.rb +10 -1
  71. data/bundler/lib/bundler/plugin/installer.rb +1 -1
  72. data/bundler/lib/bundler/plugin/installer/rubygems.rb +1 -1
  73. data/bundler/lib/bundler/plugin/source_list.rb +1 -1
  74. data/bundler/lib/bundler/psyched_yaml.rb +0 -15
  75. data/bundler/lib/bundler/remote_specification.rb +5 -2
  76. data/bundler/lib/bundler/resolver.rb +32 -9
  77. data/bundler/lib/bundler/resolver/spec_group.rb +27 -6
  78. data/bundler/lib/bundler/retry.rb +1 -1
  79. data/bundler/lib/bundler/ruby_version.rb +1 -1
  80. data/bundler/lib/bundler/rubygems_ext.rb +53 -9
  81. data/bundler/lib/bundler/rubygems_gem_installer.rb +3 -9
  82. data/bundler/lib/bundler/rubygems_integration.rb +31 -54
  83. data/bundler/lib/bundler/runtime.rb +4 -14
  84. data/bundler/lib/bundler/settings.rb +49 -45
  85. data/bundler/lib/bundler/setup.rb +5 -0
  86. data/bundler/lib/bundler/shared_helpers.rb +2 -2
  87. data/bundler/lib/bundler/similarity_detector.rb +1 -1
  88. data/bundler/lib/bundler/source.rb +1 -1
  89. data/bundler/lib/bundler/source/git.rb +5 -5
  90. data/bundler/lib/bundler/source/git/git_proxy.rb +56 -59
  91. data/bundler/lib/bundler/source/path.rb +7 -3
  92. data/bundler/lib/bundler/source/path/installer.rb +8 -10
  93. data/bundler/lib/bundler/source/rubygems.rb +13 -16
  94. data/bundler/lib/bundler/source/rubygems/remote.rb +1 -1
  95. data/bundler/lib/bundler/source_list.rb +2 -2
  96. data/bundler/lib/bundler/spec_set.rb +1 -1
  97. data/bundler/lib/bundler/stub_specification.rb +17 -5
  98. data/bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +57 -47
  99. data/bundler/lib/bundler/templates/newgem/Gemfile.tt +9 -1
  100. data/bundler/lib/bundler/templates/newgem/README.md.tt +1 -1
  101. data/bundler/lib/bundler/templates/newgem/Rakefile.tt +19 -5
  102. data/bundler/lib/bundler/templates/newgem/bin/console.tt +1 -0
  103. data/bundler/lib/bundler/templates/newgem/circleci/config.yml.tt +13 -0
  104. data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt +2 -0
  105. data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +18 -0
  106. data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +9 -0
  107. data/bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt +2 -0
  108. data/bundler/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +2 -0
  109. data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +8 -6
  110. data/bundler/lib/bundler/templates/newgem/rubocop.yml.tt +10 -0
  111. data/bundler/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +2 -0
  112. data/bundler/lib/bundler/templates/newgem/spec/spec_helper.rb.tt +2 -1
  113. data/bundler/lib/bundler/templates/newgem/test/{newgem_test.rb.tt → minitest/newgem_test.rb.tt} +2 -0
  114. data/bundler/lib/bundler/templates/newgem/test/{test_helper.rb.tt → minitest/test_helper.rb.tt} +2 -0
  115. data/bundler/lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt +15 -0
  116. data/bundler/lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt +6 -0
  117. data/bundler/lib/bundler/ui/shell.rb +5 -5
  118. data/bundler/lib/bundler/uri_credentials_filter.rb +1 -1
  119. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +79 -212
  120. data/bundler/lib/bundler/vendor/thor/lib/thor.rb +0 -7
  121. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +2 -1
  122. data/bundler/lib/bundler/vendor/thor/lib/thor/base.rb +9 -0
  123. data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
  124. data/bundler/lib/bundler/vendored_persistent.rb +0 -7
  125. data/bundler/lib/bundler/version.rb +1 -1
  126. data/bundler/lib/bundler/worker.rb +1 -1
  127. data/bundler/lib/bundler/yaml_serializer.rb +1 -1
  128. data/bundler/man/bundle-add.1 +1 -1
  129. data/bundler/man/{bundle-add.ronn → bundle-add.1.ronn} +0 -0
  130. data/bundler/man/bundle-binstubs.1 +5 -3
  131. data/bundler/man/{bundle-binstubs.ronn → bundle-binstubs.1.ronn} +2 -4
  132. data/bundler/man/bundle-cache.1 +1 -1
  133. data/bundler/man/{bundle-cache.ronn → bundle-cache.1.ronn} +0 -0
  134. data/bundler/man/bundle-check.1 +1 -1
  135. data/bundler/man/{bundle-check.ronn → bundle-check.1.ronn} +0 -0
  136. data/bundler/man/bundle-clean.1 +1 -1
  137. data/bundler/man/{bundle-clean.ronn → bundle-clean.1.ronn} +0 -0
  138. data/bundler/man/bundle-config.1 +16 -22
  139. data/bundler/man/{bundle-config.ronn → bundle-config.1.ronn} +19 -22
  140. data/bundler/man/bundle-doctor.1 +1 -1
  141. data/bundler/man/{bundle-doctor.ronn → bundle-doctor.1.ronn} +0 -0
  142. data/bundler/man/bundle-exec.1 +1 -1
  143. data/bundler/man/{bundle-exec.ronn → bundle-exec.1.ronn} +0 -0
  144. data/bundler/man/bundle-gem.1 +25 -3
  145. data/bundler/man/{bundle-gem.ronn → bundle-gem.1.ronn} +30 -7
  146. data/bundler/man/bundle-info.1 +1 -1
  147. data/bundler/man/{bundle-info.ronn → bundle-info.1.ronn} +0 -0
  148. data/bundler/man/bundle-init.1 +1 -1
  149. data/bundler/man/{bundle-init.ronn → bundle-init.1.ronn} +0 -0
  150. data/bundler/man/bundle-inject.1 +1 -1
  151. data/bundler/man/{bundle-inject.ronn → bundle-inject.1.ronn} +0 -0
  152. data/bundler/man/bundle-install.1 +29 -2
  153. data/bundler/man/{bundle-install.ronn → bundle-install.1.ronn} +24 -2
  154. data/bundler/man/bundle-list.1 +7 -7
  155. data/bundler/man/{bundle-list.ronn → bundle-list.1.ronn} +6 -6
  156. data/bundler/man/bundle-lock.1 +1 -1
  157. data/bundler/man/{bundle-lock.ronn → bundle-lock.1.ronn} +0 -0
  158. data/bundler/man/bundle-open.1 +1 -1
  159. data/bundler/man/{bundle-open.ronn → bundle-open.1.ronn} +0 -0
  160. data/bundler/man/bundle-outdated.1 +1 -1
  161. data/bundler/man/{bundle-outdated.ronn → bundle-outdated.1.ronn} +0 -0
  162. data/bundler/man/bundle-platform.1 +1 -1
  163. data/bundler/man/{bundle-platform.ronn → bundle-platform.1.ronn} +0 -0
  164. data/bundler/man/bundle-pristine.1 +1 -1
  165. data/bundler/man/{bundle-pristine.ronn → bundle-pristine.1.ronn} +0 -0
  166. data/bundler/man/bundle-remove.1 +1 -1
  167. data/bundler/man/{bundle-remove.ronn → bundle-remove.1.ronn} +0 -0
  168. data/bundler/man/bundle-show.1 +1 -1
  169. data/bundler/man/{bundle-show.ronn → bundle-show.1.ronn} +0 -0
  170. data/bundler/man/bundle-update.1 +1 -1
  171. data/bundler/man/{bundle-update.ronn → bundle-update.1.ronn} +0 -0
  172. data/bundler/man/bundle-viz.1 +1 -1
  173. data/bundler/man/{bundle-viz.ronn → bundle-viz.1.ronn} +0 -0
  174. data/bundler/man/bundle.1 +1 -1
  175. data/bundler/man/{bundle.ronn → bundle.1.ronn} +0 -0
  176. data/bundler/man/gemfile.5 +4 -4
  177. data/bundler/man/gemfile.5.ronn +4 -4
  178. data/lib/rubygems.rb +133 -186
  179. data/lib/rubygems/available_set.rb +4 -6
  180. data/lib/rubygems/basic_specification.rb +12 -10
  181. data/lib/rubygems/bundler_version_finder.rb +14 -9
  182. data/lib/rubygems/command.rb +17 -17
  183. data/lib/rubygems/command_manager.rb +4 -5
  184. data/lib/rubygems/commands/build_command.rb +4 -1
  185. data/lib/rubygems/commands/cert_command.rb +1 -9
  186. data/lib/rubygems/commands/check_command.rb +0 -2
  187. data/lib/rubygems/commands/cleanup_command.rb +11 -7
  188. data/lib/rubygems/commands/contents_command.rb +4 -6
  189. data/lib/rubygems/commands/dependency_command.rb +6 -8
  190. data/lib/rubygems/commands/environment_command.rb +1 -3
  191. data/lib/rubygems/commands/fetch_command.rb +2 -4
  192. data/lib/rubygems/commands/generate_index_command.rb +0 -2
  193. data/lib/rubygems/commands/help_command.rb +2 -4
  194. data/lib/rubygems/commands/info_command.rb +8 -5
  195. data/lib/rubygems/commands/install_command.rb +3 -5
  196. data/lib/rubygems/commands/list_command.rb +8 -7
  197. data/lib/rubygems/commands/lock_command.rb +1 -3
  198. data/lib/rubygems/commands/mirror_command.rb +0 -2
  199. data/lib/rubygems/commands/open_command.rb +0 -4
  200. data/lib/rubygems/commands/outdated_command.rb +0 -2
  201. data/lib/rubygems/commands/owner_command.rb +0 -2
  202. data/lib/rubygems/commands/pristine_command.rb +10 -4
  203. data/lib/rubygems/commands/push_command.rb +4 -44
  204. data/lib/rubygems/commands/query_command.rb +6 -353
  205. data/lib/rubygems/commands/rdoc_command.rb +0 -2
  206. data/lib/rubygems/commands/search_command.rb +7 -7
  207. data/lib/rubygems/commands/server_command.rb +0 -2
  208. data/lib/rubygems/commands/setup_command.rb +156 -48
  209. data/lib/rubygems/commands/signin_command.rb +0 -2
  210. data/lib/rubygems/commands/signout_command.rb +0 -2
  211. data/lib/rubygems/commands/sources_command.rb +3 -5
  212. data/lib/rubygems/commands/specification_command.rb +2 -4
  213. data/lib/rubygems/commands/stale_command.rb +1 -3
  214. data/lib/rubygems/commands/uninstall_command.rb +2 -4
  215. data/lib/rubygems/commands/unpack_command.rb +1 -3
  216. data/lib/rubygems/commands/update_command.rb +59 -14
  217. data/lib/rubygems/commands/which_command.rb +0 -2
  218. data/lib/rubygems/commands/yank_command.rb +0 -2
  219. data/lib/rubygems/config_file.rb +11 -4
  220. data/lib/rubygems/core_ext/kernel_require.rb +26 -36
  221. data/lib/rubygems/core_ext/kernel_warn.rb +6 -6
  222. data/lib/rubygems/defaults.rb +99 -5
  223. data/lib/rubygems/dependency.rb +2 -7
  224. data/lib/rubygems/dependency_installer.rb +1 -75
  225. data/lib/rubygems/dependency_list.rb +7 -9
  226. data/lib/rubygems/deprecate.rb +46 -1
  227. data/lib/rubygems/doctor.rb +4 -4
  228. data/lib/rubygems/errors.rb +3 -14
  229. data/lib/rubygems/exceptions.rb +2 -33
  230. data/lib/rubygems/ext.rb +6 -6
  231. data/lib/rubygems/ext/build_error.rb +2 -0
  232. data/lib/rubygems/ext/builder.rb +4 -4
  233. data/lib/rubygems/ext/cmake_builder.rb +1 -3
  234. data/lib/rubygems/ext/configure_builder.rb +0 -2
  235. data/lib/rubygems/ext/ext_conf_builder.rb +6 -9
  236. data/lib/rubygems/ext/rake_builder.rb +0 -2
  237. data/lib/rubygems/gem_runner.rb +3 -10
  238. data/lib/rubygems/gemcutter_utilities.rb +1 -1
  239. data/lib/rubygems/indexer.rb +1 -21
  240. data/lib/rubygems/install_update_options.rb +5 -5
  241. data/lib/rubygems/installer.rb +47 -48
  242. data/lib/rubygems/installer_test_case.rb +18 -5
  243. data/lib/rubygems/installer_uninstaller_utils.rb +24 -0
  244. data/lib/rubygems/local_remote_options.rb +1 -1
  245. data/lib/rubygems/mock_gem_ui.rb +0 -6
  246. data/lib/rubygems/name_tuple.rb +2 -6
  247. data/lib/rubygems/openssl.rb +7 -0
  248. data/lib/rubygems/package.rb +11 -23
  249. data/lib/rubygems/package/digest_io.rb +0 -2
  250. data/lib/rubygems/package/file_source.rb +0 -2
  251. data/lib/rubygems/package/io_source.rb +0 -2
  252. data/lib/rubygems/package/old.rb +1 -3
  253. data/lib/rubygems/package/tar_header.rb +3 -5
  254. data/lib/rubygems/package/tar_reader.rb +0 -3
  255. data/lib/rubygems/package/tar_reader/entry.rb +0 -3
  256. data/lib/rubygems/package/tar_test_case.rb +1 -3
  257. data/lib/rubygems/package/tar_writer.rb +2 -12
  258. data/lib/rubygems/package_task.rb +1 -7
  259. data/lib/rubygems/path_support.rb +1 -3
  260. data/lib/rubygems/platform.rb +3 -5
  261. data/lib/rubygems/psych_tree.rb +0 -2
  262. data/lib/rubygems/query_utils.rb +362 -0
  263. data/lib/rubygems/rdoc.rb +0 -12
  264. data/lib/rubygems/remote_fetcher.rb +9 -25
  265. data/lib/rubygems/request.rb +1 -9
  266. data/lib/rubygems/request/connection_pools.rb +1 -5
  267. data/lib/rubygems/request/http_pool.rb +0 -2
  268. data/lib/rubygems/request/https_pool.rb +0 -2
  269. data/lib/rubygems/request_set.rb +5 -7
  270. data/lib/rubygems/request_set/gem_dependency_api.rb +2 -4
  271. data/lib/rubygems/request_set/lockfile.rb +8 -12
  272. data/lib/rubygems/request_set/lockfile/parser.rb +0 -2
  273. data/lib/rubygems/request_set/lockfile/tokenizer.rb +1 -3
  274. data/lib/rubygems/requirement.rb +20 -21
  275. data/lib/rubygems/resolver.rb +7 -10
  276. data/lib/rubygems/resolver/activation_request.rb +0 -2
  277. data/lib/rubygems/resolver/api_set.rb +4 -6
  278. data/lib/rubygems/resolver/api_specification.rb +16 -7
  279. data/lib/rubygems/resolver/best_set.rb +0 -2
  280. data/lib/rubygems/resolver/composed_set.rb +3 -5
  281. data/lib/rubygems/resolver/conflict.rb +1 -3
  282. data/lib/rubygems/resolver/current_set.rb +0 -2
  283. data/lib/rubygems/resolver/dependency_request.rb +0 -2
  284. data/lib/rubygems/resolver/git_set.rb +0 -2
  285. data/lib/rubygems/resolver/git_specification.rb +0 -2
  286. data/lib/rubygems/resolver/index_set.rb +1 -3
  287. data/lib/rubygems/resolver/index_specification.rb +0 -2
  288. data/lib/rubygems/resolver/installed_specification.rb +0 -2
  289. data/lib/rubygems/resolver/installer_set.rb +3 -5
  290. data/lib/rubygems/resolver/local_specification.rb +0 -2
  291. data/lib/rubygems/resolver/lock_set.rb +1 -3
  292. data/lib/rubygems/resolver/lock_specification.rb +0 -2
  293. data/lib/rubygems/resolver/requirement_list.rb +0 -2
  294. data/lib/rubygems/resolver/set.rb +0 -2
  295. data/lib/rubygems/resolver/source_set.rb +0 -2
  296. data/lib/rubygems/resolver/spec_specification.rb +0 -2
  297. data/lib/rubygems/resolver/specification.rb +0 -2
  298. data/lib/rubygems/resolver/stats.rb +0 -2
  299. data/lib/rubygems/resolver/vendor_set.rb +0 -2
  300. data/lib/rubygems/resolver/vendor_specification.rb +0 -2
  301. data/lib/rubygems/s3_uri_signer.rb +1 -7
  302. data/lib/rubygems/safe_yaml.rb +4 -4
  303. data/lib/rubygems/security.rb +26 -32
  304. data/lib/rubygems/security/policy.rb +3 -7
  305. data/lib/rubygems/security/signer.rb +4 -6
  306. data/lib/rubygems/security/trust_dir.rb +1 -3
  307. data/lib/rubygems/server.rb +9 -11
  308. data/lib/rubygems/source.rb +4 -4
  309. data/lib/rubygems/source/git.rb +7 -8
  310. data/lib/rubygems/source/installed.rb +0 -2
  311. data/lib/rubygems/source/local.rb +2 -4
  312. data/lib/rubygems/source/lock.rb +0 -2
  313. data/lib/rubygems/source/specific_file.rb +0 -2
  314. data/lib/rubygems/source/vendor.rb +0 -2
  315. data/lib/rubygems/source_list.rb +6 -7
  316. data/lib/rubygems/spec_fetcher.rb +18 -17
  317. data/lib/rubygems/specification.rb +107 -120
  318. data/lib/rubygems/specification_policy.rb +88 -30
  319. data/lib/rubygems/stub_specification.rb +0 -4
  320. data/lib/rubygems/syck_hack.rb +0 -2
  321. data/lib/rubygems/test_case.rb +122 -92
  322. data/lib/rubygems/test_utilities.rb +6 -14
  323. data/lib/rubygems/uninstaller.rb +35 -16
  324. data/lib/rubygems/uri_formatter.rb +0 -2
  325. data/lib/rubygems/uri_parser.rb +0 -2
  326. data/lib/rubygems/user_interaction.rb +1 -26
  327. data/lib/rubygems/util.rb +15 -3
  328. data/lib/rubygems/util/licenses.rb +4 -6
  329. data/lib/rubygems/util/list.rb +0 -2
  330. data/lib/rubygems/validator.rb +1 -3
  331. data/lib/rubygems/version.rb +5 -7
  332. data/rubygems-update.gemspec +2 -2
  333. data/setup.rb +2 -7
  334. data/test/rubygems/plugin/load/rubygems_plugin.rb +0 -2
  335. data/test/rubygems/rubygems/commands/crash_command.rb +0 -2
  336. data/test/rubygems/rubygems_plugin.rb +0 -2
  337. data/test/rubygems/specifications/bar-0.0.2.gemspec +0 -2
  338. data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +12 -0
  339. data/test/rubygems/test_bundled_ca.rb +38 -45
  340. data/test/rubygems/test_config.rb +0 -2
  341. data/test/rubygems/test_deprecate.rb +40 -7
  342. data/test/rubygems/test_gem.rb +150 -103
  343. data/test/rubygems/test_gem_available_set.rb +3 -5
  344. data/test/rubygems/test_gem_bundler_version_finder.rb +19 -3
  345. data/test/rubygems/test_gem_command.rb +24 -7
  346. data/test/rubygems/test_gem_command_manager.rb +36 -5
  347. data/test/rubygems/test_gem_commands_build_command.rb +53 -10
  348. data/test/rubygems/test_gem_commands_cert_command.rb +2 -4
  349. data/test/rubygems/test_gem_commands_check_command.rb +0 -2
  350. data/test/rubygems/test_gem_commands_cleanup_command.rb +13 -4
  351. data/test/rubygems/test_gem_commands_contents_command.rb +48 -17
  352. data/test/rubygems/test_gem_commands_dependency_command.rb +0 -2
  353. data/test/rubygems/test_gem_commands_environment_command.rb +21 -23
  354. data/test/rubygems/test_gem_commands_fetch_command.rb +0 -2
  355. data/test/rubygems/test_gem_commands_generate_index_command.rb +1 -7
  356. data/test/rubygems/test_gem_commands_help_command.rb +0 -2
  357. data/test/rubygems/test_gem_commands_info_command.rb +6 -8
  358. data/test/rubygems/test_gem_commands_install_command.rb +31 -33
  359. data/test/rubygems/test_gem_commands_list_command.rb +0 -2
  360. data/test/rubygems/test_gem_commands_lock_command.rb +0 -2
  361. data/test/rubygems/test_gem_commands_mirror.rb +1 -3
  362. data/test/rubygems/test_gem_commands_open_command.rb +4 -6
  363. data/test/rubygems/test_gem_commands_outdated_command.rb +0 -2
  364. data/test/rubygems/test_gem_commands_owner_command.rb +11 -5
  365. data/test/rubygems/test_gem_commands_pristine_command.rb +41 -10
  366. data/test/rubygems/test_gem_commands_push_command.rb +7 -4
  367. data/test/rubygems/test_gem_commands_query_command.rb +9 -9
  368. data/test/rubygems/test_gem_commands_search_command.rb +0 -2
  369. data/test/rubygems/test_gem_commands_server_command.rb +0 -2
  370. data/test/rubygems/test_gem_commands_setup_command.rb +210 -118
  371. data/test/rubygems/test_gem_commands_signin_command.rb +6 -6
  372. data/test/rubygems/test_gem_commands_signout_command.rb +0 -7
  373. data/test/rubygems/test_gem_commands_sources_command.rb +39 -3
  374. data/test/rubygems/test_gem_commands_specification_command.rb +18 -20
  375. data/test/rubygems/test_gem_commands_stale_command.rb +0 -2
  376. data/test/rubygems/test_gem_commands_uninstall_command.rb +2 -3
  377. data/test/rubygems/test_gem_commands_unpack_command.rb +0 -2
  378. data/test/rubygems/test_gem_commands_update_command.rb +116 -7
  379. data/test/rubygems/test_gem_commands_which_command.rb +3 -5
  380. data/test/rubygems/test_gem_commands_yank_command.rb +14 -8
  381. data/test/rubygems/test_gem_config_file.rb +7 -12
  382. data/test/rubygems/test_gem_dependency.rb +0 -2
  383. data/test/rubygems/test_gem_dependency_installer.rb +54 -191
  384. data/test/rubygems/test_gem_dependency_list.rb +8 -10
  385. data/test/rubygems/test_gem_dependency_resolution_error.rb +1 -3
  386. data/test/rubygems/test_gem_doctor.rb +28 -2
  387. data/test/rubygems/test_gem_ext_builder.rb +16 -33
  388. data/test/rubygems/test_gem_ext_cmake_builder.rb +13 -14
  389. data/test/rubygems/test_gem_ext_configure_builder.rb +1 -11
  390. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +0 -3
  391. data/test/rubygems/test_gem_ext_rake_builder.rb +9 -11
  392. data/test/rubygems/test_gem_gem_runner.rb +43 -1
  393. data/test/rubygems/test_gem_gemcutter_utilities.rb +5 -2
  394. data/test/rubygems/test_gem_impossible_dependencies_error.rb +0 -2
  395. data/test/rubygems/test_gem_indexer.rb +9 -15
  396. data/test/rubygems/test_gem_install_update_options.rb +0 -2
  397. data/test/rubygems/test_gem_installer.rb +192 -71
  398. data/test/rubygems/test_gem_local_remote_options.rb +0 -2
  399. data/test/rubygems/test_gem_name_tuple.rb +0 -2
  400. data/test/rubygems/test_gem_package.rb +33 -31
  401. data/test/rubygems/test_gem_package_old.rb +0 -2
  402. data/test/rubygems/test_gem_package_tar_header.rb +18 -1
  403. data/test/rubygems/test_gem_package_tar_reader.rb +0 -2
  404. data/test/rubygems/test_gem_package_tar_reader_entry.rb +0 -2
  405. data/test/rubygems/test_gem_package_tar_writer.rb +8 -5
  406. data/test/rubygems/test_gem_package_task.rb +46 -13
  407. data/test/rubygems/test_gem_path_support.rb +0 -2
  408. data/test/rubygems/test_gem_platform.rb +0 -2
  409. data/test/rubygems/test_gem_rdoc.rb +0 -2
  410. data/test/rubygems/test_gem_remote_fetcher.rb +156 -195
  411. data/test/rubygems/test_gem_request.rb +11 -15
  412. data/test/rubygems/test_gem_request_connection_pools.rb +0 -4
  413. data/test/rubygems/test_gem_request_set.rb +72 -22
  414. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +3 -5
  415. data/test/rubygems/test_gem_request_set_lockfile.rb +0 -2
  416. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +9 -11
  417. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +118 -120
  418. data/test/rubygems/test_gem_requirement.rb +10 -4
  419. data/test/rubygems/test_gem_resolver.rb +6 -8
  420. data/test/rubygems/test_gem_resolver_activation_request.rb +0 -2
  421. data/test/rubygems/test_gem_resolver_api_set.rb +3 -5
  422. data/test/rubygems/test_gem_resolver_api_specification.rb +0 -2
  423. data/test/rubygems/test_gem_resolver_best_set.rb +2 -4
  424. data/test/rubygems/test_gem_resolver_composed_set.rb +0 -2
  425. data/test/rubygems/test_gem_resolver_conflict.rb +0 -2
  426. data/test/rubygems/test_gem_resolver_dependency_request.rb +0 -2
  427. data/test/rubygems/test_gem_resolver_git_set.rb +0 -2
  428. data/test/rubygems/test_gem_resolver_git_specification.rb +0 -2
  429. data/test/rubygems/test_gem_resolver_index_set.rb +2 -4
  430. data/test/rubygems/test_gem_resolver_index_specification.rb +0 -2
  431. data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -2
  432. data/test/rubygems/test_gem_resolver_installer_set.rb +7 -9
  433. data/test/rubygems/test_gem_resolver_local_specification.rb +0 -2
  434. data/test/rubygems/test_gem_resolver_lock_set.rb +3 -5
  435. data/test/rubygems/test_gem_resolver_lock_specification.rb +0 -2
  436. data/test/rubygems/test_gem_resolver_requirement_list.rb +0 -2
  437. data/test/rubygems/test_gem_resolver_specification.rb +0 -4
  438. data/test/rubygems/test_gem_resolver_vendor_set.rb +0 -2
  439. data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -2
  440. data/test/rubygems/test_gem_security.rb +20 -22
  441. data/test/rubygems/test_gem_security_policy.rb +5 -10
  442. data/test/rubygems/test_gem_security_signer.rb +8 -10
  443. data/test/rubygems/test_gem_security_trust_dir.rb +2 -4
  444. data/test/rubygems/test_gem_server.rb +10 -14
  445. data/test/rubygems/test_gem_silent_ui.rb +0 -2
  446. data/test/rubygems/test_gem_source.rb +12 -16
  447. data/test/rubygems/test_gem_source_fetch_problem.rb +0 -2
  448. data/test/rubygems/test_gem_source_git.rb +12 -13
  449. data/test/rubygems/test_gem_source_installed.rb +7 -9
  450. data/test/rubygems/test_gem_source_list.rb +1 -2
  451. data/test/rubygems/test_gem_source_local.rb +8 -10
  452. data/test/rubygems/test_gem_source_lock.rb +10 -12
  453. data/test/rubygems/test_gem_source_specific_file.rb +7 -9
  454. data/test/rubygems/test_gem_source_vendor.rb +7 -9
  455. data/test/rubygems/test_gem_spec_fetcher.rb +11 -4
  456. data/test/rubygems/test_gem_specification.rb +179 -129
  457. data/test/rubygems/test_gem_stream_ui.rb +3 -3
  458. data/test/rubygems/test_gem_stub_specification.rb +4 -7
  459. data/test/rubygems/test_gem_text.rb +1 -3
  460. data/test/rubygems/test_gem_uninstaller.rb +133 -11
  461. data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +0 -2
  462. data/test/rubygems/test_gem_uri_formatter.rb +0 -2
  463. data/test/rubygems/test_gem_util.rb +7 -7
  464. data/test/rubygems/test_gem_validator.rb +0 -2
  465. data/test/rubygems/test_gem_version.rb +1 -3
  466. data/test/rubygems/test_gem_version_option.rb +0 -2
  467. data/test/rubygems/test_kernel.rb +25 -10
  468. data/test/rubygems/test_project_sanity.rb +7 -2
  469. data/test/rubygems/test_remote_fetch_error.rb +0 -2
  470. data/test/rubygems/test_require.rb +241 -47
  471. metadata +59 -96
  472. data/.bundle/config +0 -2
  473. data/.rubocop.yml +0 -91
  474. data/Gemfile +0 -8
  475. data/Gemfile.lock +0 -43
  476. data/bundler/CODE_OF_CONDUCT.md +0 -136
  477. data/bundler/man/bundle-add.1.txt +0 -58
  478. data/bundler/man/bundle-binstubs.1.txt +0 -48
  479. data/bundler/man/bundle-cache.1.txt +0 -78
  480. data/bundler/man/bundle-check.1.txt +0 -33
  481. data/bundler/man/bundle-clean.1.txt +0 -26
  482. data/bundler/man/bundle-config.1.txt +0 -528
  483. data/bundler/man/bundle-doctor.1.txt +0 -44
  484. data/bundler/man/bundle-exec.1.txt +0 -178
  485. data/bundler/man/bundle-gem.1.txt +0 -91
  486. data/bundler/man/bundle-info.1.txt +0 -21
  487. data/bundler/man/bundle-init.1.txt +0 -34
  488. data/bundler/man/bundle-inject.1.txt +0 -32
  489. data/bundler/man/bundle-install.1.txt +0 -401
  490. data/bundler/man/bundle-list.1.txt +0 -43
  491. data/bundler/man/bundle-lock.1.txt +0 -93
  492. data/bundler/man/bundle-open.1.txt +0 -29
  493. data/bundler/man/bundle-outdated.1.txt +0 -131
  494. data/bundler/man/bundle-platform.1.txt +0 -57
  495. data/bundler/man/bundle-pristine.1.txt +0 -44
  496. data/bundler/man/bundle-remove.1.txt +0 -34
  497. data/bundler/man/bundle-show.1.txt +0 -27
  498. data/bundler/man/bundle-update.1.txt +0 -390
  499. data/bundler/man/bundle-viz.1.txt +0 -39
  500. data/bundler/man/bundle.1.txt +0 -116
  501. data/bundler/man/gemfile.5.txt +0 -649
  502. data/bundler/man/index.txt +0 -25
  503. data/lib/rubygems/source_local.rb +0 -7
  504. data/lib/rubygems/source_specific_file.rb +0 -6
  505. data/lib/ubygems.rb +0 -14
  506. data/tmp/.keep +0 -0
  507. data/util/CL2notes +0 -55
  508. data/util/bisect +0 -10
  509. data/util/ci.sh +0 -62
  510. data/util/cops/deprecations.rb +0 -52
  511. data/util/create_certs.rb +0 -171
  512. data/util/create_certs.sh +0 -27
  513. data/util/create_encrypted_key.rb +0 -16
  514. data/util/generate_spdx_license_list.rb +0 -63
  515. data/util/patch_with_prs.rb +0 -77
  516. data/util/rubocop +0 -8
  517. data/util/update_bundled_ca_certificates.rb +0 -139
  518. data/util/update_changelog.rb +0 -67
@@ -1,18 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  require 'rubygems'
3
3
 
4
- begin
5
- gem 'rdoc'
6
- rescue Gem::LoadError
7
- # swallow
8
- else
9
- # This will force any deps that 'rdoc' might have
10
- # (such as json) that are ambiguous to be activated, which
11
- # is important because we end up using Specification.reset
12
- # and we don't want the warning it pops out.
13
- Gem.finish_resolve
14
- end
15
-
16
4
  begin
17
5
  require 'rdoc/rubygems_hook'
18
6
  module Gem
@@ -7,17 +7,13 @@ require 'rubygems/uri_formatter'
7
7
  require 'rubygems/uri_parsing'
8
8
  require 'rubygems/user_interaction'
9
9
  require 'resolv'
10
- require 'rubygems/deprecate'
11
10
 
12
11
  ##
13
12
  # RemoteFetcher handles the details of fetching gems and gem information from
14
13
  # a remote source.
15
14
 
16
15
  class Gem::RemoteFetcher
17
-
18
16
  include Gem::UserInteraction
19
- extend Gem::Deprecate
20
-
21
17
  include Gem::UriParsing
22
18
 
23
19
  ##
@@ -25,7 +21,6 @@ class Gem::RemoteFetcher
25
21
  # that could happen while downloading from the internet.
26
22
 
27
23
  class FetchError < Gem::Exception
28
-
29
24
  include Gem::UriParsing
30
25
 
31
26
  ##
@@ -46,7 +41,6 @@ class Gem::RemoteFetcher
46
41
  def to_s # :nodoc:
47
42
  "#{super} (#{uri})"
48
43
  end
49
-
50
44
  end
51
45
 
52
46
  ##
@@ -109,7 +103,7 @@ class Gem::RemoteFetcher
109
103
 
110
104
  return if found.empty?
111
105
 
112
- spec, source = found.max_by { |(s,_)| s.version }
106
+ spec, source = found.max_by {|(s,_)| s.version }
113
107
 
114
108
  download spec, source.uri
115
109
  end
@@ -120,11 +114,12 @@ class Gem::RemoteFetcher
120
114
  # always replaced.
121
115
 
122
116
  def download(spec, source_uri, install_dir = Gem.dir)
117
+ install_cache_dir = File.join install_dir, "cache"
123
118
  cache_dir =
124
- if Dir.pwd == install_dir # see fetch_command
119
+ if Dir.pwd == install_dir # see fetch_command
125
120
  install_dir
126
- elsif File.writable? install_dir
127
- File.join install_dir, "cache"
121
+ elsif File.writable?(install_cache_dir) || (File.writable?(install_dir) && (not File.exist?(install_cache_dir)))
122
+ install_cache_dir
128
123
  else
129
124
  File.join Gem.user_dir, "cache"
130
125
  end
@@ -132,6 +127,7 @@ class Gem::RemoteFetcher
132
127
  gem_file_name = File.basename spec.cache_file
133
128
  local_gem_path = File.join cache_dir, gem_file_name
134
129
 
130
+ require "fileutils"
135
131
  FileUtils.mkdir_p cache_dir rescue nil unless File.exist? cache_dir
136
132
 
137
133
  source_uri = parse_uri(source_uri)
@@ -215,7 +211,7 @@ class Gem::RemoteFetcher
215
211
  def fetch_http(uri, last_modified = nil, head = false, depth = 0)
216
212
  fetch_type = head ? Net::HTTP::Head : Net::HTTP::Get
217
213
  response = request uri, fetch_type, last_modified do |req|
218
- headers.each { |k,v| req.add_field(k,v) }
214
+ headers.each {|k,v| req.add_field(k,v) }
219
215
  end
220
216
 
221
217
  case response
@@ -255,7 +251,7 @@ class Gem::RemoteFetcher
255
251
 
256
252
  data = send "fetch_#{uri.scheme}", uri, mtime, head
257
253
 
258
- if data and !head and uri.to_s =~ /\.gz$/
254
+ if data and !head and uri.to_s.end_with?(".gz")
259
255
  begin
260
256
  data = Gem::Util.gunzip data
261
257
  rescue Zlib::GzipFile::Error
@@ -309,17 +305,6 @@ class Gem::RemoteFetcher
309
305
  data
310
306
  end
311
307
 
312
- ##
313
- # Returns the size of +uri+ in bytes.
314
-
315
- def fetch_size(uri)
316
- response = fetch_path(uri, nil, true)
317
-
318
- response['content-length'].to_i
319
- end
320
-
321
- deprecate :fetch_size, :none, 2019, 12
322
-
323
308
  ##
324
309
  # Performs a Net::HTTP request of type +request_class+ on +uri+ returning
325
310
  # a Net::HTTP response object. request maintains a table of persistent
@@ -341,7 +326,7 @@ class Gem::RemoteFetcher
341
326
  end
342
327
 
343
328
  def close_all
344
- @pools.each_value {|pool| pool.close_all}
329
+ @pools.each_value {|pool| pool.close_all }
345
330
  end
346
331
 
347
332
  private
@@ -355,5 +340,4 @@ class Gem::RemoteFetcher
355
340
  @pools[proxy] ||= Gem::Request::ConnectionPools.new proxy, @cert_files
356
341
  end
357
342
  end
358
-
359
343
  end
@@ -4,7 +4,6 @@ require 'time'
4
4
  require 'rubygems/user_interaction'
5
5
 
6
6
  class Gem::Request
7
-
8
7
  extend Gem::UserInteraction
9
8
  include Gem::UserInteraction
10
9
 
@@ -46,7 +45,7 @@ class Gem::Request
46
45
  end
47
46
 
48
47
  def self.configure_connection_for_https(connection, cert_files)
49
- require 'net/https'
48
+ require 'openssl'
50
49
  connection.use_ssl = true
51
50
  connection.verify_mode =
52
51
  Gem.configuration.ssl_verify_mode || OpenSSL::SSL::VERIFY_PEER
@@ -78,12 +77,6 @@ class Gem::Request
78
77
  end
79
78
 
80
79
  connection
81
- rescue LoadError => e
82
- raise unless (e.respond_to?(:path) && e.path == 'openssl') ||
83
- e.message =~ / -- openssl$/
84
-
85
- raise Gem::Exception.new(
86
- 'Unable to require openssl, install OpenSSL and rebuild Ruby (preferred) or use non-HTTPS sources')
87
80
  end
88
81
 
89
82
  def self.verify_certificate(store_context)
@@ -291,7 +284,6 @@ class Gem::Request
291
284
 
292
285
  ua
293
286
  end
294
-
295
287
  end
296
288
 
297
289
  require 'rubygems/request/http_pool'
@@ -1,13 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Gem::Request::ConnectionPools # :nodoc:
4
-
5
4
  @client = Net::HTTP
6
5
 
7
6
  class << self
8
-
9
7
  attr_accessor :client
10
-
11
8
  end
12
9
 
13
10
  def initialize(proxy_uri, cert_files)
@@ -31,7 +28,7 @@ class Gem::Request::ConnectionPools # :nodoc:
31
28
  end
32
29
 
33
30
  def close_all
34
- @pools.each_value {|pool| pool.close_all}
31
+ @pools.each_value {|pool| pool.close_all }
35
32
  end
36
33
 
37
34
  private
@@ -95,5 +92,4 @@ class Gem::Request::ConnectionPools # :nodoc:
95
92
  net_http_args
96
93
  end
97
94
  end
98
-
99
95
  end
@@ -6,7 +6,6 @@
6
6
  # use it.
7
7
 
8
8
  class Gem::Request::HTTPPool # :nodoc:
9
-
10
9
  attr_reader :cert_files, :proxy_uri
11
10
 
12
11
  def initialize(http_args, cert_files, proxy_uri)
@@ -44,5 +43,4 @@ class Gem::Request::HTTPPool # :nodoc:
44
43
  connection.start
45
44
  connection
46
45
  end
47
-
48
46
  end
@@ -1,11 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
  class Gem::Request::HTTPSPool < Gem::Request::HTTPPool # :nodoc:
3
-
4
3
  private
5
4
 
6
5
  def setup_connection(connection)
7
6
  Gem::Request.configure_connection_for_https(connection, @cert_files)
8
7
  super
9
8
  end
10
-
11
9
  end
@@ -15,7 +15,6 @@ 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
18
  include TSort
20
19
 
21
20
  ##
@@ -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
@@ -269,7 +268,7 @@ class Gem::RequestSet
269
268
  gem_home, ENV['GEM_HOME'] = ENV['GEM_HOME'], dir
270
269
 
271
270
  existing = force ? [] : specs_in(dir)
272
- existing.delete_if { |s| @always_install.include? s }
271
+ existing.delete_if {|s| @always_install.include? s }
273
272
 
274
273
  dir = File.expand_path dir
275
274
 
@@ -283,7 +282,7 @@ class Gem::RequestSet
283
282
  sorted_requests.each do |request|
284
283
  spec = request.spec
285
284
 
286
- if existing.find { |s| s.full_name == spec.full_name }
285
+ if existing.find {|s| s.full_name == spec.full_name }
287
286
  yield request, nil if block_given?
288
287
  next
289
288
  end
@@ -386,7 +385,7 @@ class Gem::RequestSet
386
385
  q.text 'sets:'
387
386
 
388
387
  q.breakable
389
- q.pp @sets.map { |set| set.class }
388
+ q.pp @sets.map {|set| set.class }
390
389
  end
391
390
  end
392
391
 
@@ -440,7 +439,7 @@ class Gem::RequestSet
440
439
  end
441
440
 
442
441
  def specs
443
- @specs ||= @requests.map { |r| r.full_spec }
442
+ @specs ||= @requests.map {|r| r.full_spec }
444
443
  end
445
444
 
446
445
  def specs_in(dir)
@@ -471,7 +470,6 @@ class Gem::RequestSet
471
470
  yield match
472
471
  end
473
472
  end
474
-
475
473
  end
476
474
 
477
475
  require 'rubygems/request_set/gem_dependency_api'
@@ -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],
@@ -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 = {}
@@ -235,7 +234,7 @@ class Gem::RequestSet::GemDependencyAPI
235
234
  return unless (groups & @without_groups).empty?
236
235
 
237
236
  dependencies.each do |dep|
238
- @set.gem dep.name, *dep.requirement
237
+ @set.gem dep.name, *dep.requirement.as_list
239
238
  end
240
239
  end
241
240
 
@@ -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
@@ -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
  ##
@@ -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,12 +100,12 @@ 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|
108
+ requests.sort_by {|request| request.name }.each do |request|
112
109
  next if request.spec.name == 'bundler'
113
110
  platform = "-#{request.spec.platform}" unless
114
111
  Gem::Platform::RUBY == request.spec.platform
@@ -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
@@ -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
  ##
@@ -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
239
  require 'rubygems/request_set/lockfile/tokenizer'
@@ -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
 
@@ -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
@@ -2,7 +2,6 @@
2
2
  require 'rubygems/request_set/lockfile/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,7 +22,7 @@ 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)
@@ -110,5 +109,4 @@ class Gem::RequestSet::Lockfile::Tokenizer
110
109
 
111
110
  @tokens
112
111
  end
113
-
114
112
  end
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- require "rubygems/version"
3
2
  require "rubygems/deprecate"
4
3
 
5
4
  ##
@@ -10,20 +9,19 @@ require "rubygems/deprecate"
10
9
  # together in RubyGems.
11
10
 
12
11
  class Gem::Requirement
13
-
14
12
  OPS = { #:nodoc:
15
- "=" => lambda { |v, r| v == r },
16
- "!=" => lambda { |v, r| v != r },
17
- ">" => lambda { |v, r| v > r },
18
- "<" => lambda { |v, r| v < r },
19
- ">=" => lambda { |v, r| v >= r },
20
- "<=" => lambda { |v, r| v <= r },
21
- "~>" => lambda { |v, r| v >= r && v.release < r.bump }
13
+ "=" => lambda {|v, r| v == r },
14
+ "!=" => lambda {|v, r| v != r },
15
+ ">" => lambda {|v, r| v > r },
16
+ "<" => lambda {|v, r| v < r },
17
+ ">=" => lambda {|v, r| v >= r },
18
+ "<=" => lambda {|v, r| v <= r },
19
+ "~>" => lambda {|v, r| v >= r && v.release < r.bump }
22
20
  }.freeze
23
21
 
24
22
  SOURCE_SET_REQUIREMENT = Struct.new(:for_lockfile).new "!" # :nodoc:
25
23
 
26
- quoted = OPS.keys.map { |k| Regexp.quote k }.join "|"
24
+ quoted = OPS.keys.map {|k| Regexp.quote k }.join "|"
27
25
  PATTERN_RAW = "\\s*(#{quoted})?\\s*(#{Gem::Version::VERSION_PATTERN})\\s*".freeze # :nodoc:
28
26
 
29
27
  ##
@@ -113,7 +111,7 @@ class Gem::Requirement
113
111
  elsif $1 == ">=" && $2 == "0.a"
114
112
  DefaultPrereleaseRequirement
115
113
  else
116
- [$1 || "=", Gem::Version.new($2)]
114
+ [-($1 || "="), Gem::Version.new($2)]
117
115
  end
118
116
  end
119
117
 
@@ -137,7 +135,7 @@ class Gem::Requirement
137
135
  if requirements.empty?
138
136
  @requirements = [DefaultRequirement]
139
137
  else
140
- @requirements = requirements.map! { |r| self.class.parse r }
138
+ @requirements = requirements.map! {|r| self.class.parse r }
141
139
  end
142
140
  end
143
141
 
@@ -148,7 +146,7 @@ class Gem::Requirement
148
146
  new = new.flatten
149
147
  new.compact!
150
148
  new.uniq!
151
- new = new.map { |r| self.class.parse r }
149
+ new = new.map {|r| self.class.parse r }
152
150
 
153
151
  @requirements.concat new
154
152
  end
@@ -188,7 +186,7 @@ class Gem::Requirement
188
186
  end
189
187
 
190
188
  def as_list # :nodoc:
191
- requirements.map { |op, version| "#{op} #{version}" }
189
+ requirements.map {|op, version| "#{op} #{version}" }
192
190
  end
193
191
 
194
192
  def hash # :nodoc:
@@ -233,7 +231,7 @@ class Gem::Requirement
233
231
  # are prereleases
234
232
 
235
233
  def prerelease?
236
- requirements.any? { |r| r.last.prerelease? }
234
+ requirements.any? {|r| r.last.prerelease? }
237
235
  end
238
236
 
239
237
  def pretty_print(q) # :nodoc:
@@ -249,7 +247,7 @@ class Gem::Requirement
249
247
  raise ArgumentError, "Need a Gem::Version: #{version.inspect}" unless
250
248
  Gem::Version === version
251
249
  # #28965: syck has a bug with unquoted '=' YAML.loading as YAML::DefaultKey
252
- requirements.all? { |op, rv| (OPS[op] || OPS["="]).call version, rv }
250
+ requirements.all? {|op, rv| (OPS[op] || OPS["="]).call version, rv }
253
251
  end
254
252
 
255
253
  alias :=== :satisfied_by?
@@ -272,7 +270,7 @@ class Gem::Requirement
272
270
  return unless Gem::Requirement === other
273
271
 
274
272
  # An == check is always necessary
275
- return false unless requirements == other.requirements
273
+ return false unless _sorted_requirements == other._sorted_requirements
276
274
 
277
275
  # An == check is sufficient unless any requirements use ~>
278
276
  return true unless _tilde_requirements.any?
@@ -284,8 +282,12 @@ class Gem::Requirement
284
282
 
285
283
  protected
286
284
 
285
+ def _sorted_requirements
286
+ @_sorted_requirements ||= requirements.sort_by(&:to_s)
287
+ end
288
+
287
289
  def _tilde_requirements
288
- requirements.select { |r| r.first == "~>" }
290
+ @_tilde_requirements ||= _sorted_requirements.select {|r| r.first == "~>" }
289
291
  end
290
292
 
291
293
  private
@@ -300,14 +302,11 @@ class Gem::Requirement
300
302
  end
301
303
  end
302
304
  end
303
-
304
305
  end
305
306
 
306
307
  class Gem::Version
307
-
308
308
  # This is needed for compatibility with older yaml
309
309
  # gemspecs.
310
310
 
311
311
  Requirement = Gem::Requirement # :nodoc:
312
-
313
312
  end