rubygems-update 3.3.18 → 3.4.19

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 (615) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1429 -1064
  3. data/CONTRIBUTING.md +31 -8
  4. data/Manifest.txt +61 -36
  5. data/POLICIES.md +55 -20
  6. data/README.md +19 -6
  7. data/bundler/CHANGELOG.md +457 -1
  8. data/bundler/README.md +3 -6
  9. data/bundler/UPGRADING.md +11 -4
  10. data/bundler/bundler.gemspec +8 -10
  11. data/bundler/exe/bundle +5 -16
  12. data/bundler/lib/bundler/build_metadata.rb +2 -2
  13. data/bundler/lib/bundler/cli/add.rb +1 -1
  14. data/bundler/lib/bundler/cli/binstubs.rb +6 -2
  15. data/bundler/lib/bundler/cli/check.rb +1 -1
  16. data/bundler/lib/bundler/cli/common.rb +2 -0
  17. data/bundler/lib/bundler/cli/console.rb +2 -2
  18. data/bundler/lib/bundler/cli/doctor.rb +4 -6
  19. data/bundler/lib/bundler/cli/gem.rb +62 -40
  20. data/bundler/lib/bundler/cli/info.rb +1 -1
  21. data/bundler/lib/bundler/cli/init.rb +6 -2
  22. data/bundler/lib/bundler/cli/install.rb +8 -6
  23. data/bundler/lib/bundler/cli/lock.rb +8 -5
  24. data/bundler/lib/bundler/cli/open.rb +6 -4
  25. data/bundler/lib/bundler/cli/outdated.rb +14 -7
  26. data/bundler/lib/bundler/cli/platform.rb +7 -5
  27. data/bundler/lib/bundler/cli/viz.rb +1 -1
  28. data/bundler/lib/bundler/cli.rb +53 -7
  29. data/bundler/lib/bundler/compact_index_client/cache.rb +1 -1
  30. data/bundler/lib/bundler/compact_index_client/updater.rb +40 -39
  31. data/bundler/lib/bundler/constants.rb +1 -1
  32. data/bundler/lib/bundler/current_ruby.rb +16 -5
  33. data/bundler/lib/bundler/definition.rb +262 -133
  34. data/bundler/lib/bundler/dependency.rb +20 -86
  35. data/bundler/lib/bundler/digest.rb +1 -1
  36. data/bundler/lib/bundler/dsl.rb +6 -7
  37. data/bundler/lib/bundler/endpoint_specification.rb +2 -13
  38. data/bundler/lib/bundler/env.rb +2 -2
  39. data/bundler/lib/bundler/environment_preserver.rb +3 -2
  40. data/bundler/lib/bundler/errors.rb +1 -11
  41. data/bundler/lib/bundler/feature_flag.rb +0 -2
  42. data/bundler/lib/bundler/fetcher/compact_index.rb +11 -13
  43. data/bundler/lib/bundler/fetcher/dependency.rb +2 -6
  44. data/bundler/lib/bundler/fetcher/downloader.rb +4 -5
  45. data/bundler/lib/bundler/fetcher/index.rb +1 -2
  46. data/bundler/lib/bundler/fetcher.rb +21 -15
  47. data/bundler/lib/bundler/force_platform.rb +18 -0
  48. data/bundler/lib/bundler/friendly_errors.rb +1 -4
  49. data/bundler/lib/bundler/gem_helper.rb +3 -4
  50. data/bundler/lib/bundler/gem_helpers.rb +7 -2
  51. data/bundler/lib/bundler/gem_version_promoter.rb +53 -98
  52. data/bundler/lib/bundler/graph.rb +3 -3
  53. data/bundler/lib/bundler/index.rb +13 -47
  54. data/bundler/lib/bundler/injector.rb +5 -4
  55. data/bundler/lib/bundler/inline.rb +9 -11
  56. data/bundler/lib/bundler/installer/parallel_installer.rb +4 -34
  57. data/bundler/lib/bundler/installer/standalone.rb +13 -9
  58. data/bundler/lib/bundler/installer.rb +17 -29
  59. data/bundler/lib/bundler/lazy_specification.rb +54 -53
  60. data/bundler/lib/bundler/lockfile_generator.rb +3 -3
  61. data/bundler/lib/bundler/lockfile_parser.rb +17 -16
  62. data/bundler/lib/bundler/man/bundle-add.1 +6 -2
  63. data/bundler/lib/bundler/man/bundle-add.1.ronn +4 -1
  64. data/bundler/lib/bundler/man/bundle-binstubs.1 +1 -1
  65. data/bundler/lib/bundler/man/bundle-cache.1 +9 -3
  66. data/bundler/lib/bundler/man/bundle-cache.1.ronn +9 -2
  67. data/bundler/lib/bundler/man/bundle-check.1 +1 -1
  68. data/bundler/lib/bundler/man/bundle-clean.1 +2 -2
  69. data/bundler/lib/bundler/man/bundle-clean.1.ronn +1 -1
  70. data/bundler/lib/bundler/man/bundle-config.1 +26 -10
  71. data/bundler/lib/bundler/man/bundle-config.1.ronn +17 -10
  72. data/bundler/lib/bundler/man/bundle-console.1 +53 -0
  73. data/bundler/lib/bundler/man/bundle-console.1.ronn +44 -0
  74. data/bundler/lib/bundler/man/bundle-doctor.1 +1 -1
  75. data/bundler/lib/bundler/man/bundle-exec.1 +6 -6
  76. data/bundler/lib/bundler/man/bundle-exec.1.ronn +6 -6
  77. data/bundler/lib/bundler/man/bundle-gem.1 +27 -37
  78. data/bundler/lib/bundler/man/bundle-gem.1.ronn +5 -5
  79. data/bundler/lib/bundler/man/bundle-help.1 +13 -0
  80. data/bundler/lib/bundler/man/bundle-help.1.ronn +12 -0
  81. data/bundler/lib/bundler/man/bundle-info.1 +3 -3
  82. data/bundler/lib/bundler/man/bundle-info.1.ronn +3 -3
  83. data/bundler/lib/bundler/man/bundle-init.1 +5 -1
  84. data/bundler/lib/bundler/man/bundle-init.1.ronn +2 -0
  85. data/bundler/lib/bundler/man/bundle-inject.1 +5 -2
  86. data/bundler/lib/bundler/man/bundle-inject.1.ronn +3 -1
  87. data/bundler/lib/bundler/man/bundle-install.1 +5 -30
  88. data/bundler/lib/bundler/man/bundle-install.1.ronn +6 -29
  89. data/bundler/lib/bundler/man/bundle-list.1 +1 -1
  90. data/bundler/lib/bundler/man/bundle-lock.1 +1 -1
  91. data/bundler/lib/bundler/man/bundle-open.1 +22 -2
  92. data/bundler/lib/bundler/man/bundle-open.1.ronn +9 -1
  93. data/bundler/lib/bundler/man/bundle-outdated.1 +13 -9
  94. data/bundler/lib/bundler/man/bundle-outdated.1.ronn +12 -9
  95. data/bundler/lib/bundler/man/bundle-platform.1 +16 -6
  96. data/bundler/lib/bundler/man/bundle-platform.1.ronn +14 -7
  97. data/bundler/lib/bundler/man/bundle-plugin.1 +81 -0
  98. data/bundler/lib/bundler/man/bundle-plugin.1.ronn +59 -0
  99. data/bundler/lib/bundler/man/bundle-pristine.1 +1 -1
  100. data/bundler/lib/bundler/man/bundle-remove.1 +1 -1
  101. data/bundler/lib/bundler/man/bundle-show.1 +1 -1
  102. data/bundler/lib/bundler/man/bundle-update.1 +1 -1
  103. data/bundler/lib/bundler/man/bundle-version.1 +35 -0
  104. data/bundler/lib/bundler/man/bundle-version.1.ronn +24 -0
  105. data/bundler/lib/bundler/man/bundle-viz.1 +4 -1
  106. data/bundler/lib/bundler/man/bundle-viz.1.ronn +2 -0
  107. data/bundler/lib/bundler/man/bundle.1 +15 -10
  108. data/bundler/lib/bundler/man/bundle.1.ronn +12 -7
  109. data/bundler/lib/bundler/man/gemfile.5 +55 -55
  110. data/bundler/lib/bundler/man/gemfile.5.ronn +57 -53
  111. data/bundler/lib/bundler/man/index.txt +4 -0
  112. data/bundler/lib/bundler/match_metadata.rb +13 -0
  113. data/bundler/lib/bundler/match_remote_metadata.rb +29 -0
  114. data/bundler/lib/bundler/mirror.rb +5 -7
  115. data/bundler/lib/bundler/plugin/index.rb +5 -5
  116. data/bundler/lib/bundler/plugin/installer/rubygems.rb +0 -4
  117. data/bundler/lib/bundler/plugin/installer.rb +5 -2
  118. data/bundler/lib/bundler/plugin.rb +3 -1
  119. data/bundler/lib/bundler/remote_specification.rb +7 -12
  120. data/bundler/lib/bundler/resolver/base.rb +107 -0
  121. data/bundler/lib/bundler/resolver/candidate.rb +94 -0
  122. data/bundler/lib/bundler/resolver/incompatibility.rb +15 -0
  123. data/bundler/lib/bundler/resolver/package.rb +72 -0
  124. data/bundler/lib/bundler/resolver/root.rb +25 -0
  125. data/bundler/lib/bundler/resolver/spec_group.rb +42 -71
  126. data/bundler/lib/bundler/resolver.rb +335 -328
  127. data/bundler/lib/bundler/ruby_dsl.rb +7 -1
  128. data/bundler/lib/bundler/ruby_version.rb +8 -8
  129. data/bundler/lib/bundler/rubygems_ext.rb +100 -9
  130. data/bundler/lib/bundler/rubygems_gem_installer.rb +23 -14
  131. data/bundler/lib/bundler/rubygems_integration.rb +11 -15
  132. data/bundler/lib/bundler/runtime.rb +2 -6
  133. data/bundler/lib/bundler/safe_marshal.rb +31 -0
  134. data/bundler/lib/bundler/settings.rb +5 -11
  135. data/bundler/lib/bundler/setup.rb +4 -1
  136. data/bundler/lib/bundler/shared_helpers.rb +3 -3
  137. data/bundler/lib/bundler/source/git/git_proxy.rb +237 -74
  138. data/bundler/lib/bundler/source/git.rb +55 -30
  139. data/bundler/lib/bundler/source/metadata.rb +1 -2
  140. data/bundler/lib/bundler/source/path/installer.rb +1 -22
  141. data/bundler/lib/bundler/source/path.rb +6 -6
  142. data/bundler/lib/bundler/source/rubygems.rb +26 -81
  143. data/bundler/lib/bundler/source.rb +1 -1
  144. data/bundler/lib/bundler/source_list.rb +8 -2
  145. data/bundler/lib/bundler/spec_set.rb +60 -37
  146. data/bundler/lib/bundler/templates/Executable +1 -1
  147. data/bundler/lib/bundler/templates/Executable.bundler +5 -10
  148. data/bundler/lib/bundler/templates/Executable.standalone +2 -0
  149. data/bundler/lib/bundler/templates/newgem/Cargo.toml.tt +7 -0
  150. data/bundler/lib/bundler/templates/newgem/Gemfile.tt +3 -0
  151. data/bundler/lib/bundler/templates/newgem/README.md.tt +6 -4
  152. data/bundler/lib/bundler/templates/newgem/Rakefile.tt +12 -1
  153. data/bundler/lib/bundler/templates/newgem/bin/console.tt +0 -4
  154. data/bundler/lib/bundler/templates/newgem/circleci/config.yml.tt +12 -0
  155. data/bundler/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +15 -0
  156. data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf-c.rb.tt +10 -0
  157. data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt +6 -0
  158. data/bundler/lib/bundler/templates/newgem/ext/newgem/newgem.c.tt +1 -1
  159. data/bundler/lib/bundler/templates/newgem/ext/newgem/src/lib.rs.tt +12 -0
  160. data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +10 -0
  161. data/bundler/lib/bundler/templates/newgem/gitignore.tt +3 -0
  162. data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +13 -4
  163. data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +9 -2
  164. data/bundler/lib/bundler/ui/rg_proxy.rb +1 -1
  165. data/bundler/lib/bundler/ui/shell.rb +35 -12
  166. data/bundler/lib/bundler/ui/silent.rb +21 -5
  167. data/bundler/lib/bundler/uri_normalizer.rb +23 -0
  168. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +3 -3
  169. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +0 -1
  170. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +3 -1
  171. data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +1351 -409
  172. data/bundler/lib/bundler/vendor/net-http-persistent/README.rdoc +1 -1
  173. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +1 -1
  174. data/bundler/lib/bundler/vendor/pub_grub/LICENSE.txt +21 -0
  175. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/assignment.rb +20 -0
  176. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb +189 -0
  177. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/failure_writer.rb +182 -0
  178. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb +150 -0
  179. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/package.rb +43 -0
  180. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/partial_solution.rb +121 -0
  181. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb +45 -0
  182. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/solve_failure.rb +19 -0
  183. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb +60 -0
  184. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/term.rb +105 -0
  185. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb +3 -0
  186. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb +129 -0
  187. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb +411 -0
  188. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb +248 -0
  189. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_union.rb +178 -0
  190. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub.rb +31 -0
  191. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +1 -1
  192. data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +64 -16
  193. data/bundler/lib/bundler/vendor/uri/lib/uri/file.rb +7 -1
  194. data/bundler/lib/bundler/vendor/uri/lib/uri/ftp.rb +2 -1
  195. data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +27 -7
  196. data/bundler/lib/bundler/vendor/uri/lib/uri/http.rb +40 -2
  197. data/bundler/lib/bundler/vendor/uri/lib/uri/https.rb +2 -1
  198. data/bundler/lib/bundler/vendor/uri/lib/uri/ldap.rb +1 -1
  199. data/bundler/lib/bundler/vendor/uri/lib/uri/ldaps.rb +2 -1
  200. data/bundler/lib/bundler/vendor/uri/lib/uri/mailto.rb +2 -2
  201. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +15 -9
  202. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +11 -6
  203. data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
  204. data/bundler/lib/bundler/vendor/uri/lib/uri/ws.rb +1 -2
  205. data/bundler/lib/bundler/vendor/uri/lib/uri/wss.rb +2 -1
  206. data/bundler/lib/bundler/vendor/uri/lib/uri.rb +3 -2
  207. data/bundler/lib/bundler/vendored_persistent.rb +1 -33
  208. data/bundler/lib/bundler/{vendored_tmpdir.rb → vendored_pub_grub.rb} +1 -1
  209. data/bundler/lib/bundler/version.rb +5 -1
  210. data/bundler/lib/bundler/worker.rb +5 -7
  211. data/bundler/lib/bundler.rb +25 -77
  212. data/{bin → exe}/gem +4 -5
  213. data/{bin → exe}/update_rubygems +12 -10
  214. data/lib/rubygems/available_set.rb +4 -3
  215. data/lib/rubygems/basic_specification.rb +5 -4
  216. data/lib/rubygems/bundler_version_finder.rb +2 -2
  217. data/lib/rubygems/command.rb +41 -32
  218. data/lib/rubygems/command_manager.rb +30 -15
  219. data/lib/rubygems/commands/build_command.rb +12 -8
  220. data/lib/rubygems/commands/cert_command.rb +34 -33
  221. data/lib/rubygems/commands/check_command.rb +21 -20
  222. data/lib/rubygems/commands/cleanup_command.rb +18 -17
  223. data/lib/rubygems/commands/contents_command.rb +14 -13
  224. data/lib/rubygems/commands/dependency_command.rb +17 -16
  225. data/lib/rubygems/commands/environment_command.rb +6 -5
  226. data/lib/rubygems/commands/exec_command.rb +249 -0
  227. data/lib/rubygems/commands/fetch_command.rb +10 -9
  228. data/lib/rubygems/commands/generate_index_command.rb +18 -17
  229. data/lib/rubygems/commands/help_command.rb +7 -6
  230. data/lib/rubygems/commands/info_command.rb +3 -3
  231. data/lib/rubygems/commands/install_command.rb +28 -23
  232. data/lib/rubygems/commands/list_command.rb +4 -3
  233. data/lib/rubygems/commands/lock_command.rb +5 -4
  234. data/lib/rubygems/commands/mirror_command.rb +4 -3
  235. data/lib/rubygems/commands/open_command.rb +10 -9
  236. data/lib/rubygems/commands/outdated_command.rb +6 -5
  237. data/lib/rubygems/commands/owner_command.rb +17 -14
  238. data/lib/rubygems/commands/pristine_command.rb +46 -36
  239. data/lib/rubygems/commands/push_command.rb +9 -8
  240. data/lib/rubygems/commands/query_command.rb +9 -8
  241. data/lib/rubygems/commands/rdoc_command.rb +21 -19
  242. data/lib/rubygems/commands/search_command.rb +4 -3
  243. data/lib/rubygems/commands/server_command.rb +4 -3
  244. data/lib/rubygems/commands/setup_command.rb +97 -106
  245. data/lib/rubygems/commands/signin_command.rb +10 -9
  246. data/lib/rubygems/commands/signout_command.rb +8 -7
  247. data/lib/rubygems/commands/sources_command.rb +22 -21
  248. data/lib/rubygems/commands/specification_command.rb +14 -13
  249. data/lib/rubygems/commands/stale_command.rb +3 -2
  250. data/lib/rubygems/commands/uninstall_command.rb +44 -40
  251. data/lib/rubygems/commands/unpack_command.rb +14 -13
  252. data/lib/rubygems/commands/update_command.rb +42 -63
  253. data/lib/rubygems/commands/which_command.rb +8 -7
  254. data/lib/rubygems/commands/yank_command.rb +12 -11
  255. data/lib/rubygems/config_file.rb +55 -21
  256. data/lib/rubygems/core_ext/kernel_gem.rb +1 -6
  257. data/lib/rubygems/core_ext/kernel_require.rb +109 -115
  258. data/lib/rubygems/core_ext/kernel_warn.rb +33 -37
  259. data/lib/rubygems/core_ext/tcpsocket_init.rb +3 -1
  260. data/lib/rubygems/defaults.rb +33 -18
  261. data/lib/rubygems/dependency.rb +15 -11
  262. data/lib/rubygems/dependency_installer.rb +38 -37
  263. data/lib/rubygems/dependency_list.rb +7 -6
  264. data/lib/rubygems/deprecate.rb +3 -2
  265. data/lib/rubygems/doctor.rb +19 -18
  266. data/lib/rubygems/errors.rb +3 -2
  267. data/lib/rubygems/exceptions.rb +16 -8
  268. data/lib/rubygems/ext/build_error.rb +2 -1
  269. data/lib/rubygems/ext/builder.rb +37 -21
  270. data/lib/rubygems/ext/cargo_builder/link_flag_converter.rb +9 -5
  271. data/lib/rubygems/ext/cargo_builder.rb +150 -111
  272. data/lib/rubygems/ext/cmake_builder.rb +2 -2
  273. data/lib/rubygems/ext/configure_builder.rb +2 -1
  274. data/lib/rubygems/ext/ext_conf_builder.rb +11 -9
  275. data/lib/rubygems/ext/rake_builder.rb +7 -5
  276. data/lib/rubygems/ext.rb +8 -7
  277. data/lib/rubygems/gem_runner.rb +6 -5
  278. data/lib/rubygems/gemcutter_utilities/webauthn_listener/response.rb +163 -0
  279. data/lib/rubygems/gemcutter_utilities/webauthn_listener.rb +105 -0
  280. data/lib/rubygems/gemcutter_utilities/webauthn_poller.rb +78 -0
  281. data/lib/rubygems/gemcutter_utilities.rb +90 -34
  282. data/lib/rubygems/indexer.rb +29 -28
  283. data/lib/rubygems/install_default_message.rb +3 -2
  284. data/lib/rubygems/install_message.rb +3 -2
  285. data/lib/rubygems/install_update_options.rb +56 -55
  286. data/lib/rubygems/installer.rb +54 -46
  287. data/lib/rubygems/installer_uninstaller_utils.rb +2 -2
  288. data/lib/rubygems/local_remote_options.rb +19 -20
  289. data/lib/rubygems/mock_gem_ui.rb +3 -2
  290. data/lib/rubygems/name_tuple.rb +5 -4
  291. data/lib/rubygems/optparse/lib/optparse.rb +20 -15
  292. data/lib/rubygems/optparse.rb +1 -1
  293. data/lib/rubygems/package/digest_io.rb +1 -0
  294. data/lib/rubygems/package/file_source.rb +3 -2
  295. data/lib/rubygems/package/io_source.rb +1 -0
  296. data/lib/rubygems/package/old.rb +9 -8
  297. data/lib/rubygems/package/source.rb +1 -0
  298. data/lib/rubygems/package/tar_header.rb +63 -62
  299. data/lib/rubygems/package/tar_reader/entry.rb +91 -9
  300. data/lib/rubygems/package/tar_reader.rb +2 -29
  301. data/lib/rubygems/package/tar_writer.rb +8 -7
  302. data/lib/rubygems/package.rb +64 -48
  303. data/lib/rubygems/package_task.rb +5 -4
  304. data/lib/rubygems/path_support.rb +1 -0
  305. data/lib/rubygems/platform.rb +79 -53
  306. data/lib/rubygems/psych_tree.rb +2 -1
  307. data/lib/rubygems/query_utils.rb +35 -35
  308. data/lib/rubygems/rdoc.rb +3 -2
  309. data/lib/rubygems/remote_fetcher.rb +23 -22
  310. data/lib/rubygems/request/connection_pools.rb +4 -4
  311. data/lib/rubygems/request/http_pool.rb +2 -1
  312. data/lib/rubygems/request/https_pool.rb +1 -0
  313. data/lib/rubygems/request.rb +23 -22
  314. data/lib/rubygems/request_set/gem_dependency_api.rb +123 -123
  315. data/lib/rubygems/request_set/lockfile/parser.rb +28 -27
  316. data/lib/rubygems/request_set/lockfile/tokenizer.rb +5 -3
  317. data/lib/rubygems/request_set/lockfile.rb +6 -5
  318. data/lib/rubygems/request_set.rb +20 -19
  319. data/lib/rubygems/requirement.rb +15 -14
  320. data/lib/rubygems/resolver/activation_request.rb +4 -3
  321. data/lib/rubygems/resolver/api_set.rb +5 -4
  322. data/lib/rubygems/resolver/api_specification.rb +7 -6
  323. data/lib/rubygems/resolver/best_set.rb +6 -5
  324. data/lib/rubygems/resolver/composed_set.rb +1 -0
  325. data/lib/rubygems/resolver/conflict.rb +11 -10
  326. data/lib/rubygems/resolver/current_set.rb +1 -0
  327. data/lib/rubygems/resolver/dependency_request.rb +3 -2
  328. data/lib/rubygems/resolver/git_set.rb +3 -2
  329. data/lib/rubygems/resolver/git_specification.rb +7 -6
  330. data/lib/rubygems/resolver/index_set.rb +4 -3
  331. data/lib/rubygems/resolver/index_specification.rb +7 -5
  332. data/lib/rubygems/resolver/installed_specification.rb +5 -4
  333. data/lib/rubygems/resolver/installer_set.rb +15 -17
  334. data/lib/rubygems/resolver/local_specification.rb +3 -2
  335. data/lib/rubygems/resolver/lock_set.rb +5 -4
  336. data/lib/rubygems/resolver/lock_specification.rb +5 -4
  337. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +1 -1
  338. data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +32 -26
  339. data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +1 -1
  340. data/lib/rubygems/resolver/molinillo.rb +2 -1
  341. data/lib/rubygems/resolver/requirement_list.rb +1 -0
  342. data/lib/rubygems/resolver/set.rb +1 -0
  343. data/lib/rubygems/resolver/source_set.rb +2 -0
  344. data/lib/rubygems/resolver/spec_specification.rb +1 -0
  345. data/lib/rubygems/resolver/specification.rb +2 -1
  346. data/lib/rubygems/resolver/stats.rb +2 -1
  347. data/lib/rubygems/resolver/vendor_set.rb +2 -1
  348. data/lib/rubygems/resolver/vendor_specification.rb +4 -3
  349. data/lib/rubygems/resolver.rb +41 -40
  350. data/lib/rubygems/s3_uri_signer.rb +10 -8
  351. data/lib/rubygems/safe_yaml.rb +4 -2
  352. data/lib/rubygems/security/policies.rb +48 -47
  353. data/lib/rubygems/security/policy.rb +19 -18
  354. data/lib/rubygems/security/signer.rb +6 -5
  355. data/lib/rubygems/security/trust_dir.rb +5 -4
  356. data/lib/rubygems/security.rb +30 -42
  357. data/lib/rubygems/security_option.rb +6 -5
  358. data/lib/rubygems/shellwords.rb +3 -0
  359. data/lib/rubygems/source/git.rb +22 -22
  360. data/lib/rubygems/source/installed.rb +2 -1
  361. data/lib/rubygems/source/local.rb +3 -2
  362. data/lib/rubygems/source/lock.rb +1 -0
  363. data/lib/rubygems/source/specific_file.rb +2 -1
  364. data/lib/rubygems/source/vendor.rb +1 -0
  365. data/lib/rubygems/source.rb +16 -16
  366. data/lib/rubygems/spec_fetcher.rb +10 -9
  367. data/lib/rubygems/specification.rb +121 -114
  368. data/lib/rubygems/specification_policy.rb +36 -15
  369. data/lib/rubygems/stub_specification.rb +11 -9
  370. data/lib/rubygems/text.rb +2 -2
  371. data/lib/rubygems/tsort/lib/tsort.rb +308 -310
  372. data/lib/rubygems/tsort.rb +1 -1
  373. data/lib/rubygems/uninstaller.rb +19 -18
  374. data/lib/rubygems/update_suggestion.rb +69 -0
  375. data/lib/rubygems/uri.rb +4 -4
  376. data/lib/rubygems/uri_formatter.rb +1 -1
  377. data/lib/rubygems/user_interaction.rb +37 -21
  378. data/lib/rubygems/util/licenses.rb +4 -3
  379. data/lib/rubygems/util/list.rb +1 -0
  380. data/lib/rubygems/util.rb +12 -15
  381. data/lib/rubygems/validator.rb +7 -6
  382. data/lib/rubygems/version.rb +17 -11
  383. data/lib/rubygems/version_option.rb +4 -3
  384. data/lib/rubygems.rb +89 -68
  385. data/rubygems-update.gemspec +10 -8
  386. data/setup.rb +10 -9
  387. data/test/rubygems/alternate_cert.pem +14 -14
  388. data/test/rubygems/alternate_cert_32.pem +15 -15
  389. data/test/rubygems/alternate_key.pem +25 -25
  390. data/test/rubygems/bad_rake.rb +1 -0
  391. data/test/rubygems/bundler_test_gem.rb +421 -0
  392. data/test/rubygems/child_cert.pem +15 -16
  393. data/test/rubygems/child_cert_32.pem +15 -16
  394. data/test/rubygems/child_key.pem +25 -25
  395. data/test/rubygems/encrypted_private_key.pem +26 -26
  396. data/test/rubygems/expired_cert.pem +15 -15
  397. data/test/rubygems/fake_certlib/openssl.rb +1 -0
  398. data/test/rubygems/future_cert.pem +15 -15
  399. data/test/rubygems/future_cert_32.pem +15 -15
  400. data/test/rubygems/good_rake.rb +1 -0
  401. data/test/rubygems/grandchild_cert.pem +15 -16
  402. data/test/rubygems/grandchild_cert_32.pem +15 -16
  403. data/test/rubygems/grandchild_key.pem +25 -25
  404. data/test/rubygems/helper.rb +172 -151
  405. data/test/rubygems/installer_test_case.rb +14 -13
  406. data/test/rubygems/invalid_issuer_cert.pem +16 -16
  407. data/test/rubygems/invalid_issuer_cert_32.pem +16 -16
  408. data/test/rubygems/invalid_key.pem +25 -25
  409. data/test/rubygems/invalid_signer_cert.pem +15 -15
  410. data/test/rubygems/invalid_signer_cert_32.pem +15 -15
  411. data/test/rubygems/invalidchild_cert.pem +15 -16
  412. data/test/rubygems/invalidchild_cert_32.pem +15 -16
  413. data/test/rubygems/invalidchild_key.pem +25 -25
  414. data/test/rubygems/multifactor_auth_utilities.rb +111 -0
  415. data/test/rubygems/package/tar_test_case.rb +53 -17
  416. data/test/rubygems/packages/Bluebie-legs-0.6.2.gem +0 -0
  417. data/test/rubygems/plugin/exception/rubygems_plugin.rb +2 -1
  418. data/test/rubygems/plugin/load/rubygems_plugin.rb +1 -0
  419. data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +2 -1
  420. data/test/rubygems/private_key.pem +25 -25
  421. data/test/rubygems/public_cert.pem +16 -16
  422. data/test/rubygems/public_cert_32.pem +15 -15
  423. data/test/rubygems/public_key.pem +7 -7
  424. data/test/rubygems/rubygems/commands/crash_command.rb +1 -0
  425. data/test/rubygems/rubygems_plugin.rb +3 -2
  426. data/test/rubygems/simple_gem.rb +2 -1
  427. data/test/rubygems/specifications/bar-0.0.2.gemspec +2 -0
  428. data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +6 -4
  429. data/test/rubygems/test_bundled_ca.rb +13 -12
  430. data/test/rubygems/test_config.rb +5 -4
  431. data/test/rubygems/test_deprecate.rb +5 -4
  432. data/test/rubygems/test_exit.rb +9 -3
  433. data/test/rubygems/test_gem.rb +339 -677
  434. data/test/rubygems/test_gem_available_set.rb +22 -21
  435. data/test/rubygems/test_gem_bundler_version_finder.rb +6 -4
  436. data/test/rubygems/test_gem_command.rb +45 -44
  437. data/test/rubygems/test_gem_command_manager.rb +96 -30
  438. data/test/rubygems/test_gem_commands_build_command.rb +74 -63
  439. data/test/rubygems/test_gem_commands_cert_command.rb +98 -99
  440. data/test/rubygems/test_gem_commands_check_command.rb +5 -4
  441. data/test/rubygems/test_gem_commands_cleanup_command.rb +41 -40
  442. data/test/rubygems/test_gem_commands_contents_command.rb +28 -27
  443. data/test/rubygems/test_gem_commands_dependency_command.rb +37 -36
  444. data/test/rubygems/test_gem_commands_environment_command.rb +17 -16
  445. data/test/rubygems/test_gem_commands_exec_command.rb +853 -0
  446. data/test/rubygems/test_gem_commands_fetch_command.rb +38 -37
  447. data/test/rubygems/test_gem_commands_generate_index_command.rb +8 -7
  448. data/test/rubygems/test_gem_commands_help_command.rb +14 -13
  449. data/test/rubygems/test_gem_commands_info_command.rb +29 -2
  450. data/test/rubygems/test_gem_commands_install_command.rb +152 -132
  451. data/test/rubygems/test_gem_commands_list_command.rb +5 -4
  452. data/test/rubygems/test_gem_commands_lock_command.rb +11 -10
  453. data/test/rubygems/test_gem_commands_mirror.rb +3 -2
  454. data/test/rubygems/test_gem_commands_open_command.rb +5 -4
  455. data/test/rubygems/test_gem_commands_outdated_command.rb +10 -9
  456. data/test/rubygems/test_gem_commands_owner_command.rb +227 -50
  457. data/test/rubygems/test_gem_commands_pristine_command.rb +142 -93
  458. data/test/rubygems/test_gem_commands_push_command.rb +189 -64
  459. data/test/rubygems/test_gem_commands_query_command.rb +74 -73
  460. data/test/rubygems/test_gem_commands_search_command.rb +3 -2
  461. data/test/rubygems/test_gem_commands_server_command.rb +3 -2
  462. data/test/rubygems/test_gem_commands_setup_command.rb +123 -96
  463. data/test/rubygems/test_gem_commands_signin_command.rb +71 -31
  464. data/test/rubygems/test_gem_commands_signout_command.rb +3 -3
  465. data/test/rubygems/test_gem_commands_sources_command.rb +29 -29
  466. data/test/rubygems/test_gem_commands_specification_command.rb +33 -32
  467. data/test/rubygems/test_gem_commands_stale_command.rb +5 -4
  468. data/test/rubygems/test_gem_commands_uninstall_command.rb +99 -81
  469. data/test/rubygems/test_gem_commands_unpack_command.rb +32 -31
  470. data/test/rubygems/test_gem_commands_update_command.rb +96 -95
  471. data/test/rubygems/test_gem_commands_which_command.rb +7 -6
  472. data/test/rubygems/test_gem_commands_yank_command.rb +162 -43
  473. data/test/rubygems/test_gem_config_file.rb +94 -81
  474. data/test/rubygems/test_gem_dependency.rb +76 -73
  475. data/test/rubygems/test_gem_dependency_installer.rb +200 -165
  476. data/test/rubygems/test_gem_dependency_list.rb +48 -47
  477. data/test/rubygems/test_gem_dependency_resolution_error.rb +5 -4
  478. data/test/rubygems/test_gem_doctor.rb +27 -26
  479. data/test/rubygems/test_gem_ext_builder.rb +60 -61
  480. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +4 -4
  481. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/{Cargo.lock → ext/custom_name_lib/Cargo.lock} +23 -33
  482. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/{Cargo.toml → ext/custom_name_lib/Cargo.toml} +1 -1
  483. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/{src → ext/custom_name_lib/src}/lib.rs +1 -1
  484. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/lib/custom_name.rb +3 -0
  485. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +37 -33
  486. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +1 -1
  487. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/rust_ruby_example.gemspec +2 -0
  488. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs +12 -0
  489. data/test/rubygems/test_gem_ext_cargo_builder.rb +48 -59
  490. data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +20 -19
  491. data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +21 -36
  492. data/test/rubygems/test_gem_ext_cmake_builder.rb +16 -15
  493. data/test/rubygems/test_gem_ext_configure_builder.rb +14 -13
  494. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +51 -52
  495. data/test/rubygems/test_gem_ext_rake_builder.rb +16 -15
  496. data/test/rubygems/test_gem_gem_runner.rb +15 -9
  497. data/test/rubygems/test_gem_gemcutter_utilities.rb +170 -84
  498. data/test/rubygems/test_gem_impossible_dependencies_error.rb +5 -4
  499. data/test/rubygems/test_gem_indexer.rb +87 -67
  500. data/test/rubygems/test_gem_install_update_options.rb +17 -16
  501. data/test/rubygems/test_gem_installer.rb +422 -304
  502. data/test/rubygems/test_gem_local_remote_options.rb +11 -10
  503. data/test/rubygems/test_gem_name_tuple.rb +5 -4
  504. data/test/rubygems/test_gem_package.rb +243 -231
  505. data/test/rubygems/test_gem_package_old.rb +14 -13
  506. data/test/rubygems/test_gem_package_tar_header.rb +48 -47
  507. data/test/rubygems/test_gem_package_tar_reader.rb +56 -8
  508. data/test/rubygems/test_gem_package_tar_reader_entry.rb +162 -16
  509. data/test/rubygems/test_gem_package_tar_writer.rb +77 -76
  510. data/test/rubygems/test_gem_package_task.rb +19 -18
  511. data/test/rubygems/test_gem_path_support.rb +15 -14
  512. data/test/rubygems/test_gem_platform.rb +333 -227
  513. data/test/rubygems/test_gem_rdoc.rb +15 -14
  514. data/test/rubygems/test_gem_remote_fetcher.rb +155 -154
  515. data/test/rubygems/test_gem_request.rb +64 -58
  516. data/test/rubygems/test_gem_request_connection_pools.rb +30 -29
  517. data/test/rubygems/test_gem_request_set.rb +101 -100
  518. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +210 -211
  519. data/test/rubygems/test_gem_request_set_lockfile.rb +87 -86
  520. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +58 -57
  521. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +63 -62
  522. data/test/rubygems/test_gem_requirement.rb +48 -41
  523. data/test/rubygems/test_gem_resolver.rb +167 -99
  524. data/test/rubygems/test_gem_resolver_activation_request.rb +7 -6
  525. data/test/rubygems/test_gem_resolver_api_set.rb +34 -33
  526. data/test/rubygems/test_gem_resolver_api_specification.rb +48 -47
  527. data/test/rubygems/test_gem_resolver_best_set.rb +23 -22
  528. data/test/rubygems/test_gem_resolver_composed_set.rb +2 -1
  529. data/test/rubygems/test_gem_resolver_conflict.rb +13 -12
  530. data/test/rubygems/test_gem_resolver_dependency_request.rb +16 -15
  531. data/test/rubygems/test_gem_resolver_git_set.rb +22 -21
  532. data/test/rubygems/test_gem_resolver_git_specification.rb +22 -21
  533. data/test/rubygems/test_gem_resolver_index_set.rb +13 -12
  534. data/test/rubygems/test_gem_resolver_index_specification.rb +17 -16
  535. data/test/rubygems/test_gem_resolver_installed_specification.rb +6 -5
  536. data/test/rubygems/test_gem_resolver_installer_set.rb +79 -34
  537. data/test/rubygems/test_gem_resolver_local_specification.rb +8 -7
  538. data/test/rubygems/test_gem_resolver_lock_set.rb +13 -12
  539. data/test/rubygems/test_gem_resolver_lock_specification.rb +18 -17
  540. data/test/rubygems/test_gem_resolver_requirement_list.rb +2 -1
  541. data/test/rubygems/test_gem_resolver_specification.rb +9 -8
  542. data/test/rubygems/test_gem_resolver_vendor_set.rb +7 -6
  543. data/test/rubygems/test_gem_resolver_vendor_specification.rb +11 -10
  544. data/test/rubygems/test_gem_security.rb +69 -68
  545. data/test/rubygems/test_gem_security_policy.rb +72 -72
  546. data/test/rubygems/test_gem_security_signer.rb +35 -34
  547. data/test/rubygems/test_gem_security_trust_dir.rb +7 -6
  548. data/test/rubygems/test_gem_silent_ui.rb +39 -32
  549. data/test/rubygems/test_gem_source.rb +45 -44
  550. data/test/rubygems/test_gem_source_fetch_problem.rb +10 -9
  551. data/test/rubygems/test_gem_source_git.rb +69 -62
  552. data/test/rubygems/test_gem_source_installed.rb +17 -16
  553. data/test/rubygems/test_gem_source_list.rb +6 -5
  554. data/test/rubygems/test_gem_source_local.rb +15 -14
  555. data/test/rubygems/test_gem_source_lock.rb +32 -31
  556. data/test/rubygems/test_gem_source_specific_file.rb +18 -17
  557. data/test/rubygems/test_gem_source_subpath_problem.rb +8 -7
  558. data/test/rubygems/test_gem_source_vendor.rb +14 -13
  559. data/test/rubygems/test_gem_spec_fetcher.rb +73 -72
  560. data/test/rubygems/test_gem_specification.rb +533 -469
  561. data/test/rubygems/test_gem_stream_ui.rb +53 -22
  562. data/test/rubygems/test_gem_stub_specification.rb +33 -32
  563. data/test/rubygems/test_gem_text.rb +2 -1
  564. data/test/rubygems/test_gem_uninstaller.rb +118 -117
  565. data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +4 -3
  566. data/test/rubygems/test_gem_update_suggestion.rb +209 -0
  567. data/test/rubygems/test_gem_uri.rb +6 -4
  568. data/test/rubygems/test_gem_uri_formatter.rb +15 -14
  569. data/test/rubygems/test_gem_util.rb +24 -23
  570. data/test/rubygems/test_gem_validator.rb +8 -8
  571. data/test/rubygems/test_gem_version.rb +24 -16
  572. data/test/rubygems/test_gem_version_option.rb +16 -15
  573. data/test/rubygems/test_kernel.rb +43 -48
  574. data/test/rubygems/test_project_sanity.rb +32 -3
  575. data/test/rubygems/test_remote_fetch_error.rb +8 -7
  576. data/test/rubygems/test_require.rb +118 -103
  577. data/test/rubygems/test_rubygems.rb +10 -8
  578. data/test/rubygems/test_webauthn_listener.rb +143 -0
  579. data/test/rubygems/test_webauthn_listener_response.rb +93 -0
  580. data/test/rubygems/test_webauthn_poller.rb +124 -0
  581. data/test/rubygems/utilities.rb +98 -34
  582. data/test/rubygems/wrong_key_cert.pem +15 -15
  583. data/test/rubygems/wrong_key_cert_32.pem +15 -15
  584. data/test/test_changelog_generator.rb +1 -1
  585. metadata +99 -46
  586. data/bundler/lib/bundler/dep_proxy.rb +0 -55
  587. data/bundler/lib/bundler/templates/gems.rb +0 -5
  588. data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt +0 -5
  589. data/bundler/lib/bundler/templates/newgem/travis.yml.tt +0 -6
  590. data/bundler/lib/bundler/vendor/molinillo/LICENSE +0 -9
  591. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +0 -57
  592. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +0 -88
  593. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb +0 -36
  594. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +0 -66
  595. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +0 -62
  596. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +0 -63
  597. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +0 -61
  598. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +0 -126
  599. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +0 -46
  600. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +0 -36
  601. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +0 -164
  602. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +0 -255
  603. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +0 -149
  604. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +0 -6
  605. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +0 -112
  606. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb +0 -67
  607. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +0 -839
  608. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +0 -46
  609. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/state.rb +0 -58
  610. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -11
  611. data/bundler/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +0 -154
  612. data/bundler/lib/bundler/vendored_molinillo.rb +0 -4
  613. data/bundler/lib/bundler/version_ranges.rb +0 -122
  614. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/build.rb +0 -21
  615. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/build.rb +0 -21
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
- require_relative '../command'
2
+
3
+ require_relative "../command"
3
4
 
