rubygems-update 3.3.18 → 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 (388) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +65 -0
  3. data/Manifest.txt +11 -0
  4. data/bin/gem +2 -2
  5. data/bin/update_rubygems +4 -4
  6. data/bundler/CHANGELOG.md +100 -0
  7. data/bundler/UPGRADING.md +11 -4
  8. data/bundler/bundler.gemspec +6 -8
  9. data/bundler/lib/bundler/build_metadata.rb +2 -2
  10. data/bundler/lib/bundler/cli/common.rb +1 -0
  11. data/bundler/lib/bundler/cli/install.rb +5 -2
  12. data/bundler/lib/bundler/cli/outdated.rb +12 -3
  13. data/bundler/lib/bundler/cli/platform.rb +1 -1
  14. data/bundler/lib/bundler/cli.rb +7 -4
  15. data/bundler/lib/bundler/current_ruby.rb +14 -5
  16. data/bundler/lib/bundler/definition.rb +102 -31
  17. data/bundler/lib/bundler/dependency.rb +18 -85
  18. data/bundler/lib/bundler/dsl.rb +2 -2
  19. data/bundler/lib/bundler/endpoint_specification.rb +2 -13
  20. data/bundler/lib/bundler/feature_flag.rb +0 -1
  21. data/bundler/lib/bundler/fetcher.rb +6 -6
  22. data/bundler/lib/bundler/gem_helpers.rb +7 -1
  23. data/bundler/lib/bundler/gem_version_promoter.rb +8 -18
  24. data/bundler/lib/bundler/index.rb +10 -12
  25. data/bundler/lib/bundler/injector.rb +2 -1
  26. data/bundler/lib/bundler/inline.rb +1 -1
  27. data/bundler/lib/bundler/installer/standalone.rb +1 -1
  28. data/bundler/lib/bundler/installer.rb +14 -12
  29. data/bundler/lib/bundler/lazy_specification.rb +30 -23
  30. data/bundler/lib/bundler/lockfile_generator.rb +1 -1
  31. data/bundler/lib/bundler/man/bundle-add.1 +6 -2
  32. data/bundler/lib/bundler/man/bundle-add.1.ronn +4 -1
  33. data/bundler/lib/bundler/man/bundle-binstubs.1 +1 -1
  34. data/bundler/lib/bundler/man/bundle-cache.1 +7 -1
  35. data/bundler/lib/bundler/man/bundle-cache.1.ronn +7 -0
  36. data/bundler/lib/bundler/man/bundle-check.1 +1 -1
  37. data/bundler/lib/bundler/man/bundle-clean.1 +1 -1
  38. data/bundler/lib/bundler/man/bundle-config.1 +25 -6
  39. data/bundler/lib/bundler/man/bundle-config.1.ronn +16 -6
  40. data/bundler/lib/bundler/man/bundle-console.1 +53 -0
  41. data/bundler/lib/bundler/man/bundle-console.1.ronn +44 -0
  42. data/bundler/lib/bundler/man/bundle-doctor.1 +1 -1
  43. data/bundler/lib/bundler/man/bundle-exec.1 +2 -2
  44. data/bundler/lib/bundler/man/bundle-exec.1.ronn +1 -1
  45. data/bundler/lib/bundler/man/bundle-gem.1 +1 -1
  46. data/bundler/lib/bundler/man/bundle-help.1 +13 -0
  47. data/bundler/lib/bundler/man/bundle-help.1.ronn +12 -0
  48. data/bundler/lib/bundler/man/bundle-info.1 +1 -1
  49. data/bundler/lib/bundler/man/bundle-init.1 +1 -1
  50. data/bundler/lib/bundler/man/bundle-inject.1 +5 -2
  51. data/bundler/lib/bundler/man/bundle-inject.1.ronn +3 -1
  52. data/bundler/lib/bundler/man/bundle-install.1 +5 -1
  53. data/bundler/lib/bundler/man/bundle-install.1.ronn +6 -0
  54. data/bundler/lib/bundler/man/bundle-list.1 +1 -1
  55. data/bundler/lib/bundler/man/bundle-lock.1 +1 -1
  56. data/bundler/lib/bundler/man/bundle-open.1 +1 -1
  57. data/bundler/lib/bundler/man/bundle-outdated.1 +1 -1
  58. data/bundler/lib/bundler/man/bundle-platform.1 +16 -6
  59. data/bundler/lib/bundler/man/bundle-platform.1.ronn +14 -7
  60. data/bundler/lib/bundler/man/bundle-plugin.1 +81 -0
  61. data/bundler/lib/bundler/man/bundle-plugin.1.ronn +59 -0
  62. data/bundler/lib/bundler/man/bundle-pristine.1 +1 -1
  63. data/bundler/lib/bundler/man/bundle-remove.1 +1 -1
  64. data/bundler/lib/bundler/man/bundle-show.1 +1 -1
  65. data/bundler/lib/bundler/man/bundle-update.1 +1 -1
  66. data/bundler/lib/bundler/man/bundle-version.1 +35 -0
  67. data/bundler/lib/bundler/man/bundle-version.1.ronn +24 -0
  68. data/bundler/lib/bundler/man/bundle-viz.1 +4 -1
  69. data/bundler/lib/bundler/man/bundle-viz.1.ronn +2 -0
  70. data/bundler/lib/bundler/man/bundle.1 +15 -10
  71. data/bundler/lib/bundler/man/bundle.1.ronn +12 -7
  72. data/bundler/lib/bundler/man/gemfile.5 +23 -47
  73. data/bundler/lib/bundler/man/gemfile.5.ronn +32 -43
  74. data/bundler/lib/bundler/man/index.txt +4 -0
  75. data/bundler/lib/bundler/match_metadata.rb +13 -0
  76. data/bundler/lib/bundler/match_remote_metadata.rb +29 -0
  77. data/bundler/lib/bundler/plugin.rb +2 -0
  78. data/bundler/lib/bundler/remote_specification.rb +6 -11
  79. data/bundler/lib/bundler/resolver/base.rb +50 -0
  80. data/bundler/lib/bundler/resolver/spec_group.rb +11 -8
  81. data/bundler/lib/bundler/resolver.rb +95 -90
  82. data/bundler/lib/bundler/ruby_dsl.rb +1 -1
  83. data/bundler/lib/bundler/ruby_version.rb +5 -5
  84. data/bundler/lib/bundler/rubygems_ext.rb +52 -1
  85. data/bundler/lib/bundler/rubygems_gem_installer.rb +19 -12
  86. data/bundler/lib/bundler/settings.rb +1 -1
  87. data/bundler/lib/bundler/source/metadata.rb +1 -1
  88. data/bundler/lib/bundler/source_list.rb +4 -0
  89. data/bundler/lib/bundler/spec_set.rb +48 -33
  90. data/bundler/lib/bundler/version.rb +1 -1
  91. data/bundler/lib/bundler.rb +3 -3
  92. data/lib/rubygems/available_set.rb +3 -3
  93. data/lib/rubygems/basic_specification.rb +4 -4
  94. data/lib/rubygems/command.rb +25 -25
  95. data/lib/rubygems/command_manager.rb +9 -9
  96. data/lib/rubygems/commands/build_command.rb +8 -8
  97. data/lib/rubygems/commands/cert_command.rb +33 -33
  98. data/lib/rubygems/commands/check_command.rb +20 -20
  99. data/lib/rubygems/commands/cleanup_command.rb +17 -17
  100. data/lib/rubygems/commands/contents_command.rb +13 -13
  101. data/lib/rubygems/commands/dependency_command.rb +16 -16
  102. data/lib/rubygems/commands/environment_command.rb +5 -5
  103. data/lib/rubygems/commands/fetch_command.rb +8 -8
  104. data/lib/rubygems/commands/generate_index_command.rb +17 -17
  105. data/lib/rubygems/commands/help_command.rb +3 -3
  106. data/lib/rubygems/commands/info_command.rb +3 -3
  107. data/lib/rubygems/commands/install_command.rb +20 -20
  108. data/lib/rubygems/commands/list_command.rb +3 -3
  109. data/lib/rubygems/commands/lock_command.rb +4 -4
  110. data/lib/rubygems/commands/mirror_command.rb +3 -3
  111. data/lib/rubygems/commands/open_command.rb +9 -9
  112. data/lib/rubygems/commands/outdated_command.rb +5 -5
  113. data/lib/rubygems/commands/owner_command.rb +11 -11
  114. data/lib/rubygems/commands/pristine_command.rb +36 -36
  115. data/lib/rubygems/commands/push_command.rb +8 -8
  116. data/lib/rubygems/commands/query_command.rb +8 -8
  117. data/lib/rubygems/commands/rdoc_command.rb +17 -17
  118. data/lib/rubygems/commands/search_command.rb +3 -3
  119. data/lib/rubygems/commands/server_command.rb +3 -3
  120. data/lib/rubygems/commands/setup_command.rb +96 -106
  121. data/lib/rubygems/commands/signin_command.rb +9 -9
  122. data/lib/rubygems/commands/signout_command.rb +7 -7
  123. data/lib/rubygems/commands/sources_command.rb +21 -21
  124. data/lib/rubygems/commands/specification_command.rb +13 -13
  125. data/lib/rubygems/commands/stale_command.rb +2 -2
  126. data/lib/rubygems/commands/uninstall_command.rb +40 -40
  127. data/lib/rubygems/commands/unpack_command.rb +12 -12
  128. data/lib/rubygems/commands/update_command.rb +40 -56
  129. data/lib/rubygems/commands/which_command.rb +7 -7
  130. data/lib/rubygems/commands/yank_command.rb +11 -11
  131. data/lib/rubygems/config_file.rb +21 -21
  132. data/lib/rubygems/core_ext/kernel_gem.rb +1 -1
  133. data/lib/rubygems/core_ext/kernel_require.rb +1 -1
  134. data/lib/rubygems/core_ext/kernel_warn.rb +1 -1
  135. data/lib/rubygems/core_ext/tcpsocket_init.rb +1 -1
  136. data/lib/rubygems/defaults.rb +16 -16
  137. data/lib/rubygems/dependency.rb +9 -9
  138. data/lib/rubygems/dependency_installer.rb +13 -13
  139. data/lib/rubygems/dependency_list.rb +6 -6
  140. data/lib/rubygems/doctor.rb +18 -18
  141. data/lib/rubygems/errors.rb +2 -2
  142. data/lib/rubygems/exceptions.rb +5 -5
  143. data/lib/rubygems/ext/build_error.rb +1 -1
  144. data/lib/rubygems/ext/builder.rb +16 -16
  145. data/lib/rubygems/ext/cargo_builder.rb +7 -7
  146. data/lib/rubygems/ext/cmake_builder.rb +2 -2
  147. data/lib/rubygems/ext/configure_builder.rb +1 -1
  148. data/lib/rubygems/ext/ext_conf_builder.rb +8 -8
  149. data/lib/rubygems/ext/rake_builder.rb +3 -3
  150. data/lib/rubygems/ext.rb +7 -7
  151. data/lib/rubygems/gem_runner.rb +5 -5
  152. data/lib/rubygems/gemcutter_utilities.rb +31 -28
  153. data/lib/rubygems/indexer.rb +27 -27
  154. data/lib/rubygems/install_default_message.rb +2 -2
  155. data/lib/rubygems/install_message.rb +2 -2
  156. data/lib/rubygems/install_update_options.rb +55 -55
  157. data/lib/rubygems/installer.rb +32 -40
  158. data/lib/rubygems/installer_uninstaller_utils.rb +2 -2
  159. data/lib/rubygems/local_remote_options.rb +18 -20
  160. data/lib/rubygems/mock_gem_ui.rb +2 -2
  161. data/lib/rubygems/name_tuple.rb +4 -4
  162. data/lib/rubygems/optparse.rb +1 -1
  163. data/lib/rubygems/package/file_source.rb +2 -2
  164. data/lib/rubygems/package/old.rb +8 -8
  165. data/lib/rubygems/package/tar_header.rb +50 -50
  166. data/lib/rubygems/package/tar_reader/entry.rb +2 -2
  167. data/lib/rubygems/package/tar_reader.rb +1 -1
  168. data/lib/rubygems/package/tar_writer.rb +7 -7
  169. data/lib/rubygems/package.rb +54 -43
  170. data/lib/rubygems/package_task.rb +4 -4
  171. data/lib/rubygems/platform.rb +66 -55
  172. data/lib/rubygems/psych_tree.rb +1 -1
  173. data/lib/rubygems/query_utils.rb +35 -35
  174. data/lib/rubygems/rdoc.rb +2 -2
  175. data/lib/rubygems/remote_fetcher.rb +22 -22
  176. data/lib/rubygems/request/connection_pools.rb +4 -4
  177. data/lib/rubygems/request/http_pool.rb +1 -1
  178. data/lib/rubygems/request.rb +22 -22
  179. data/lib/rubygems/request_set/gem_dependency_api.rb +18 -18
  180. data/lib/rubygems/request_set/lockfile/parser.rb +26 -26
  181. data/lib/rubygems/request_set/lockfile/tokenizer.rb +4 -4
  182. data/lib/rubygems/request_set/lockfile.rb +5 -5
  183. data/lib/rubygems/request_set.rb +17 -17
  184. data/lib/rubygems/requirement.rb +6 -6
  185. data/lib/rubygems/resolver/activation_request.rb +3 -3
  186. data/lib/rubygems/resolver/api_set.rb +4 -4
  187. data/lib/rubygems/resolver/api_specification.rb +6 -6
  188. data/lib/rubygems/resolver/best_set.rb +5 -5
  189. data/lib/rubygems/resolver/conflict.rb +10 -10
  190. data/lib/rubygems/resolver/dependency_request.rb +2 -2
  191. data/lib/rubygems/resolver/git_set.rb +2 -2
  192. data/lib/rubygems/resolver/git_specification.rb +6 -6
  193. data/lib/rubygems/resolver/index_set.rb +3 -3
  194. data/lib/rubygems/resolver/index_specification.rb +6 -5
  195. data/lib/rubygems/resolver/installed_specification.rb +4 -4
  196. data/lib/rubygems/resolver/installer_set.rb +11 -16
  197. data/lib/rubygems/resolver/local_specification.rb +2 -2
  198. data/lib/rubygems/resolver/lock_set.rb +4 -4
  199. data/lib/rubygems/resolver/lock_specification.rb +4 -4
  200. data/lib/rubygems/resolver/molinillo.rb +1 -1
  201. data/lib/rubygems/resolver/specification.rb +1 -1
  202. data/lib/rubygems/resolver/vendor_set.rb +1 -1
  203. data/lib/rubygems/resolver/vendor_specification.rb +3 -3
  204. data/lib/rubygems/resolver.rb +39 -39
  205. data/lib/rubygems/s3_uri_signer.rb +6 -6
  206. data/lib/rubygems/safe_yaml.rb +2 -2
  207. data/lib/rubygems/security/policies.rb +11 -11
  208. data/lib/rubygems/security/policy.rb +18 -18
  209. data/lib/rubygems/security/signer.rb +5 -5
  210. data/lib/rubygems/security/trust_dir.rb +3 -3
  211. data/lib/rubygems/security.rb +28 -28
  212. data/lib/rubygems/security_option.rb +5 -5
  213. data/lib/rubygems/source/git.rb +21 -21
  214. data/lib/rubygems/source/installed.rb +1 -1
  215. data/lib/rubygems/source/local.rb +2 -2
  216. data/lib/rubygems/source/specific_file.rb +1 -1
  217. data/lib/rubygems/source.rb +16 -16
  218. data/lib/rubygems/spec_fetcher.rb +9 -9
  219. data/lib/rubygems/specification.rb +63 -62
  220. data/lib/rubygems/specification_policy.rb +15 -15
  221. data/lib/rubygems/stub_specification.rb +5 -5
  222. data/lib/rubygems/tsort.rb +1 -1
  223. data/lib/rubygems/uninstaller.rb +18 -18
  224. data/lib/rubygems/uri.rb +4 -4
  225. data/lib/rubygems/uri_formatter.rb +1 -1
  226. data/lib/rubygems/user_interaction.rb +33 -19
  227. data/lib/rubygems/util/licenses.rb +3 -3
  228. data/lib/rubygems/util.rb +10 -10
  229. data/lib/rubygems/validator.rb +5 -5
  230. data/lib/rubygems/version.rb +15 -9
  231. data/lib/rubygems/version_option.rb +3 -3
  232. data/lib/rubygems.rb +62 -61
  233. data/rubygems-update.gemspec +2 -2
  234. data/setup.rb +9 -9
  235. data/test/rubygems/helper.rb +132 -134
  236. data/test/rubygems/installer_test_case.rb +13 -13
  237. data/test/rubygems/package/tar_test_case.rb +2 -2
  238. data/test/rubygems/plugin/exception/rubygems_plugin.rb +1 -1
  239. data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +1 -1
  240. data/test/rubygems/rubygems_plugin.rb +2 -2
  241. data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +4 -4
  242. data/test/rubygems/test_bundled_ca.rb +10 -10
  243. data/test/rubygems/test_config.rb +3 -3
  244. data/test/rubygems/test_deprecate.rb +3 -3
  245. data/test/rubygems/test_exit.rb +2 -2
  246. data/test/rubygems/test_gem.rb +342 -342
  247. data/test/rubygems/test_gem_available_set.rb +21 -21
  248. data/test/rubygems/test_gem_bundler_version_finder.rb +1 -1
  249. data/test/rubygems/test_gem_command.rb +44 -44
  250. data/test/rubygems/test_gem_command_manager.rb +29 -29
  251. data/test/rubygems/test_gem_commands_build_command.rb +63 -63
  252. data/test/rubygems/test_gem_commands_cert_command.rb +97 -99
  253. data/test/rubygems/test_gem_commands_check_command.rb +4 -4
  254. data/test/rubygems/test_gem_commands_cleanup_command.rb +40 -40
  255. data/test/rubygems/test_gem_commands_contents_command.rb +27 -27
  256. data/test/rubygems/test_gem_commands_dependency_command.rb +36 -36
  257. data/test/rubygems/test_gem_commands_environment_command.rb +16 -16
  258. data/test/rubygems/test_gem_commands_fetch_command.rb +37 -37
  259. data/test/rubygems/test_gem_commands_generate_index_command.rb +7 -7
  260. data/test/rubygems/test_gem_commands_help_command.rb +13 -13
  261. data/test/rubygems/test_gem_commands_info_command.rb +28 -2
  262. data/test/rubygems/test_gem_commands_install_command.rb +131 -131
  263. data/test/rubygems/test_gem_commands_list_command.rb +4 -4
  264. data/test/rubygems/test_gem_commands_lock_command.rb +10 -10
  265. data/test/rubygems/test_gem_commands_mirror.rb +2 -2
  266. data/test/rubygems/test_gem_commands_open_command.rb +4 -4
  267. data/test/rubygems/test_gem_commands_outdated_command.rb +9 -9
  268. data/test/rubygems/test_gem_commands_owner_command.rb +41 -41
  269. data/test/rubygems/test_gem_commands_pristine_command.rb +92 -92
  270. data/test/rubygems/test_gem_commands_push_command.rb +54 -54
  271. data/test/rubygems/test_gem_commands_query_command.rb +73 -73
  272. data/test/rubygems/test_gem_commands_search_command.rb +2 -2
  273. data/test/rubygems/test_gem_commands_server_command.rb +2 -2
  274. data/test/rubygems/test_gem_commands_setup_command.rb +119 -85
  275. data/test/rubygems/test_gem_commands_signin_command.rb +45 -31
  276. data/test/rubygems/test_gem_commands_signout_command.rb +3 -3
  277. data/test/rubygems/test_gem_commands_sources_command.rb +28 -29
  278. data/test/rubygems/test_gem_commands_specification_command.rb +32 -32
  279. data/test/rubygems/test_gem_commands_stale_command.rb +4 -4
  280. data/test/rubygems/test_gem_commands_uninstall_command.rb +75 -75
  281. data/test/rubygems/test_gem_commands_unpack_command.rb +31 -31
  282. data/test/rubygems/test_gem_commands_update_command.rb +89 -89
  283. data/test/rubygems/test_gem_commands_which_command.rb +6 -6
  284. data/test/rubygems/test_gem_commands_yank_command.rb +40 -40
  285. data/test/rubygems/test_gem_config_file.rb +93 -81
  286. data/test/rubygems/test_gem_dependency.rb +73 -73
  287. data/test/rubygems/test_gem_dependency_installer.rb +165 -165
  288. data/test/rubygems/test_gem_dependency_list.rb +47 -47
  289. data/test/rubygems/test_gem_dependency_resolution_error.rb +4 -4
  290. data/test/rubygems/test_gem_doctor.rb +26 -26
  291. data/test/rubygems/test_gem_ext_builder.rb +59 -59
  292. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/Cargo.lock +6 -6
  293. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/Cargo.toml +1 -1
  294. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/build.rb +8 -8
  295. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +1 -1
  296. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +6 -6
  297. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +1 -1
  298. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/build.rb +8 -8
  299. data/test/rubygems/test_gem_ext_cargo_builder.rb +26 -26
  300. data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +3 -3
  301. data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +23 -23
  302. data/test/rubygems/test_gem_ext_cmake_builder.rb +15 -15
  303. data/test/rubygems/test_gem_ext_configure_builder.rb +13 -13
  304. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +51 -52
  305. data/test/rubygems/test_gem_ext_rake_builder.rb +15 -15
  306. data/test/rubygems/test_gem_gem_runner.rb +7 -7
  307. data/test/rubygems/test_gem_gemcutter_utilities.rb +66 -66
  308. data/test/rubygems/test_gem_impossible_dependencies_error.rb +4 -4
  309. data/test/rubygems/test_gem_indexer.rb +48 -48
  310. data/test/rubygems/test_gem_install_update_options.rb +16 -16
  311. data/test/rubygems/test_gem_installer.rb +303 -300
  312. data/test/rubygems/test_gem_local_remote_options.rb +10 -10
  313. data/test/rubygems/test_gem_name_tuple.rb +4 -4
  314. data/test/rubygems/test_gem_package.rb +228 -206
  315. data/test/rubygems/test_gem_package_old.rb +13 -13
  316. data/test/rubygems/test_gem_package_tar_header.rb +42 -42
  317. data/test/rubygems/test_gem_package_tar_reader.rb +8 -8
  318. data/test/rubygems/test_gem_package_tar_reader_entry.rb +10 -10
  319. data/test/rubygems/test_gem_package_tar_writer.rb +76 -76
  320. data/test/rubygems/test_gem_package_task.rb +18 -18
  321. data/test/rubygems/test_gem_path_support.rb +14 -14
  322. data/test/rubygems/test_gem_platform.rb +298 -227
  323. data/test/rubygems/test_gem_rdoc.rb +14 -14
  324. data/test/rubygems/test_gem_remote_fetcher.rb +149 -149
  325. data/test/rubygems/test_gem_request.rb +55 -55
  326. data/test/rubygems/test_gem_request_connection_pools.rb +29 -29
  327. data/test/rubygems/test_gem_request_set.rb +99 -99
  328. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +204 -206
  329. data/test/rubygems/test_gem_request_set_lockfile.rb +86 -86
  330. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +56 -56
  331. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +62 -62
  332. data/test/rubygems/test_gem_requirement.rb +47 -41
  333. data/test/rubygems/test_gem_resolver.rb +133 -99
  334. data/test/rubygems/test_gem_resolver_activation_request.rb +6 -6
  335. data/test/rubygems/test_gem_resolver_api_set.rb +33 -33
  336. data/test/rubygems/test_gem_resolver_api_specification.rb +47 -47
  337. data/test/rubygems/test_gem_resolver_best_set.rb +22 -22
  338. data/test/rubygems/test_gem_resolver_composed_set.rb +1 -1
  339. data/test/rubygems/test_gem_resolver_conflict.rb +12 -12
  340. data/test/rubygems/test_gem_resolver_dependency_request.rb +15 -15
  341. data/test/rubygems/test_gem_resolver_git_set.rb +21 -21
  342. data/test/rubygems/test_gem_resolver_git_specification.rb +21 -21
  343. data/test/rubygems/test_gem_resolver_index_set.rb +12 -12
  344. data/test/rubygems/test_gem_resolver_index_specification.rb +16 -16
  345. data/test/rubygems/test_gem_resolver_installed_specification.rb +5 -5
  346. data/test/rubygems/test_gem_resolver_installer_set.rb +78 -34
  347. data/test/rubygems/test_gem_resolver_local_specification.rb +7 -7
  348. data/test/rubygems/test_gem_resolver_lock_set.rb +12 -12
  349. data/test/rubygems/test_gem_resolver_lock_specification.rb +17 -17
  350. data/test/rubygems/test_gem_resolver_requirement_list.rb +1 -1
  351. data/test/rubygems/test_gem_resolver_specification.rb +8 -8
  352. data/test/rubygems/test_gem_resolver_vendor_set.rb +6 -6
  353. data/test/rubygems/test_gem_resolver_vendor_specification.rb +10 -10
  354. data/test/rubygems/test_gem_security.rb +67 -67
  355. data/test/rubygems/test_gem_security_policy.rb +62 -62
  356. data/test/rubygems/test_gem_security_signer.rb +28 -28
  357. data/test/rubygems/test_gem_security_trust_dir.rb +4 -4
  358. data/test/rubygems/test_gem_silent_ui.rb +38 -32
  359. data/test/rubygems/test_gem_source.rb +44 -44
  360. data/test/rubygems/test_gem_source_fetch_problem.rb +9 -9
  361. data/test/rubygems/test_gem_source_git.rb +59 -59
  362. data/test/rubygems/test_gem_source_installed.rb +16 -16
  363. data/test/rubygems/test_gem_source_list.rb +5 -5
  364. data/test/rubygems/test_gem_source_local.rb +14 -14
  365. data/test/rubygems/test_gem_source_lock.rb +31 -31
  366. data/test/rubygems/test_gem_source_specific_file.rb +17 -17
  367. data/test/rubygems/test_gem_source_subpath_problem.rb +7 -7
  368. data/test/rubygems/test_gem_source_vendor.rb +13 -13
  369. data/test/rubygems/test_gem_spec_fetcher.rb +72 -72
  370. data/test/rubygems/test_gem_specification.rb +444 -436
  371. data/test/rubygems/test_gem_stream_ui.rb +19 -19
  372. data/test/rubygems/test_gem_stub_specification.rb +32 -32
  373. data/test/rubygems/test_gem_text.rb +1 -1
  374. data/test/rubygems/test_gem_uninstaller.rb +112 -112
  375. data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +3 -3
  376. data/test/rubygems/test_gem_uri.rb +4 -4
  377. data/test/rubygems/test_gem_uri_formatter.rb +14 -14
  378. data/test/rubygems/test_gem_util.rb +23 -23
  379. data/test/rubygems/test_gem_validator.rb +8 -8
  380. data/test/rubygems/test_gem_version.rb +22 -15
  381. data/test/rubygems/test_gem_version_option.rb +15 -15
  382. data/test/rubygems/test_kernel.rb +31 -31
  383. data/test/rubygems/test_project_sanity.rb +1 -1
  384. data/test/rubygems/test_remote_fetch_error.rb +6 -6
  385. data/test/rubygems/test_require.rb +43 -43
  386. data/test/rubygems/test_rubygems.rb +8 -8
  387. data/test/rubygems/utilities.rb +19 -19
  388. metadata +14 -3
