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,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
- require_relative 'helper'
3
- require 'rubygems/commands/push_command'
2
+ require_relative "helper"
3
+ require "rubygems/commands/push_command"
4
4
 
5
5
  class TestGemCommandsPushCommand < Gem::TestCase
6
6
  def setup
@@ -12,7 +12,7 @@ class TestGemCommandsPushCommand < Gem::TestCase
12
12
  Gem.host = Gem::DEFAULT_HOST
13
13
  Gem.configuration.disable_default_gem_server = false
14
14
 
15
- @gems_dir = File.join @tempdir, 'gems'
15
+ @gems_dir = File.join @tempdir, "gems"
16
16
  @cache_dir = File.join @gemhome, "cache"
17
17
 
18
18
  FileUtils.mkdir @gems_dir
@@ -21,7 +21,7 @@ class TestGemCommandsPushCommand < Gem::TestCase
21
21
  "ed244fbf2b1a52e012da8616c512fa47f9aa5250"
22
22
 
23
23
  @spec, @path = util_gem "freewill", "1.0.0"
24
- @host = 'https://rubygems.example'
24
+ @host = "https://rubygems.example"
25
25
  @api_key = Gem.configuration.rubygems_api_key
26
26
 
27
27
  @fetcher = Gem::FakeFetcher.new
@@ -68,7 +68,7 @@ class TestGemCommandsPushCommand < Gem::TestCase
68
68
 
69
69
  def test_execute
70
70
  @response = "Successfully registered gem: freewill (1.0.0)"
71
- @fetcher.data["#{Gem.host}/api/v1/gems"] = [@response, 200, 'OK']
71
+ @fetcher.data["#{Gem.host}/api/v1/gems"] = [@response, 200, "OK"]
72
72
 
73
73
  @cmd.options[:args] = [@path]
74
74
 
@@ -81,12 +81,12 @@ class TestGemCommandsPushCommand < Gem::TestCase
81
81
  end
82
82
 
83
83
  def test_execute_host
84
- host = 'https://other.example'
84
+ host = "https://other.example"
85
85
 
86
86
  @response = "Successfully registered gem: freewill (1.0.0)"
87
- @fetcher.data["#{host}/api/v1/gems"] = [@response, 200, 'OK']
87
+ @fetcher.data["#{host}/api/v1/gems"] = [@response, 200, "OK"]
88
88
  @fetcher.data["#{Gem.host}/api/v1/gems"] =
89
- ['fail', 500, 'Internal Server Error']
89
+ ["fail", 500, "Internal Server Error"]
90
90
 
91
91
  @cmd.options[:host] = host
92
92
  @cmd.options[:args] = [@path]
@@ -101,13 +101,13 @@ class TestGemCommandsPushCommand < Gem::TestCase
101
101
 
102
102
  def test_execute_allowed_push_host
103
103
  @spec, @path = util_gem "freebird", "1.0.1" do |spec|
104
- spec.metadata['allowed_push_host'] = "https://privategemserver.example"
104
+ spec.metadata["allowed_push_host"] = "https://privategemserver.example"
105
105
  end
106
106
 
107
107
  @response = "Successfully registered gem: freewill (1.0.0)"
108
- @fetcher.data["#{@spec.metadata['allowed_push_host']}/api/v1/gems"] = [@response, 200, 'OK']
108
+ @fetcher.data["#{@spec.metadata['allowed_push_host']}/api/v1/gems"] = [@response, 200, "OK"]
109
109
  @fetcher.data["#{Gem.host}/api/v1/gems"] =
110
- ['fail', 500, 'Internal Server Error']
110
+ ["fail", 500, "Internal Server Error"]
111
111
 
112
112
  @cmd.options[:args] = [@path]
113
113
 
@@ -136,7 +136,7 @@ class TestGemCommandsPushCommand < Gem::TestCase
136
136
  ENV["RUBYGEMS_HOST"] = @host
137
137
  Gem.configuration.disable_default_gem_server = true