4
5
  ##
5
6
  # Installs RubyGems itself. This command is ordinarily only available from a
@@ -12,47 +13,47 @@ class Gem::Commands::SetupCommand < Gem::Command
12
13
  ENV_PATHS = %w[/usr/bin/env /bin/env].freeze
13
14
 
14
15
  def initialize
15
- super 'setup', 'Install RubyGems',
16
+ super "setup", "Install RubyGems",
16
17
  :format_executable => false, :document => %w[ri],
17
18
  :force => true,
18
- :site_or_vendor => 'sitelibdir',
19
- :destdir => '', :prefix => '', :previous_version => '',
19
+ :site_or_vendor => "sitelibdir",
20
+ :destdir => "", :prefix => "", :previous_version => "",
20
21
  :regenerate_binstubs => true,
21
22
  :regenerate_plugins => true
22
23
 
23
- add_option '--previous-version=VERSION',
24
- 'Previous version of RubyGems',
25
- 'Used for changelog processing' do |version, options|
24
+ add_option "--previous-version=VERSION",
25
+ "Previous version of RubyGems",
26
+ "Used for changelog processing" do |version, options|
26
27
  options[:previous_version] = version
27
28
  end
28
29
 
29
- add_option '--prefix=PREFIX',
30
- 'Prefix path for installing RubyGems',
31
- 'Will not affect gem repository location' do |prefix, options|
30
+ add_option "--prefix=PREFIX",
31
+ "Prefix path for installing RubyGems",
32
+ "Will not affect gem repository location" do |prefix, options|
32
33
  options[:prefix] = File.expand_path prefix