@@ -1,3 +1,3 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'tsort/lib/tsort'
3
+ require_relative "tsort/lib/tsort"
@@ -5,12 +5,12 @@
5
5
  # See LICENSE.txt for permissions.
6
6
  #++
7
7
 
8
- require 'fileutils'
9
- require_relative '../rubygems'
10
- require_relative 'installer_uninstaller_utils'
11
- require_relative 'dependency_list'
12
- require_relative 'rdoc'
13
- require_relative 'user_interaction'
8
+ require "fileutils"
9
+ require_relative "../rubygems"
10
+ require_relative "installer_uninstaller_utils"
11
+ require_relative "dependency_list"
12
+ require_relative "rdoc"
13
+ require_relative "user_interaction"
14
14
 
15
15
  ##
16
16
  # An Uninstaller.
@@ -105,8 +105,8 @@ class Gem::Uninstaller
105
105
  @default_specs_matching_uninstall_params = default_specs
106
106
 
107
107
  list, other_repo_specs = list.partition do |spec|
108
- @gem_home == spec.base_dir or
109
- (@user_install and spec.base_dir == Gem.user_dir)
108
+ @gem_home == spec.base_dir ||
109
+ (@user_install && spec.base_dir == Gem.user_dir)
110
110
  end
111
111
 