138
138
  @response = "Successfully registered gem: freewill (1.0.0)"
139
- @fetcher.data["#{@host}/api/v1/gems"] = [@response, 200, 'OK']
139
+ @fetcher.data["#{@host}/api/v1/gems"] = [@response, 200, "OK"]
140
140
 
141
141
  send_battery
142
142
  end
@@ -145,17 +145,17 @@ class TestGemCommandsPushCommand < Gem::TestCase
145
145
  @host = "http://privategemserver.example"
146
146
 
147
147
  @spec, @path = util_gem "freebird", "1.0.1" do |spec|
148
- spec.metadata['default_gem_server'] = @host
148
+ spec.metadata["default_gem_server"] = @host
149
149
  end
150
150
 
151
151
  @api_key = "EYKEY"
152
152
 
153
153
  keys = {
154
- :rubygems_api_key => 'KEY',
154
+ :rubygems_api_key => "KEY",
155
155
  @host => @api_key,
156
156
  }
157
157
 
158
- File.open Gem.configuration.credentials_path, 'w' do |f|
158
+ File.open Gem.configuration.credentials_path, "w" do |f|
159
159
  f.write keys.to_yaml
160
160
  end
161
161
  Gem.configuration.load_api_keys
@@ -163,14 +163,14 @@ class TestGemCommandsPushCommand < Gem::TestCase
163
163
  FileUtils.rm Gem.configuration.credentials_path
164
164
 
165
165
  @response = "Successfully registered gem: freebird (1.0.1)"
166
- @fetcher.data["#{@host}/api/v1/gems"] = [@response, 200, 'OK']
166
+ @fetcher.data["#{@host}/api/v1/gems"] = [@response, 200, "OK"]
167
167
 
168
168
  send_battery
169
169
  end
170
170
 
171
171
  def test_sending_gem
172
172
  @response = "Successfully registered gem: freewill (1.0.0)"
173
- @fetcher.data["#{@host}/api/v1/gems"] = [@response, 200, 'OK']
173
+ @fetcher.data["#{@host}/api/v1/gems"] = [@response, 200, "OK"]
174
174
 
175
175
  send_battery
176
176
  end
@@ -179,17 +179,17 @@ class TestGemCommandsPushCommand < Gem::TestCase
179
179
  @host = "http://privategemserver.example"
180
180
 
181
181
  @spec, @path = util_gem "freebird", "1.0.1" do |spec|
182
- spec.metadata['allowed_push_host'] = @host
182
+ spec.metadata["allowed_push_host"] = @host
183
183
  end
184
184
 
185
185
  @api_key = "PRIVKEY"
186
186
 
187
187
  keys = {
188
- :rubygems_api_key => 'KEY',
188
+ :rubygems_api_key => "KEY",
189
189
  @host => @api_key,
190
190
  }
191
191
 
192
- File.open Gem.configuration.credentials_path, 'w' do |f|
192
+ File.open Gem.configuration.credentials_path, "w" do |f|
193
193
  f.write keys.to_yaml
194
194
  end
195
195
  Gem.configuration.load_api_keys
@@ -197,7 +197,7 @@ class TestGemCommandsPushCommand < Gem::TestCase
197
197
  FileUtils.rm Gem.configuration.credentials_path
198
198
 
199
199
  @response = "Successfully registered gem: freebird (1.0.1)"
200
- @fetcher.data["#{@host}/api/v1/gems"] = [@response, 200, 'OK']
200
+ @fetcher.data["#{@host}/api/v1/gems"] = [@response, 200, "OK"]
201
201
  send_battery
202
202
  end
203
203
 
@@ -205,14 +205,14 @@ class TestGemCommandsPushCommand < Gem::TestCase
205
205
  @host = "http://privategemserver.example"
206
206
 
207
207
  @spec, @path = util_gem "freebird", "1.0.1" do |spec|
208
- spec.metadata['allowed_push_host'] = @host
208
+ spec.metadata["allowed_push_host"] = @host
209
209
  end