33
34
  end
34
35
 
35
- add_option '--destdir=DESTDIR',
36
- 'Root directory to install RubyGems into',
37
- 'Mainly used for packaging RubyGems' do |destdir, options|
36
+ add_option "--destdir=DESTDIR",
37
+ "Root directory to install RubyGems into",
38
+ "Mainly used for packaging RubyGems" do |destdir, options|
38
39
  options[:destdir] = File.expand_path destdir
39
40
  end
40
41
 
41
- add_option '--[no-]vendor',
42
- 'Install into vendorlibdir not sitelibdir' do |vendor, options|
43
- options[:site_or_vendor] = vendor ? 'vendorlibdir' : 'sitelibdir'
42
+ add_option "--[no-]vendor",
43
+ "Install into vendorlibdir not sitelibdir" do |vendor, options|
44
+ options[:site_or_vendor] = vendor ? "vendorlibdir" : "sitelibdir"
44
45
  end
45
46
 
46
- add_option '--[no-]format-executable',
47
- 'Makes `gem` match ruby',
48
- 'If Ruby is ruby18, gem will be gem18' do |value, options|
47
+ add_option "--[no-]format-executable",
48
+ "Makes `gem` match ruby",
49
+ "If Ruby is ruby18, gem will be gem18" do |value, options|
49
50
  options[:format_executable] = value