112
112
  list.sort!
@@ -239,8 +239,8 @@ class Gem::Uninstaller
239
239
  # spec:: the spec of the gem to be uninstalled
240
240
 
241
241
  def remove(spec)
242
- unless path_ok?(@gem_home, spec) or
243
- (@user_install and path_ok?(Gem.user_dir, spec))
242
+ unless path_ok?(@gem_home, spec) ||
243
+ (@user_install && path_ok?(Gem.user_dir, spec))
244
244
  e = Gem::GemNotInHomeException.new \
245
245
  "Gem '#{spec.full_name}' is not installed in directory #{@gem_home}"
246
246
  e.spec = spec
@@ -302,8 +302,8 @@ class Gem::Uninstaller
302
302
  # Is +spec+ in +gem_dir+?
303
303
 
304
304
  def path_ok?(gem_dir, spec)
305
- full_path = File.join gem_dir, 'gems', spec.full_name
306
- original_path = File.join gem_dir, 'gems', spec.original_name
305
+ full_path = File.join gem_dir, "gems", spec.full_name
306
+ original_path = File.join gem_dir, "gems", spec.original_name
307
307
 
308
308
  full_path == spec.full_gem_path || original_path == spec.full_gem_path
309
309
  end
@@ -332,10 +332,10 @@ class Gem::Uninstaller
332
332
  # Asks if it is OK to remove +spec+. Returns true if it is OK.