210
210
 
211
211
  @api_key = "PRIVKEY"
212
212
  ENV["GEM_HOST_API_KEY"] = "PRIVKEY"
213
213
 
214
214
  @response = "Successfully registered gem: freebird (1.0.1)"
215
- @fetcher.data["#{@host}/api/v1/gems"] = [@response, 200, 'OK']
215
+ @fetcher.data["#{@host}/api/v1/gems"] = [@response, 200, "OK"]
216
216
  send_battery
217
217
  end
218
218
 
@@ -221,7 +221,7 @@ class TestGemCommandsPushCommand < Gem::TestCase
221
221
  @host = "http://user:password@privategemserver.example"
222
222
 
223
223
  @spec, @path = util_gem "freebird", "1.0.1" do |spec|
224
- spec.metadata['allowed_push_host'] = @sanitized_host
224
+ spec.metadata["allowed_push_host"] = @sanitized_host
225
225
  end
226
226
 
227
227
  @api_key = "DOESNTMATTER"
@@ -230,7 +230,7 @@ class TestGemCommandsPushCommand < Gem::TestCase
230
230
  :rubygems_api_key => @api_key,
231
231
  }
232
232
 
233
- File.open Gem.configuration.credentials_path, 'w' do |f|
233
+ File.open Gem.configuration.credentials_path, "w" do |f|
234
234
  f.write keys.to_yaml
235
235
  end
236
236
  Gem.configuration.load_api_keys
@@ -238,13 +238,13 @@ class TestGemCommandsPushCommand < Gem::TestCase
238
238
  FileUtils.rm Gem.configuration.credentials_path
239
239
 
240
240
  @response = "Successfully registered gem: freebird (1.0.1)"
241
- @fetcher.data["#{@host}/api/v1/gems"] = [@response, 200, 'OK']
241
+ @fetcher.data["#{@host}/api/v1/gems"] = [@response, 200, "OK"]
242
242
  send_battery
243
243
  end
244
244
 
245
245
  def test_sending_gem_to_disallowed_default_host
246
246
  @spec, @path = util_gem "freebird", "1.0.1" do |spec|
247
- spec.metadata['allowed_push_host'] = "https://privategemserver.example"
247
+ spec.metadata["allowed_push_host"] = "https://privategemserver.example"
248
248
  end
249
249
 
250
250
  response = %(ERROR: "#{@host}" is not allowed by the gemspec, which only allows "https://privategemserver.example")
@@ -261,17 +261,17 @@ class TestGemCommandsPushCommand < Gem::TestCase
261
261
  push_host = "https://privategemserver.example"
262
262
 
263
263
  @spec, @path = util_gem "freebird", "1.0.1" do |spec|
264
- spec.metadata['allowed_push_host'] = push_host
264
+ spec.metadata["allowed_push_host"] = push_host
265
265
  end
266
266
 
267
267
  @api_key = "PRIVKEY"
268
268
 
269
269
  keys = {
270
- :rubygems_api_key => 'KEY',
270
+ :rubygems_api_key => "KEY",
271
271
  @host => @api_key,
272
272
  }
273
273
 
274
- File.open Gem.configuration.credentials_path, 'w' do |f|
274
+ File.open Gem.configuration.credentials_path, "w" do |f|
275
275
  f.write keys.to_yaml
276
276
  end
277
277
  Gem.configuration.load_api_keys
@@ -291,8 +291,8 @@ class TestGemCommandsPushCommand < Gem::TestCase
291
291
  host = "http://privategemserver.example"
292
292
 
293
293
  @spec, @path = util_gem "freebird", "1.0.1" do |spec|
294
- spec.metadata.delete('default_gem_server')
295
- spec.metadata['allowed_push_host'] = host
294
+ spec.metadata.delete("default_gem_server")
295
+ spec.metadata["allowed_push_host"] = host
296
296
  end
297
297
 
298
298
  api_key = "PRIVKEY"