50
51
  end
51
52
 
52
- add_option '--[no-]document [TYPES]', Array,
53
- 'Generate documentation for RubyGems',
54
- 'List the documentation types you wish to',
55
- 'generate. For example: rdoc,ri' do |value, options|
53
+ add_option "--[no-]document [TYPES]", Array,
54
+ "Generate documentation for RubyGems",
55
+ "List the documentation types you wish to",
56
+ "generate. For example: rdoc,ri" do |value, options|
56
57
  options[:document] = case value
57
58
  when nil then %w[rdoc ri]
58
59
  when false then []
@@ -60,46 +61,46 @@ class Gem::Commands::SetupCommand < Gem::Command
60
61
  end
61
62
  end
62
63
 
63
- add_option '--[no-]rdoc',
64
- 'Generate RDoc documentation for RubyGems' do |value, options|
64
+ add_option "--[no-]rdoc",
65
+ "Generate RDoc documentation for RubyGems" do |value, options|
65
66
  if value
66
- options[:document] << 'rdoc'
67
+ options[:document] << "rdoc"
67
68
  else
68
- options[:document].delete 'rdoc'
69
+ options[:document].delete "rdoc"
69
70
  end
70
71
 
71
72
  options[:document].uniq!
72
73
  end
73
74
 
74
- add_option '--[no-]ri',
75
- 'Generate RI documentation for RubyGems' do |value, options|
75
+ add_option "--[no-]ri",
76
+ "Generate RI documentation for RubyGems" do |value, options|
76
77
  if value