333
333
 
334
334
  def ask_if_ok(spec) # :nodoc:
335
- msg = ['']
336
- msg << 'You have requested to uninstall the gem:'
335
+ msg = [""]
336
+ msg << "You have requested to uninstall the gem:"
337
337
  msg << "\t#{spec.full_name}"
338
- msg << ''
338
+ msg << ""
339
339
 
340
340
  siblings = Gem::Specification.select do |s|
341
341
  s.name == spec.name && s.full_name != spec.full_name
@@ -347,8 +347,8 @@ class Gem::Uninstaller
347
347
  end
348
348
  end
349
349
 
350
- msg << 'If you remove this gem, these dependencies will not be met.'
351
- msg << 'Continue with Uninstall?'
350
+ msg << "If you remove this gem, these dependencies will not be met."
351
+ msg << "Continue with Uninstall?"
352
352
  return ask_yes_no(msg.join("\n"), false)
353
353
  end
354
354
 
@@ -360,7 +360,7 @@ class Gem::Uninstaller
360
360
  # of what it did for us to find rather than trying to recreate
361
361
  # it again.
362
362
  if @format_executable
363
- require_relative 'installer'
363
+ require_relative "installer"
364
364
  Gem::Installer.exec_format % File.basename(filename)
365
365
  else
366
366
  filename