@@ -301,7 +301,7 @@ class TestGemCommandsPushCommand < Gem::TestCase
301
301
  host => api_key,
302
302
  }
303
303
 
304
- File.open Gem.configuration.credentials_path, 'w' do |f|
304
+ File.open Gem.configuration.credentials_path, "w" do |f|
305
305
  f.write keys.to_yaml
306
306
  end
307
307
  Gem.configuration.load_api_keys
@@ -309,7 +309,7 @@ class TestGemCommandsPushCommand < Gem::TestCase
309
309
  FileUtils.rm Gem.configuration.credentials_path
310
310
 
311
311
  @response = "Successfully registered gem: freebird (1.0.1)"
312
- @fetcher.data["#{host}/api/v1/gems"] = [@response, 200, 'OK']
312
+ @fetcher.data["#{host}/api/v1/gems"] = [@response, 200, "OK"]
313
313
 
314
314
  # do not set @host
315
315
  use_ui(@ui) { @cmd.send_gem(@path) }
@@ -334,7 +334,7 @@ class TestGemCommandsPushCommand < Gem::TestCase
334
334
 
335
335
  def test_sending_gem_denied
336
336
  response = "You don't have permission to push to this gem"
337
- @fetcher.data["#{@host}/api/v1/gems"] = [response, 403, 'Forbidden']
337
+ @fetcher.data["#{@host}/api/v1/gems"] = [response, 403, "Forbidden"]
338
338
  @cmd.instance_variable_set :@host, @host
339
339
 
340
340
  assert_raise Gem::MockGemUi::TermError do
@@ -349,8 +349,8 @@ class TestGemCommandsPushCommand < Gem::TestCase
349
349
  def test_sending_gem_key
350
350
  @response = "Successfully registered gem: freewill (1.0.0)"
351
351
  @fetcher.data["#{@host}/api/v1/gems"] = [@response, 200, "OK"]
352
- File.open Gem.configuration.credentials_path, 'a' do |f|
353
- f.write ':other: 701229f217cdf23b1344c7b4b54ca97'
352
+ File.open Gem.configuration.credentials_path, "a" do |f|
353
+ f.write ":other: 701229f217cdf23b1344c7b4b54ca97"
354
354
  end
355
355
  Gem.configuration.load_api_keys
356
356
 
@@ -364,11 +364,11 @@ class TestGemCommandsPushCommand < Gem::TestCase
364
364
 
365
365
  def test_otp_verified_success
366
366
  response_fail = "You have enabled multifactor authentication but your request doesn't have the correct OTP code. Please check it and retry."
367
- response_success = 'Successfully registered gem: freewill (1.0.0)'
367
+ response_success = "Successfully registered gem: freewill (1.0.0)"
368
368
 
369
369
  @fetcher.data["#{Gem.host}/api/v1/gems"] = [
370
- [response_fail, 401, 'Unauthorized'],
371
- [response_success, 200, 'OK'],
370
+ [response_fail, 401, "Unauthorized"],
371
+ [response_success, 200, "OK"],
372
372
  ]
373
373
 
374
374
  @otp_ui = Gem::MockGemUi.new "111111\n"
@@ -376,15 +376,15 @@ class TestGemCommandsPushCommand < Gem::TestCase
376
376
  @cmd.send_gem(@path)
377
377
  end
378
378
 
379
- assert_match 'You have enabled multi-factor authentication. Please enter OTP code.', @otp_ui.output
380
- assert_match 'Code: ', @otp_ui.output
379
+ assert_match "You have enabled multi-factor authentication. Please enter OTP code.", @otp_ui.output
380
+ assert_match "Code: ", @otp_ui.output
381
381
  assert_match response_success, @otp_ui.output
382
- assert_equal '111111', @fetcher.last_request['OTP']
382
+ assert_equal "111111", @fetcher.last_request["OTP"]
383
383
  end
384
384
 
385
385
  def test_otp_verified_failure