77
- options[:document] << 'ri'
78
+ options[:document] << "ri"
78
79
  else
79
- options[:document].delete 'ri'
80
+ options[:document].delete "ri"
80
81
  end
81
82
 
82
83
  options[:document].uniq!
83
84
  end
84
85
 
85
- add_option '--[no-]regenerate-binstubs',
86
- 'Regenerate gem binstubs' do |value, options|
86
+ add_option "--[no-]regenerate-binstubs",
87
+ "Regenerate gem binstubs" do |value, options|
87
88
  options[:regenerate_binstubs] = value
88
89
  end
89
90
 
90
- add_option '--[no-]regenerate-plugins',
91
- 'Regenerate gem plugins' do |value, options|
91
+ add_option "--[no-]regenerate-plugins",
92
+ "Regenerate gem plugins" do |value, options|
92
93
  options[:regenerate_plugins] = value
93
94
  end
94
95
 
95
- add_option '-f', '--[no-]force',
96
- 'Forcefully overwrite binstubs' do |value, options|
96
+ add_option "-f", "--[no-]force",
97
+ "Forcefully overwrite binstubs" do |value, options|
97
98
  options[:force] = value
98
99
  end
99
100
 
100
- add_option('-E', '--[no-]env-shebang',
101
- 'Rewrite executables with a shebang',
102
- 'of /usr/bin/env') do |value, options|
101
+ add_option("-E", "--[no-]env-shebang",
102
+ "Rewrite executables with a shebang",
103
+ "of /usr/bin/env") do |value, options|
103
104
  options[:env_shebang] = value