data/lib/rubygems/uri.rb CHANGED
@@ -66,7 +66,7 @@ class Gem::Uri
66
66
  def redact_credentials_from(text)
67
67
  return text unless valid_uri? && password? && text.include?(to_s)
68
68
 
69
- text.sub(password, 'REDACTED')
69
+ text.sub(password, "REDACTED")
70
70
  end
71
71
 
72
72
  def method_missing(method_name, *args, &blk)
@@ -97,11 +97,11 @@ class Gem::Uri
97
97
  end
98
98
 
99
99
  def with_redacted_user
100
- clone.tap {|uri| uri.user = 'REDACTED' }
100
+ clone.tap {|uri| uri.user = "REDACTED" }
101
101
  end
102
102
 
103
103
  def with_redacted_password
104
- clone.tap {|uri| uri.password = 'REDACTED' }
104
+ clone.tap {|uri| uri.password = "REDACTED" }
105
105
  end
106
106
 
107
107
  def valid_uri?
@@ -113,7 +113,7 @@ class Gem::Uri
113
113
  end
114
114
 
115
115
  def oauth_basic?
116
- password == 'x-oauth-basic'
116
+ password == "x-oauth-basic"
117
117
  end
118
118
 
119
119
  def token?
@@ -17,7 +17,7 @@ class Gem::UriFormatter
17
17
  # Creates a new URI formatter for +uri+.