386
386
  response = "You have enabled multifactor authentication but your request doesn't have the correct OTP code. Please check it and retry."
387
- @fetcher.data["#{Gem.host}/api/v1/gems"] = [response, 401, 'Unauthorized']
387
+ @fetcher.data["#{Gem.host}/api/v1/gems"] = [response, 401, "Unauthorized"]
388
388
 
389
389
  @otp_ui = Gem::MockGemUi.new "111111\n"
390
390
  assert_raise Gem::MockGemUi::TermError do
@@ -394,19 +394,19 @@ class TestGemCommandsPushCommand < Gem::TestCase
394
394
  end
395
395
 
396
396
  assert_match response, @otp_ui.output
397
- assert_match 'You have enabled multi-factor authentication. Please enter OTP code.', @otp_ui.output
398
- assert_match 'Code: ', @otp_ui.output
399
- assert_equal '111111', @fetcher.last_request['OTP']
397
+ assert_match "You have enabled multi-factor authentication. Please enter OTP code.", @otp_ui.output
398
+ assert_match "Code: ", @otp_ui.output
399
+ assert_equal "111111", @fetcher.last_request["OTP"]
400
400
  end
401
401
 
402
402
  def test_sending_gem_unathorized_api_key_with_mfa_enabled
403
403
  response_mfa_enabled = "You have enabled multifactor authentication but your request doesn't have the correct OTP code. Please check it and retry."
404
404
  response_forbidden = "The API key doesn't have access"
405
- response_success = 'Successfully registered gem: freewill (1.0.0)'
405
+ response_success = "Successfully registered gem: freewill (1.0.0)"
406
406
 
407
407
  @fetcher.data["#{@host}/api/v1/gems"] = [
408
- [response_mfa_enabled, 401, 'Unauthorized'],
409
- [response_forbidden, 403, 'Forbidden'],
408
+ [response_mfa_enabled, 401, "Unauthorized"],
409
+ [response_forbidden, 403, "Forbidden"],
410
410
  [response_success, 200, "OK"],
411
411
  ]
412
412
 
@@ -427,14 +427,14 @@ class TestGemCommandsPushCommand < Gem::TestCase
427
427
  assert_match "Password:", @ui.output
428
428
  assert_match "Added push_rubygem scope to the existing API key", @ui.output
429
429
  assert_match response_success, @ui.output
430
- assert_equal '11111', @fetcher.last_request['OTP']
430
+ assert_equal "11111", @fetcher.last_request["OTP"]
431
431
  end
432
432
 
433
433
  def test_sending_gem_with_no_local_creds
434
434
  Gem.configuration.rubygems_api_key = nil
435
435
 
436
436
  response_mfa_enabled = "You have enabled multifactor authentication but your request doesn't have the correct OTP code. Please check it and retry."
437
- response_success = 'Successfully registered gem: freewill (1.0.0)'
437
+ response_success = "Successfully registered gem: freewill (1.0.0)"
438
438
  response_profile = "mfa: disabled\n"
439
439
 
440
440
  @fetcher.data["#{@host}/api/v1/gems"] = [
@@ -442,7 +442,7 @@ class TestGemCommandsPushCommand < Gem::TestCase
442
442
  ]
443
443
 
444
444
  @fetcher.data["#{@host}/api/v1/api_key"] = [
445
- [response_mfa_enabled, 401, 'Unauthorized'],
445
+ [response_mfa_enabled, 401, "Unauthorized"],
446
446
  ["", 200, "OK"],
447
447
  ]
448
448
 
@@ -466,7 +466,7 @@ class TestGemCommandsPushCommand < Gem::TestCase
466
466
  assert_match "Password:", @ui.output
467
467
  assert_match "Signed in with API key:", @ui.output
468
468
  assert_match response_success, @ui.output
469
- assert_equal '11111', @fetcher.last_request['OTP']
469
+ assert_equal "11111", @fetcher.last_request["OTP"]
470
470
  end
471
471
 
472
472
  private