104
105
  end
105
106
 
@@ -107,7 +108,7 @@ class Gem::Commands::SetupCommand < Gem::Command
107
108
  end
108
109
 
109
110
  def check_ruby_version
110
- required_version = Gem::Requirement.new '>= 2.3.0'
111
+ required_version = Gem::Requirement.new ">= 2.6.0"
111
112
 
112
113
  unless required_version.satisfied_by? Gem.ruby_version
113
114
  alert_error "Expected Ruby version #{required_version}, is #{Gem.ruby_version}"
@@ -149,7 +150,7 @@ By default, this RubyGems will install gem as:
149
150
 
150
151
  check_ruby_version
151
152
 
152
- require 'fileutils'
153
+ require "fileutils"
153
154
  if Gem.configuration.really_verbose
154
155
  extend FileUtils::Verbose
155
156
  else
@@ -194,7 +195,7 @@ By default, this RubyGems will install gem as:
194
195
  end
195
196
 
196
197
  if options[:previous_version].empty?
197
- options[:previous_version] = Gem::VERSION.sub(/[0-9]+$/, '0')
198
+ options[:previous_version] = Gem::VERSION.sub(/[0-9]+$/, "0")
198
199
  end
199
200
 
200
201
  options[:previous_version] = Gem::Version.new(options[:previous_version])
@@ -216,7 +217,7 @@ By default, this RubyGems will install gem as:
216
217
  end
217
218
 
218
219
  if documentation_success
219
- if options[:document].include? 'rdoc'
220
+ if options[:document].include? "rdoc"
220
221
  say "Rdoc documentation was installed. You may now invoke:"
221
222
  say " gem server"
222
223
  say "and then peruse beautifully formatted documentation for your gems"
@@ -227,7 +228,7 @@ By default, this RubyGems will install gem as:
227
228
  say
228
229
  end
229
230
 
230
- if options[:document].include? 'ri'
231
+ if options[:document].include? "ri"
231
232
  say "Ruby Interactive (ri) documentation was installed. ri is kind of like man "
232
233
  say "pages for Ruby libraries. You may access it like this:"
233
234
  say " ri Classname"
@@ -244,14 +245,14 @@ By default, this RubyGems will install gem as:
244
245
  def install_executables(bin_dir)
245
246
  prog_mode = options[:prog_mode] || 0755
246
247
 
247
- executables = { 'gem' => 'bin' }
248
+ executables = { "gem" => "exe" }
248
249
  executables.each do |tool, path|
249
250
  say "Installing #{tool} executable" if @verbose
250
251
 
251
252
  Dir.chdir path do
252
253
  bin_file = "gem"
253
254
 
254
- require 'tmpdir'
255
+ require "tmpdir"
255
256
 
256
257
  dest_file = target_bin_path(bin_dir, bin_file)
257
258
  bin_tmp_file = File.join Dir.tmpdir, "#{bin_file}.#{$$}"
@@ -260,7 +261,7 @@ By default, this RubyGems will install gem as:
260
261
  bin = File.readlines bin_file
261
262
  bin[0] = shebang
262
263
 
263
- File.open bin_tmp_file, 'w' do |fp|
264
+ File.open bin_tmp_file, "w" do |fp|
264
265
  fp.puts bin.join
265
266
  end
266
267
 
@@ -275,7 +276,7 @@ By default, this RubyGems will install gem as:
275
276
  begin
276
277
  bin_cmd_file = File.join Dir.tmpdir, "#{bin_file}.bat"
277
278
 
278
- File.open bin_cmd_file, 'w' do |file|
279
+ File.open bin_cmd_file, "w" do |file|
279
280
  file.puts <<-TEXT
280
281
  @ECHO OFF
281
282
  IF NOT "%~f0" == "~f0" GOTO :WinNT
@@ -296,7 +297,7 @@ By default, this RubyGems will install gem as:
296
297
 
297
298
  def shebang
298
299
  if options[:env_shebang]
299
- ruby_name = RbConfig::CONFIG['ruby_install_name']
300
+ ruby_name = RbConfig::CONFIG["ruby_install_name"]
300
301
  @env_path ||= ENV_PATHS.find {|env_path| File.executable? env_path }
301
302
  "#!#{@env_path} #{ruby_name}\n"
302
303
  else
@@ -305,8 +306,8 @@ By default, this RubyGems will install gem as:
305
306
  end
306
307
 
307
308
  def install_lib(lib_dir)
308
- libs = { 'RubyGems' => 'lib' }
309
- libs['Bundler'] = 'bundler/lib'
309
+ libs = { "RubyGems" => "lib" }
310
+ libs["Bundler"] = "bundler/lib"
310
311
  libs.each do |tool, path|
311
312
  say "Installing #{tool}" if @verbose
312
313
 
@@ -319,7 +320,7 @@ By default, this RubyGems will install gem as:
319
320
  end
320
321
 
321
322
  def install_rdoc
322
- gem_doc_dir = File.join Gem.dir, 'doc'
323
+ gem_doc_dir = File.join Gem.dir, "doc"
323
324
  rubygems_name = "rubygems-#{Gem::VERSION}"
324
325
  rubygems_doc_dir = File.join gem_doc_dir, rubygems_name
325
326
 
@@ -329,23 +330,23 @@ By default, this RubyGems will install gem as:
329
330
  # ignore
330
331
  end
331
332
 
332
- if File.writable? gem_doc_dir and
333
- (not File.exist? rubygems_doc_dir or
334
- File.writable? rubygems_doc_dir)
333
+ if File.writable?(gem_doc_dir) &&
334
+ (!File.exist?(rubygems_doc_dir) ||
335
+ File.writable?(rubygems_doc_dir))
335
336
  say "Removing old RubyGems RDoc and ri" if @verbose