18
18
 
19
19
  def initialize(uri)
20
- require 'cgi'
20
+ require "cgi"
21
21
 
22
22
  @uri = uri
23
23
  end
@@ -5,8 +5,8 @@
5
5
  # See LICENSE.txt for permissions.
6
6
  #++
7
7
 
8
- require_relative 'deprecate'
9
- require_relative 'text'
8
+ require_relative "deprecate"
9
+ require_relative "text"
10
10
 
11
11
  ##
12
12
  # Module that defines the default UserInteraction. Any class including this
@@ -148,7 +148,7 @@ module Gem::UserInteraction
148
148
  ##
149
149
  # Displays the given +statement+ on the standard output (or equivalent).
150
150
 
151
- def say(statement = '')
151
+ def say(statement = "")
152
152
  ui.say statement
153
153
  end
154
154
 
@@ -259,11 +259,11 @@ class Gem::StreamUI
259
259
 
260
260
  default_answer = case default
261
261
  when nil
262
- 'yn'
262
+ "yn"
263
263
  when true
264
- 'Yn'
264
+ "Yn"
265
265
  else
266
- 'yN'
266
+ "yN"
267
267
  end
268
268
 
269
269
  result = nil
@@ -284,7 +284,7 @@ class Gem::StreamUI
284
284
  # Ask a question. Returns an answer if connected to a tty, nil otherwise.
285
285
 
286
286
  def ask(question)
287
- return nil if not tty?
287
+ return nil if !tty?
288
288
 
289
289
  @outs.print(question + " ")
290
290
  @outs.flush
@@ -298,7 +298,7 @@ class Gem::StreamUI
298
298
  # Ask for a password. Does not echo response to terminal.
299
299
 
300
300
  def ask_for_password(question)
301
- return nil if not tty?
301
+ return nil if !tty?
302
302
 
303
303
  @outs.print(question, " ")
304
304
  @outs.flush
@@ -312,7 +312,7 @@ class Gem::StreamUI
312
312
  def require_io_console
313
313
  @require_io_console ||= begin
314
314
  begin
315
- require 'io/console'
315
+ require "io/console"
316
316
  rescue LoadError
317
317
  end
318
318
  true
@@ -472,7 +472,7 @@ class Gem::StreamUI
472
472
  # and the +terminal_message+ when it is complete.
473
473
 
474
474
  def initialize(out_stream, size, initial_message,
475
- terminal_message = 'complete')
475
+ terminal_message = "complete")
476
476
  @out = out_stream
477
477
  @total = size
478
478
  @count = 0
@@ -616,18 +616,11 @@ class Gem::SilentUI < Gem::StreamUI
616
616
  # The SilentUI has no arguments as it does not use any stream.
617
617
 
618
618
  def initialize
619
- reader, writer = nil, nil
620
-
621
- reader = File.open(IO::NULL, 'r')
622
- writer = File.open(IO::NULL, 'w')
623
-
624
- super reader, writer, writer, false
619
+ io = NullIO.new
620
+ super io, io, io, false
625
621
  end
626
622
 
627
623
  def close
628
- super
629
- @ins.close
630
- @outs.close
631
624
  end
632
625
 
633
626
  def download_reporter(*args) # :nodoc:
@@ -637,4 +630,25 @@ class Gem::SilentUI < Gem::StreamUI
637
630
  def progress_reporter(*args) # :nodoc:
638
631
  SilentProgressReporter.new(@outs, *args)
639
632
  end
633
+
634
+ ##
635
+ # An absolutely silent IO.
636
+
637
+ class NullIO
638
+ def puts(*args)
639
+ end
640
+
641
+ def print(*args)
642
+ end
643
+
644
+ def flush
645
+ end
646
+
647
+ def gets(*args)
648
+ end
649
+
650
+ def tty?
651
+ false
652
+ end
653
+ end
640
654
  end
@@ -1,11 +1,11 @@
1
1
  # frozen_string_literal: true
2
- require_relative '../text'
2
+ require_relative "../text"
3
3
 
4
4
  class Gem::Licenses
5
5
  extend Gem::Text
6
6
 
7
- NONSTANDARD = 'Nonstandard'.freeze
8
- LICENSE_REF = 'LicenseRef-.+'.freeze
7
+ NONSTANDARD = "Nonstandard".freeze
8
+ LICENSE_REF = "LicenseRef-.+".freeze
9
9
 
10
10
  # Software Package Data Exchange (SPDX) standard open-source software
11
11
  # license identifiers
data/lib/rubygems/util.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
- require_relative 'deprecate'
2
+ require_relative "deprecate"
3
3
 
4
4
  ##
5
5
  # This module contains various utility methods as module methods.
@@ -10,9 +10,9 @@ module Gem::Util
10
10
  # Zlib::GzipReader wrapper that unzips +data+.
11
11
 
12
12
  def self.gunzip(data)
13
- require 'zlib'
14
- require 'stringio'
15
- data = StringIO.new(data, 'r')
13
+ require "zlib"
14
+ require "stringio"
15
+ data = StringIO.new(data, "r")
16
16
 
17
17
  gzip_reader = begin
18
18
  Zlib::GzipReader.new(data)
@@ -29,9 +29,9 @@ module Gem::Util
29
29
  # Zlib::GzipWriter wrapper that zips +data+.
30
30
 
31
31
  def self.gzip(data)
32
- require 'zlib'
33
- require 'stringio'
34
- zipped = StringIO.new(String.new, 'w')
32
+ require "zlib"
33
+ require "stringio"
34
+ zipped = StringIO.new(String.new, "w")
35
35
  zipped.set_encoding Encoding::BINARY
36
36
 
37
37
  Zlib::GzipWriter.wrap zipped do |io|
@@ -45,7 +45,7 @@ module Gem::Util
45
45
  # A Zlib::Inflate#inflate wrapper
46
46
 
47
47
  def self.inflate(data)
48
- require 'zlib'
48
+ require "zlib"
49
49
  Zlib::Inflate.inflate data
50
50
  end
51
51
 
@@ -86,7 +86,7 @@ module Gem::Util
86
86
  loop do
87
87
  Dir.chdir here, &block rescue Errno::EACCES
88
88
 
89
- new_here = File.expand_path('..', here)
89
+ new_here = File.expand_path("..", here)
90
90
  return if new_here == here # toplevel
91
91
  here = new_here
92
92
  end
@@ -109,7 +109,7 @@ module Gem::Util
109
109
  # comes with a leading slash.
110
110
 