336
- Dir[File.join(Gem.dir, 'doc', 'rubygems-[0-9]*')].each do |dir|
337
+ Dir[File.join(Gem.dir, "doc", "rubygems-[0-9]*")].each do |dir|
337
338
  rm_rf dir
338
339
  end
339
340
 
340
- require_relative '../rdoc'
341
+ require_relative "../rdoc"
341
342
 
342
- fake_spec = Gem::Specification.new 'rubygems', Gem::VERSION
343
+ fake_spec = Gem::Specification.new "rubygems", Gem::VERSION
343
344
  def fake_spec.full_gem_path
344
- File.expand_path '../../..', __dir__
345
+ File.expand_path "../../..", __dir__
345
346
  end
346
347
 
347
- generate_ri = options[:document].include? 'ri'
348
- generate_rdoc = options[:document].include? 'rdoc'
348
+ generate_ri = options[:document].include? "ri"
349
+ generate_rdoc = options[:document].include? "rdoc"
349
350
 
350
351
  rdoc = Gem::RDoc.new fake_spec, generate_rdoc, generate_ri
351
352
  rdoc.generate
@@ -360,34 +361,24 @@ By default, this RubyGems will install gem as:
360
361
  end
361
362
 
362
363
  def install_default_bundler_gem(bin_dir)
363
- specs_dir = File.join(default_dir, "specifications", "default")
364
- mkdir_p specs_dir, :mode => 0755
365
-
366
- bundler_spec = Dir.chdir("bundler") { Gem::Specification.load("bundler.gemspec") }
367
-
368
364
  current_default_spec = Gem::Specification.default_stubs.find {|s| s.name == "bundler" }
369
- if current_default_spec
370
- File.delete(current_default_spec.loaded_from)
365
+ specs_dir = if current_default_spec && default_dir == Gem.default_dir
371
366
  Gem::Specification.remove_spec current_default_spec
367
+ loaded_from = current_default_spec.loaded_from
368
+ File.delete(loaded_from)
369
+ File.dirname(loaded_from)
370
+ else
371
+ target_specs_dir = File.join(default_dir, "specifications", "default")
372
+ mkdir_p target_specs_dir, :mode => 0755
373
+ target_specs_dir
372
374
  end
373
375
 
376
+ bundler_spec = Dir.chdir("bundler") { Gem::Specification.load("bundler.gemspec") }
374
377
  default_spec_path = File.join(specs_dir, "#{bundler_spec.full_name}.gemspec")
375
378
  Gem.write_binary(default_spec_path, bundler_spec.to_ruby)
376
379
 
377
380
  bundler_spec = Gem::Specification.load(default_spec_path)
378
381
 
379
- # The base_dir value for a specification is inferred by walking up from the
380
- # folder where the spec was `loaded_from`. In the case of default gems, we
381
- # walk up two levels, because they live at `specifications/default/`, whereas
382
- # in the case of regular gems we walk up just one level because they live at
383
- # `specifications/`. However, in this case, the gem we are installing is
384
- # misdetected as a regular gem, when it's a default gem in reality. This is
385
- # because when there's a `:destdir`, the `loaded_from` path has changed and
386
- # doesn't match `Gem.default_specifications_dir` which is the criteria to
387
- # tag a gem as a default gem. So, in that case, write the correct
388
- # `@base_dir` directly.
389
- bundler_spec.instance_variable_set(:@base_dir, File.dirname(File.dirname(specs_dir)))
390
-
391
382
  # Remove gemspec that was same version of vendored bundler.
392
383
  normal_gemspec = File.join(default_dir, "specifications", "bundler-#{bundler_spec.version}.gemspec")
393
384
  if File.file? normal_gemspec
@@ -407,7 +398,7 @@ By default, this RubyGems will install gem as:
407
398
  cp File.join("bundler", bundler_spec.bindir, e), File.join(bundler_bin_dir, e)
408
399
  end
409
400
 
410
- require_relative '../installer'
401
+ require_relative "../installer"
411
402
 
412
403
  Dir.chdir("bundler") do
413
404
  built_gem = Gem::Package.build(bundler_spec)
@@ -449,10 +440,10 @@ By default, this RubyGems will install gem as:
449
440
  prefix = options[:prefix]
450
441
 
451
442
  if prefix.empty?
452
- man_dir = RbConfig::CONFIG['mandir']
443
+ man_dir = RbConfig::CONFIG["mandir"]
453
444
  return unless man_dir
454
445
  else
455
- man_dir = File.join prefix, 'man'
446
+ man_dir = File.join prefix, "man"
456
447
  end
457
448
 
458
449
  prepend_destdir_if_present(man_dir)
@@ -464,10 +455,10 @@ By default, this RubyGems will install gem as:
464
455
 
465
456
  if prefix.empty?
466
457
  lib_dir = RbConfig::CONFIG[site_or_vendor]
467
- bin_dir = RbConfig::CONFIG['bindir']
458
+ bin_dir = RbConfig::CONFIG["bindir"]
468
459
  else
469
- lib_dir = File.join prefix, 'lib'
470
- bin_dir = File.join prefix, 'bin'
460
+ lib_dir = File.join prefix, "lib"
461
+ bin_dir = File.join prefix, "bin"
471
462
  end
472
463
 
473
464
  [prepend_destdir_if_present(lib_dir), prepend_destdir_if_present(bin_dir)]
@@ -475,19 +466,19 @@ By default, this RubyGems will install gem as:
475
466
 
476
467
  def files_in(dir)
477
468
  Dir.chdir dir do
478
- Dir.glob(File.join('**', '*'), File::FNM_DOTMATCH).
469
+ Dir.glob(File.join("**", "*"), File::FNM_DOTMATCH).
479
470
  select {|f| !File.directory?(f) }
480
471
  end
481
472
  end
482
473
 
483
474
  def remove_old_bin_files(bin_dir)
484
475
  old_bin_files = {
485
- 'gem_mirror' => 'gem mirror',
486
- 'gem_server' => 'gem server',
487
- 'gemlock' => 'gem lock',
488
- 'gemri' => 'ri',
489
- 'gemwhich' => 'gem which',
490
- 'index_gem_repository.rb' => 'gem generate_index',
476
+ "gem_mirror" => "gem mirror",
477
+ "gem_server" => "gem server",
478
+ "gemlock" => "gem lock",
479
+ "gemri" => "ri",
480
+ "gemwhich" => "gem which",
481
+ "index_gem_repository.rb" => "gem generate_index",
491
482
  }
492
483
 
493
484
  old_bin_files.each do |old_bin_file, new_name|
@@ -496,7 +487,7 @@ By default, this RubyGems will install gem as:
496
487
 
497
488
  deprecation_message = "`#{old_bin_file}` has been deprecated. Use `#{new_name}` instead."
498
489
 
499
- File.open old_bin_path, 'w' do |fp|
490
+ File.open old_bin_path, "w" do |fp|
500
491
  fp.write <<-EOF
501
492
  #!#{Gem.ruby}
502
493
 
@@ -506,15 +497,15 @@ abort "#{deprecation_message}"
506
497
 
507
498
  next unless Gem.win_platform?
508
499
 