111
111
  def self.correct_for_windows_path(path)
112
- if path[0].chr == '/' && path[1].chr =~ /[a-z]/i && path[2].chr == ':'
112
+ if path[0].chr == "/" && path[1].chr =~ /[a-z]/i && path[2].chr == ":"
113
113
  path[1..-1]
114
114
  else
115
115
  path
@@ -5,8 +5,8 @@
5
5
  # See LICENSE.txt for permissions.
6
6
  #++
7
7
 
8
- require_relative 'package'
9
- require_relative 'installer'
8
+ require_relative "package"
9
+ require_relative "installer"
10
10
 
11
11
  ##
12
12
  # Validator performs various gem file and gem database validation
@@ -15,7 +15,7 @@ class Gem::Validator
15
15
  include Gem::UserInteraction
16
16
 
17
17
  def initialize # :nodoc:
18
- require 'find'
18
+ require "find"
19
19
  end
20
20
 
21
21
  private
@@ -110,11 +110,11 @@ class Gem::Validator
110
110
  begin
111
111
  next unless data # HACK `gem check -a mkrf`
112
112
 
113
- source = File.join gem_directory, entry['path']
113
+ source = File.join gem_directory, entry["path"]
114
114
 
115
115
  File.open source, Gem.binary_mode do |f|
116
116
  unless f.read == data
117
- errors[gem_name][entry['path']] = "Modified from original"
117
+ errors[gem_name][entry["path"]] = "Modified from original"
118
118
  end
119
119
  end
120
120
  end
@@ -153,8 +153,6 @@ require_relative "deprecate"
153
153
  # a zero to give a sensible result.
154
154
 
155
155
  class Gem::Version
156
- autoload :Requirement, File.expand_path('requirement', __dir__)
157
-
158
156
  include Comparable
159
157
 
160
158
  VERSION_PATTERN = '[0-9]+(?>\.[0-9a-zA-Z]+)*(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?'.freeze # :nodoc:
@@ -173,9 +171,7 @@ class Gem::Version
173
171
  # True if the +version+ string matches RubyGems' requirements.
174
172
 
175
173
  def self.correct?(version)
176
- unless Gem::Deprecate.skip
177
- warn "nil versions are discouraged and will be deprecated in Rubygems 4" if version.nil?
178
- end
174
+ nil_versions_are_discouraged! if version.nil?
179
175
 
180
176
  !!(version.to_s =~ ANCHORED_VERSION_PATTERN)
181
177
  end
@@ -192,6 +188,8 @@ class Gem::Version
192
188
  if self === input # check yourself before you wreck yourself
193
189
  input
194
190
  elsif input.nil?
191
+ nil_versions_are_discouraged!
192
+
195
193
  nil
196
194
  else
197
195
  new input
@@ -208,6 +206,14 @@ class Gem::Version
208
206
  @@all[version] ||= super
209
207
  end
210
208
 
209
+ def self.nil_versions_are_discouraged!
210
+ unless Gem::Deprecate.skip
211
+ warn "nil versions are discouraged and will be deprecated in Rubygems 4"
212
+ end
213
+ end
214
+
215
+ private_class_method :nil_versions_are_discouraged!
216
+
211
217
  ##
212
218
  # Constructs a Version from the +version+ string. A version string is a
213
219
  # series of digits or ASCII letters separated by dots.
@@ -246,7 +252,7 @@ class Gem::Version
246
252
  # same precision. Version "1.0" is not the same as version "1".
247
253
 
248
254
  def eql?(other)
249
- self.class === other and @version == other._version
255
+ self.class === other && @version == other._version
250
256
  end
251
257
 
252
258
  def hash # :nodoc:
@@ -278,7 +284,7 @@ class Gem::Version
278
284
  end
279
285
 
280
286
  def yaml_initialize(tag, map) # :nodoc:
281
- @version = map['version']
287
+ @version = map["version"]
282
288
  @segments = nil
283
289
  @hash = nil
284
290
  end
@@ -288,7 +294,7 @@ class Gem::Version
288
294
  end
289
295
 
290
296
  def encode_with(coder) # :nodoc:
291
- coder.add 'version', @version
297
+ coder.add "version", @version
292
298
  end
293
299
 
294
300
  ##
@@ -313,7 +319,7 @@ class Gem::Version
313
319
  @@release[self] ||= if prerelease?
314
320
  segments = self.segments
315
321
  segments.pop while segments.any? {|s| String === s }
316
- self.class.new segments.join('.')
322
+ self.class.new segments.join(".")
317
323
  else
318
324
  self
319
325
  end
@@ -5,7 +5,7 @@
5
5
  # See LICENSE.txt for permissions.
6
6
  #++
7
7
 
8
- require_relative '../rubygems'
8
+ require_relative "../rubygems"
9
9
 
10
10
  ##
11
11
  # Mixin methods for --version and --platform Gem::Command options.
@@ -24,7 +24,7 @@ module Gem::VersionOption
24
24
  end
25
25
  end
26
26
 
27
- add_option('--platform PLATFORM', Gem::Platform,
27
+ add_option("--platform PLATFORM", Gem::Platform,
28
28
  "Specify the platform of gem to #{task}", *wrap) do
29
29
  |value, options|
30
30
  unless options[:added_platform]
@@ -55,7 +55,7 @@ module Gem::VersionOption
55
55
  Gem::Requirement.new(*value.split(/\s*,\s*/))
56
56
  end
57
57
 
58
- add_option('-v', '--version VERSION', Gem::Requirement,
58
+ add_option("-v", "--version VERSION", Gem::Requirement,
59
59
  "Specify version of gem to #{task}", *wrap) do
60
60
  |value, options|
61
61
  # Allow handling for multiple --version operators