509
- File.open "#{old_bin_path}.bat", 'w' do |fp|
500
+ File.open "#{old_bin_path}.bat", "w" do |fp|
510
501
  fp.puts %(@ECHO.#{deprecation_message})
511
502
  end
512
503
  end
513
504
  end
514
505
 
515
506
  def remove_old_lib_files(lib_dir)
516
- lib_dirs = { File.join(lib_dir, 'rubygems') => 'lib/rubygems' }
517
- lib_dirs[File.join(lib_dir, 'bundler')] = 'bundler/lib/bundler'
507
+ lib_dirs = { File.join(lib_dir, "rubygems") => "lib/rubygems" }
508
+ lib_dirs[File.join(lib_dir, "bundler")] = "bundler/lib/bundler"
518
509
  lib_dirs.each do |old_lib_dir, new_lib_dir|
519
510
  lib_files = files_in(new_lib_dir)
520
511
 
@@ -522,11 +513,11 @@ abort "#{deprecation_message}"
522
513
 
523
514
  to_remove = old_lib_files - lib_files
524
515
 
525
- gauntlet_rubygems = File.join(lib_dir, 'gauntlet_rubygems.rb')
516
+ gauntlet_rubygems = File.join(lib_dir, "gauntlet_rubygems.rb")
526
517
  to_remove << gauntlet_rubygems if File.exist? gauntlet_rubygems
527
518
 
528
519
  to_remove.delete_if do |file|
529
- file.start_with? 'defaults'
520
+ file.start_with? "defaults"
530
521
  end
531
522
 
532
523
  remove_file_list(to_remove, old_lib_dir)
@@ -552,7 +543,7 @@ abort "#{deprecation_message}"
552
543
  end
553
544
 
554
545
  def show_release_notes
555
- release_notes = File.join Dir.pwd, 'CHANGELOG.md'
546
+ release_notes = File.join Dir.pwd, "CHANGELOG.md"
556
547
 
557
548
  release_notes =
558
549
  if File.exist? release_notes
@@ -569,7 +560,7 @@ abort "#{deprecation_message}"
569
560
 
570
561
  history_string = ""
571
562
 
572
- until versions.length == 0 or
563
+ until versions.length == 0 ||
573
564
  versions.shift <= options[:previous_version] do
574
565
  history_string += version_lines.shift + text.shift
575
566
  end
@@ -583,10 +574,10 @@ abort "#{deprecation_message}"
583
574
  end
584
575
 
585
576
  def uninstall_old_gemcutter
586
- require_relative '../uninstaller'
577
+ require_relative "../uninstaller"
587
578
 
588
- ui = Gem::Uninstaller.new('gemcutter', :all => true, :ignore => true,
589
- :version => '< 0.4')
579
+ ui = Gem::Uninstaller.new("gemcutter", :all => true, :ignore => true,
580
+ :version => "< 0.4")
590
581
  ui.uninstall
591
582
  rescue Gem::InstallError
592
583
  end
@@ -635,7 +626,7 @@ abort "#{deprecation_message}"
635
626
  destdir = options[:destdir]
636
627
  return path if destdir.empty?
637
628
 
638
- File.join(options[:destdir], path.gsub(/^[a-zA-Z]:/, ''))
629
+ File.join(options[:destdir], path.gsub(/^[a-zA-Z]:/, ""))
639
630
  end
640
631
 
641
632
  def install_file_list(files, dest_dir)
@@ -1,15 +1,16 @@
1
1
  # frozen_string_literal: true
2
- require_relative '../command'
3
- require_relative '../gemcutter_utilities'
2
+
3
+ require_relative "../command"
4
+ require_relative "../gemcutter_utilities"
4
5
 
5
6
  class Gem::Commands::SigninCommand < Gem::Command
6
7
  include Gem::GemcutterUtilities
7
8
 
8
9
  def initialize
9
- super 'signin', 'Sign in to any gemcutter-compatible host. '\
10
- 'It defaults to https://rubygems.org'
10
+ super "signin", "Sign in to any gemcutter-compatible host. "\
11
+ "It defaults to https://rubygems.org"
11
12
 
12
- add_option('--host HOST', 'Push to another gemcutter-compatible host') do |value, options|
13
+ add_option("--host HOST", "Push to another gemcutter-compatible host") do |value, options|
13
14
  options[:host] = value
14
15
  end
15
16
 
@@ -17,10 +18,10 @@ class Gem::Commands::SigninCommand < Gem::Command
17
18
  end
18
19
 
19
20
  def description # :nodoc:
20
- 'The signin command executes host sign in for a push server (the default is'\
21
- ' https://rubygems.org). The host can be provided with the host flag or can'\
22
- ' be inferred from the provided gem. Host resolution matches the resolution'\
23
- ' strategy for the push command.'
21
+ "The signin command executes host sign in for a push server (the default is"\
22
+ " https://rubygems.org). The host can be provided with the host flag or can"\
23
+ " be inferred from the provided gem. Host resolution matches the resolution"\
24
+ " strategy for the push command."
24
25
  end
25
26
 
26
27
  def usage # :nodoc:
@@ -1,14 +1,15 @@
1
1
  # frozen_string_literal: true
2
- require_relative '../command'
2
+
3
+ require_relative "../command"
3
4
 
4
5
  class Gem::Commands::SignoutCommand < Gem::Command
5
6
  def initialize
6
- super 'signout', 'Sign out from all the current sessions.'
7
+ super "signout", "Sign out from all the current sessions."
7
8
  end
8
9
 
9
10
  def description # :nodoc:
10
- 'The `signout` command is used to sign out from all current sessions,'\
11
- ' allowing you to sign in using a different set of credentials.'
11
+ "The `signout` command is used to sign out from all current sessions,"\
12
+ " allowing you to sign in using a different set of credentials."
12
13
  end
13
14
 
14
15
  def usage # :nodoc:
@@ -19,13 +20,13 @@ class Gem::Commands::SignoutCommand < Gem::Command
19
20
  credentials_path = Gem.configuration.credentials_path
20
21
 
21
22
  if !File.exist?(credentials_path)
22
- alert_error 'You are not currently signed in.'
23
+ alert_error "You are not currently signed in."
23
24
  elsif !File.writable?(credentials_path)
24
25
  alert_error "File '#{Gem.configuration.credentials_path}' is read-only."\
25
- ' Please make sure it is writable.'
26
+ " Please make sure it is writable."
26
27
  else
27
28
  Gem.configuration.unset_api_key!
28
- say 'You have successfully signed out from all sessions.'
29
+ say "You have successfully signed out from all sessions."
29
30
  end
30
31
  end
31
32
  end
@@ -1,40 +1,41 @@
1
1
  # frozen_string_literal: true
2
- require_relative '../command'
3
- require_relative '../remote_fetcher'
4
- require_relative '../spec_fetcher'
5
- require_relative '../local_remote_options'
2
+
3
+ require_relative "../command"
4
+ require_relative "../remote_fetcher"
5
+ require_relative "../spec_fetcher"
6
+ require_relative "../local_remote_options"
6
7
 
7
8
  class Gem::Commands::SourcesCommand < Gem::Command
8
9
  include Gem::LocalRemoteOptions
9
10
 
10
11
  def initialize
11
- require 'fileutils'
12
+ require "fileutils"
12
13
 
13
- super 'sources',
14
- 'Manage the sources and cache file RubyGems uses to search for gems'
14
+ super "sources",
15
+ "Manage the sources and cache file RubyGems uses to search for gems"
15
16
 
16
- add_option '-a', '--add SOURCE_URI', 'Add source' do |value, options|
17
+ add_option "-a", "--add SOURCE_URI", "Add source" do |value, options|
17
18
  options[:add] = value
18
19
  end
19
20
 
20
- add_option '-l', '--list', 'List sources' do |value, options|
21
+ add_option "-l", "--list", "List sources" do |value, options|
21
22
  options[:list] = value
22
23
  end
23
24
 
24
- add_option '-r', '--remove SOURCE_URI', 'Remove source' do |value, options|
25
+ add_option "-r", "--remove SOURCE_URI", "Remove source" do |value, options|
25
26
  options[:remove] = value
26
27
  end
27
28
 
28
- add_option '-c', '--clear-all',
29
- 'Remove all sources (clear the cache)' do |value, options|
29
+ add_option "-c", "--clear-all",
30
+ "Remove all sources (clear the cache)" do |value, options|
30
31
  options[:clear_all] = value
31
32
  end
32
33
 
33
- add_option '-u', '--update', 'Update source cache' do |value, options|
34
+ add_option "-u", "--update", "Update source cache" do |value, options|
34
35
  options[:update] = value
35
36
  end
36
37
 
37
- add_option '-f', '--[no-]force', "Do not show any confirmation prompts and behave as if 'yes' was always answered" do |value, options|
38
+ add_option "-f", "--[no-]force", "Do not show any confirmation prompts and behave as if 'yes' was always answered" do |value, options|
38
39
  options[:force] = value
39
40
  end
40
41
 
@@ -82,8 +83,8 @@ Do you want to add this source?
82
83
  def check_rubygems_https(source_uri) # :nodoc:
83
84
  uri = URI source_uri
84
85
 
85
- if uri.scheme and uri.scheme.downcase == 'http' and
86
- uri.host.downcase == 'rubygems.org'
86
+ if uri.scheme && uri.scheme.downcase == "http" &&
87
+ uri.host.downcase == "rubygems.org"
87
88
  question = <<-QUESTION.chomp
88
89
  https://rubygems.org is recommended for security over #{uri}
89
90
 
@@ -112,7 +113,7 @@ Do you want to add this insecure source?
112
113
  end
113
114
 
114
115
  def defaults_str # :nodoc:
115
- '--list'
116
+ "--list"
116
117
  end
117
118
 
118
119
  def description # :nodoc:
@@ -138,8 +139,8 @@ do not recognize you should remove them.
138
139
  RubyGems has been configured to serve gems via the following URLs through
139
140
  its history:
140
141
 
141
- * http://gems.rubyforge.org (RubyGems 1.3.6 and earlier)
142
- * https://rubygems.org/ (RubyGems 1.3.7 through 1.8.25)
142
+ * http://gems.rubyforge.org (RubyGems 1.3.5 and earlier)
143
+ * http://rubygems.org (RubyGems 1.3.6 through 1.8.30, and 2.0.0)
143
144
  * https://rubygems.org (RubyGems 2.0.1 and newer)
144
145
 
145
146
  Since all of these sources point to the same set of gems you only need one
@@ -215,9 +216,9 @@ To remove a source use the --remove argument:
215
216
  def remove_cache_file(desc, path) # :nodoc:
216
217
  FileUtils.rm_rf path
217
218
 
218
- if not File.exist?(path)
219
+ if !File.exist?(path)
219
220
  say "*** Removed #{desc} source cache ***"
220
- elsif not File.writable?(path)
221
+ elsif !File.writable?(path)
221
222
  say "*** Unable to remove #{desc} source cache (write protected) ***"
222
223
  else
223
224
  say "*** Unable to remove #{desc} source cache ***"