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
@@ -7,44 +7,43 @@ module Bundler
7
7
  include Enumerable
8
8
  include TSort
9
9
 
10
- def initialize(specs)
10
+ attr_reader :incomplete_specs
11
+
12
+ def initialize(specs, incomplete_specs = [])
11
13
  @specs = specs
14
+ @incomplete_specs = incomplete_specs
12
15
  end
13
16
 
14
- def for(dependencies, check = false, match_current_platform = false)
15
- # dep.name => [list, of, deps]
16
- handled = Hash.new {|h, k| h[k] = [] }
17
- deps = dependencies.dup
17
+ def for(dependencies, check = false, platforms = [nil])
18
+ handled = ["bundler"].product(platforms).map {|k| [k, true] }.to_h
19
+ deps = dependencies.product(platforms)
18
20
  specs = []
19
21
 
20
22
  loop do
21
23
  break unless dep = deps.shift
22
- next if handled[dep.name].any? {|d| match_current_platform || d.__platform == dep.__platform } || dep.name == "bundler"
23
24
 
24
- # use a hash here to ensure constant lookup time in the `any?` call above
25
- handled[dep.name] << dep
25
+ name = dep[0].name
26
+ platform = dep[1]
27
+
28
+ key = [name, platform]
29
+ next if handled.key?(key)
30
+
31
+ handled[key] = true
26
32
 
27
- specs_for_dep = specs_for_dependency(dep, match_current_platform)
33
+ specs_for_dep = specs_for_dependency(*dep)
28
34
  if specs_for_dep.any?
29
35
  specs.concat(specs_for_dep)
30
36
 
31
37
  specs_for_dep.first.dependencies.each do |d|
32
38
  next if d.type == :development
33
- d = DepProxy.get_proxy(Dependency.new(d.name, d.requirement), dep.__platform) unless match_current_platform
34
- deps << d
39
+ deps << [d, dep[1]]
35
40
  end
36
41
  elsif check
37
- return false
42
+ @incomplete_specs += lookup[name]
38
43
  end
39
44
  end
40
45
 
41
- if spec = lookup["bundler"].first
42
- specs << spec
43
- end
44
-
45
- specs.uniq! unless match_current_platform
46
-
47
- check ? true : specs
46
+ specs
48
47
  end
49
48
 
50
49
  def [](key)
@@ -58,6 +57,12 @@ module Bundler
58
57
  @sorted = nil
59
58
  end
60
59
 
60
+ def delete(spec)
61
+ @specs.delete(spec)
62
+ @lookup = nil
63
+ @sorted = nil
64
+ end
65
+
61
66
  def sort!
62
67
  self
63
68
  end
@@ -71,14 +76,9 @@ module Bundler
71
76
  end
72
77
 
73
78
  def materialize(deps)
74
- materialized = self.for(deps, false, true)
79
+ materialized = self.for(deps, true)
75
80
 
76
- materialized.map! do |s|
77
- next s unless s.is_a?(LazySpecification)
78
- s.source.local!
79
- s.__materialize__ || s
80
- end
81
- SpecSet.new(materialized)
81
+ SpecSet.new(materialized, incomplete_specs)
82
82
  end
83
83
 
84
84
  # Materialize for all the specs in the spec set, regardless of what platform they're for
@@ -87,14 +87,19 @@ module Bundler
87
87
  def materialized_for_all_platforms
88
88
  @specs.map do |s|
89
89
  next s unless s.is_a?(LazySpecification)
90
- s.source.local!
91
90
  s.source.remote!
92
- spec = s.__materialize__
91
+ spec = s.materialize_for_installation
93
92
  raise GemNotFound, "Could not find #{s.full_name} in any of the sources" unless spec
94
93
  spec
95
94
  end
96
95
  end
97
96
 
97
+ def incomplete_ruby_specs?(deps)
98
+ self.for(deps, true, [Gem::Platform::RUBY])
99
+
100
+ @incomplete_specs.any?
101
+ end
102
+
98
103
  def missing_specs
99
104
  @specs.select {|s| s.is_a?(LazySpecification) }
100
105
  end
@@ -109,10 +114,20 @@ module Bundler
109
114
  SpecSet.new(arr)
110
115
  end
111
116
 
117
+ def -(other)
118
+ SpecSet.new(to_a - other.to_a)
119
+ end
120
+
112
121
  def find_by_name_and_platform(name, platform)
113
122
  @specs.detect {|spec| spec.name == name && spec.match_platform(platform) }
114
123
  end
115
124
 
125
+ def delete_by_name_and_version(name, version)
126
+ @specs.reject! {|spec| spec.name == name && spec.version == version }
127
+ @lookup = nil
128
+ @sorted = nil
129
+ end
130
+
116
131
  def what_required(spec)
117
132
  unless req = find {|s| s.dependencies.any? {|d| d.type == :runtime && d.name == spec.name } }
118
133
  return [spec]
@@ -173,13 +188,13 @@ module Bundler
173
188
  @specs.sort_by(&:name).each {|s| yield s }
174
189
  end
175
190
 
176
- def specs_for_dependency(dep, match_current_platform)
191
+ def specs_for_dependency(dep, platform)
177
192
  specs_for_name = lookup[dep.name]
178
- if match_current_platform
179
- GemHelpers.select_best_platform_match(specs_for_name.select {|s| Gem::Platform.match_spec?(s) }, Bundler.local_platform)
193
+ if platform.nil?
194
+ matching_specs = specs_for_name.map {|s| s.materialize_for_installation if Gem::Platform.match_spec?(s) }.compact
195
+ GemHelpers.sort_best_platform_match(matching_specs, Bundler.local_platform)
180
196
  else
181
- specs_for_name_and_platform = GemHelpers.select_best_platform_match(specs_for_name, dep.force_ruby_platform ? Gem::Platform::RUBY : dep.__platform)
182
- specs_for_name_and_platform.any? ? specs_for_name_and_platform : specs_for_name
197
+ GemHelpers.select_best_platform_match(specs_for_name, dep.force_ruby_platform ? Gem::Platform::RUBY : platform)
183
198
  end
184
199
  end
185
200
 
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: false
2
2
 
3
3
  module Bundler
4
- VERSION = "2.3.18".freeze
4
+ VERSION = "2.3.22".freeze
5
5
 
6
6
  def self.bundler_major_version
7
7
  @bundler_major_version ||= VERSION.split(".").first.to_i
@@ -58,7 +58,7 @@ module Bundler
58
58
  autoload :Installer, File.expand_path("bundler/installer", __dir__)
59
59
  autoload :LazySpecification, File.expand_path("bundler/lazy_specification", __dir__)
60
60
  autoload :LockfileParser, File.expand_path("bundler/lockfile_parser", __dir__)
61
- autoload :MatchPlatform, File.expand_path("bundler/match_platform", __dir__)
61
+ autoload :MatchRemoteMetadata, File.expand_path("bundler/match_remote_metadata", __dir__)
62
62
  autoload :ProcessLock, File.expand_path("bundler/process_lock", __dir__)
63
63
  autoload :RemoteSpecification, File.expand_path("bundler/remote_specification", __dir__)
64
64
  autoload :Resolver, File.expand_path("bundler/resolver", __dir__)
@@ -331,9 +331,9 @@ module Bundler
331
331
  FileUtils.remove_entry_secure(path) if path && File.exist?(path)
332
332
  rescue ArgumentError
333
333
  message = <<EOF
334
- It is a security vulnerability to allow your home directory to be world-writable, and bundler can not continue.
334
+ It is a security vulnerability to allow your home directory to be world-writable, and bundler cannot continue.
335
335
  You should probably consider fixing this issue by running `chmod o-w ~` on *nix.
336
- Please refer to https://ruby-doc.org/stdlib-2.1.2/libdoc/fileutils/rdoc/FileUtils.html#method-c-remove_entry_secure for details.
336
+ Please refer to https://ruby-doc.org/stdlib-3.1.2/libdoc/fileutils/rdoc/FileUtils.html#method-c-remove_entry_secure for details.
337
337
  EOF
338
338
  File.world_writable?(path) ? Bundler.ui.warn(message) : raise
339
339
  raise PathError, "Please fix the world-writable issue with your #{path} directory"
@@ -26,7 +26,7 @@ class Gem::AvailableSet
26
26
  s = o.set
27
27
  when Array
28
28
  s = o.map do |sp,so|
29
- if !sp.kind_of?(Gem::Specification) or !so.kind_of?(Gem::Source)
29
+ if !sp.kind_of?(Gem::Specification) || !so.kind_of?(Gem::Source)
30
30
  raise TypeError, "Array must be in [[spec, source], ...] form"
31
31
  end
32
32
 
@@ -149,8 +149,8 @@ class Gem::AvailableSet
149
149
  @set.reject! do |t|
150
150
  # already locally installed
151
151
  Gem::Specification.any? do |installed_spec|
152
- dep.name == installed_spec.name and
153
- dep.requirement.satisfied_by? installed_spec.version
152
+ dep.name == installed_spec.name &&
153
+ dep.requirement.satisfied_by?(installed_spec.version)
154
154
  end
155
155
  end
156
156
 
@@ -47,7 +47,7 @@ class Gem::BasicSpecification
47
47
  # directory.
48
48
 
49
49
  def gem_build_complete_path # :nodoc:
50
- File.join extension_dir, 'gem.build_complete'
50
+ File.join extension_dir, "gem.build_complete"
51
51
  end
52
52
 
53
53
  ##
@@ -77,7 +77,7 @@ class Gem::BasicSpecification
77
77
 
78
78
  if Gem::Platform::RUBY == platform || Gem::Platform.local === platform
79
79
  warn "Ignoring #{full_name} because its extensions are not built. " +
80
- "Try: gem pristine #{name} --version #{version}"
80
+ "Try: gem pristine #{name} --version #{version}"
81
81
  end
82
82
 
83
83
  return false
@@ -103,7 +103,7 @@ class Gem::BasicSpecification
103
103
 
104
104
  def extensions_dir
105
105
  Gem.default_ext_dir_for(base_dir) ||
106
- File.join(base_dir, 'extensions', Gem::Platform.local.to_s,
106
+ File.join(base_dir, "extensions", Gem::Platform.local.to_s,
107
107
  Gem.extension_api_version)
108
108
  end
109
109
 
@@ -131,7 +131,7 @@ class Gem::BasicSpecification
131
131
  # default Ruby platform.
132
132
 
133
133
  def full_name
134
- if platform == Gem::Platform::RUBY or platform.nil?
134
+ if platform == Gem::Platform::RUBY || platform.nil?
135
135
  "#{name}-#{version}".dup.tap(&Gem::UNTAINT)
136
136
  else
137
137
  "#{name}-#{version}-#{platform}".dup.tap(&Gem::UNTAINT)
@@ -5,9 +5,9 @@
5
5
  # See LICENSE.txt for permissions.
6
6
  #++
7
7
 
8
- require_relative 'optparse'
9
- require_relative 'requirement'
10
- require_relative 'user_interaction'
8
+ require_relative "optparse"
9
+ require_relative "requirement"
10
+ require_relative "user_interaction"
11
11
 
12
12
  ##
13
13
  # Base class for all Gem commands. When creating a new gem command, define
@@ -76,7 +76,7 @@ class Gem::Command
76
76
  when Array
77
77
  @extra_args = value
78
78
  when String
79
- @extra_args = value.split(' ')
79
+ @extra_args = value.split(" ")
80
80
  end
81
81
  end
82
82
 
@@ -159,11 +159,11 @@ class Gem::Command
159
159
  gem = "'#{gem_name}' (#{version})"
160
160
  msg = String.new "Could not find a valid gem #{gem}"
161
161
 
162
- if errors and !errors.empty?
162
+ if errors && !errors.empty?
163
163
  msg << ", here is why:\n"
164
164
  errors.each {|x| msg << " #{x.wordy}\n" }
165
165
  else
166
- if required_by and gem != required_by
166
+ if required_by && gem != required_by
167
167
  msg << " (required by #{required_by}) in any repository"
168
168
  else
169
169
  msg << " in any repository"
@@ -186,7 +186,7 @@ class Gem::Command
186
186
  def get_all_gem_names
187
187
  args = options[:args]
188
188
 
189
- if args.nil? or args.empty?
189
+ if args.nil? || args.empty?
190
190
  raise Gem::CommandLineError,
191
191
  "Please specify at least one gem name (e.g. gem build GEMNAME)"
192
192
  end
@@ -216,7 +216,7 @@ class Gem::Command
216
216
  def get_one_gem_name
217
217
  args = options[:args]
218
218
 
219
- if args.nil? or args.empty?
219
+ if args.nil? || args.empty?
220
220
  raise Gem::CommandLineError,
221
221
  "Please specify a gem name on the command line (e.g. gem build GEMNAME)"
222
222
  end
@@ -554,9 +554,9 @@ class Gem::Command
554
554
  end
555
555
 
556
556
  def configure_options(header, option_list)
557
- return if option_list.nil? or option_list.empty?
557
+ return if option_list.nil? || option_list.empty?
558
558
 
559
- header = header.to_s.empty? ? '' : "#{header} "
559
+ header = header.to_s.empty? ? "" : "#{header} "
560
560
  @parser.separator " #{header}Options:"
561
561
 
562
562
  option_list.each do |args, handler|
@@ -565,7 +565,7 @@ class Gem::Command
565
565
  end
566
566
  end
567
567
 
568
- @parser.separator ''
568
+ @parser.separator ""
569
569
  end
570
570
 
571
571
  ##
@@ -578,22 +578,22 @@ class Gem::Command
578
578
  # ----------------------------------------------------------------
579
579
  # Add the options common to all commands.
580
580
 
581
- add_common_option('-h', '--help',
582
- 'Get help on this command') do |value, options|
581
+ add_common_option("-h", "--help",
582
+ "Get help on this command") do |value, options|
583
583
  options[:help] = true
584
584
  end
585
585
 
586
- add_common_option('-V', '--[no-]verbose',
587
- 'Set the verbose level of output') do |value, options|
586
+ add_common_option("-V", "--[no-]verbose",
587
+ "Set the verbose level of output") do |value, options|
588
588
  # Set us to "really verbose" so the progress meter works
589
- if Gem.configuration.verbose and value
589
+ if Gem.configuration.verbose && value
590
590
  Gem.configuration.verbose = 1
591
591
  else
592
592
  Gem.configuration.verbose = value
593
593
  end
594
594
  end
595
595
 
596
- add_common_option('-q', '--quiet', 'Silence command progress meter') do |value, options|
596
+ add_common_option("-q", "--quiet", "Silence command progress meter") do |value, options|
597
597
  Gem.configuration.verbose = false
598
598
  end
599
599
 
@@ -606,20 +606,20 @@ class Gem::Command
606
606
  # commands. Both options are actually handled before the other
607
607
  # options get parsed.
608
608
 
609
- add_common_option('--config-file FILE',
610
- 'Use this config file instead of default') do
609
+ add_common_option("--config-file FILE",
610
+ "Use this config file instead of default") do
611
611
  end
612
612
 
613
- add_common_option('--backtrace',
614
- 'Show stack backtrace on errors') do
613
+ add_common_option("--backtrace",
614
+ "Show stack backtrace on errors") do
615
615
  end
616
616
 
617
- add_common_option('--debug',
618
- 'Turn on Ruby debugging') do
617
+ add_common_option("--debug",
618
+ "Turn on Ruby debugging") do
619
619
  end
620
620
 
621
- add_common_option('--norc',
622
- 'Avoid loading any .gemrc file') do
621
+ add_common_option("--norc",
622
+ "Avoid loading any .gemrc file") do
623
623
  end
624
624
 
625
625
  # :stopdoc:
@@ -5,9 +5,9 @@
5
5
  # See LICENSE.txt for permissions.
6
6
  #++
7
7
 
8
- require_relative 'command'
9
- require_relative 'user_interaction'
10
- require_relative 'text'
8
+ require_relative "command"
9
+ require_relative "user_interaction"
10
+ require_relative "text"
11
11
 
12
12
  ##
13
13
  # The command manager registers and installs all the individual sub-commands
@@ -73,9 +73,9 @@ class Gem::CommandManager
73
73
  ].freeze
74
74
 
75
75
  ALIAS_COMMANDS = {
76
- 'i' => 'install',
77
- 'login' => 'signin',
78
- 'logout' => 'signout',
76
+ "i" => "install",
77
+ "login" => "signin",
78
+ "logout" => "signout",
79
79
  }.freeze
80
80
 
81
81
  ##
@@ -104,7 +104,7 @@ class Gem::CommandManager
104
104
  # Register all the subcommands supported by the gem command.
105
105
 
106
106
  def initialize
107
- require 'timeout'
107
+ require "timeout"
108
108
  @commands = {}
109
109
 
110
110
  BUILTIN_COMMANDS.each do |name|
@@ -169,10 +169,10 @@ class Gem::CommandManager
169
169
  end
170
170
 
171
171
  case args.first
172
- when '-h', '--help' then
172
+ when "-h", "--help" then
173
173
  say Gem::Command::HELP
174
174
  terminate_interaction 0
175
- when '-v', '--version' then
175
+ when "-v", "--version" then
176
176
  say Gem::VERSION
177
177
  terminate_interaction 0
178
178
  when /^-/ then
@@ -1,29 +1,29 @@
1
1
  # frozen_string_literal: true
2
- require_relative '../command'
3
- require_relative '../package'
4
- require_relative '../version_option'
2
+ require_relative "../command"
3
+ require_relative "../package"
4
+ require_relative "../version_option"
5
5
 
6
6
  class Gem::Commands::BuildCommand < Gem::Command
7
7
  include Gem::VersionOption
8
8
 
9
9
  def initialize
10
- super 'build', 'Build a gem from a gemspec'
10
+ super "build", "Build a gem from a gemspec"
11
11
 
12
12
  add_platform_option
13
13
 
14
- add_option '--force', 'skip validation of the spec' do |value, options|
14
+ add_option "--force", "skip validation of the spec" do |value, options|
15
15
  options[:force] = true
16
16
  end
17
17
 
18
- add_option '--strict', 'consider warnings as errors when validating the spec' do |value, options|
18
+ add_option "--strict", "consider warnings as errors when validating the spec" do |value, options|
19
19
  options[:strict] = true
20
20
  end
21
21
 
22
- add_option '-o', '--output FILE', 'output gem with the given filename' do |value, options|
22
+ add_option "-o", "--output FILE", "output gem with the given filename" do |value, options|
23
23
  options[:output] = value
24
24
  end
25
25
 
26
- add_option '-C PATH', 'Run as if gem build was started in <PATH> instead of the current working directory.' do |value, options|
26
+ add_option "-C PATH", "Run as if gem build was started in <PATH> instead of the current working directory." do |value, options|
27
27
  options[:build_path] = value
28
28
  end
29
29
  end
@@ -1,69 +1,69 @@
1
1
  # frozen_string_literal: true
2
- require_relative '../command'
3
- require_relative '../security'
2
+ require_relative "../command"
3
+ require_relative "../security"
4
4
 
5
5
  class Gem::Commands::CertCommand < Gem::Command
6
6
  def initialize
7
- super 'cert', 'Manage RubyGems certificates and signing settings',
7
+ super "cert", "Manage RubyGems certificates and signing settings",
8
8
  :add => [], :remove => [], :list => [], :build => [], :sign => []
9
9
 
10
- add_option('-a', '--add CERT',
11
- 'Add a trusted certificate.') do |cert_file, options|
10
+ add_option("-a", "--add CERT",
11
+ "Add a trusted certificate.") do |cert_file, options|
12
12
  options[:add] << open_cert(cert_file)
13
13
  end
14
14
 
15
- add_option('-l', '--list [FILTER]',
16
- 'List trusted certificates where the',
17
- 'subject contains FILTER') do |filter, options|
18
- filter ||= ''
15
+ add_option("-l", "--list [FILTER]",
16
+ "List trusted certificates where the",
17
+ "subject contains FILTER") do |filter, options|
18
+ filter ||= ""
19
19
 
20
20
  options[:list] << filter
21
21
  end
22
22
 
23
- add_option('-r', '--remove FILTER',
24
- 'Remove trusted certificates where the',
25
- 'subject contains FILTER') do |filter, options|
23
+ add_option("-r", "--remove FILTER",
24
+ "Remove trusted certificates where the",
25
+ "subject contains FILTER") do |filter, options|
26
26
  options[:remove] << filter
27
27
  end
28
28
 
29
- add_option('-b', '--build EMAIL_ADDR',
30
- 'Build private key and self-signed',
31
- 'certificate for EMAIL_ADDR') do |email_address, options|
29
+ add_option("-b", "--build EMAIL_ADDR",
30
+ "Build private key and self-signed",
31
+ "certificate for EMAIL_ADDR") do |email_address, options|
32
32
  options[:build] << email_address
33
33
  end
34
34
 
35
- add_option('-C', '--certificate CERT',
36
- 'Signing certificate for --sign') do |cert_file, options|
35
+ add_option("-C", "--certificate CERT",
36
+ "Signing certificate for --sign") do |cert_file, options|
37
37
  options[:issuer_cert] = open_cert(cert_file)
38
38
  options[:issuer_cert_file] = cert_file
39
39
  end
40
40
 
41
- add_option('-K', '--private-key KEY',
42
- 'Key for --sign or --build') do |key_file, options|
41
+ add_option("-K", "--private-key KEY",
42
+ "Key for --sign or --build") do |key_file, options|
43
43
  options[:key] = open_private_key(key_file)
44
44
  end
45
45
 
46
- add_option('-A', '--key-algorithm ALGORITHM',
47
- 'Select which key algorithm to use for --build') do |algorithm, options|
46
+ add_option("-A", "--key-algorithm ALGORITHM",
47
+ "Select which key algorithm to use for --build") do |algorithm, options|
48
48
  options[:key_algorithm] = algorithm
49
49
  end
50
50
 
51
- add_option('-s', '--sign CERT',
52
- 'Signs CERT with the key from -K',
53
- 'and the certificate from -C') do |cert_file, options|
51
+ add_option("-s", "--sign CERT",
52
+ "Signs CERT with the key from -K",
53
+ "and the certificate from -C") do |cert_file, options|
54
54
  raise Gem::OptionParser::InvalidArgument, "#{cert_file}: does not exist" unless
55
55
  File.file? cert_file
56
56
 
57
57
  options[:sign] << cert_file
58
58
  end
59
59
 
60
- add_option('-d', '--days NUMBER_OF_DAYS',
61
- 'Days before the certificate expires') do |days, options|
60
+ add_option("-d", "--days NUMBER_OF_DAYS",
61
+ "Days before the certificate expires") do |days, options|
62
62
  options[:expiration_length_days] = days.to_i
63
63
  end
64
64
 
65
- add_option('-R', '--re-sign',
66
- 'Re-signs the certificate from -C with the key from -K') do |resign, options|
65
+ add_option("-R", "--re-sign",
66
+ "Re-signs the certificate from -C with the key from -K") do |resign, options|
67
67
  options[:resign] = resign
68
68
  end
69
69
  end
@@ -93,7 +93,7 @@ class Gem::Commands::CertCommand < Gem::Command
93
93
 
94
94
  def open_private_key(key_file)
95
95
  check_openssl
96
- passphrase = ENV['GEM_PRIVATE_KEY_PASSPHRASE']
96
+ passphrase = ENV["GEM_PRIVATE_KEY_PASSPHRASE"]
97
97
  key = OpenSSL::PKey.read File.read(key_file), passphrase
98
98
  raise Gem::OptionParser::InvalidArgument,
99
99
  "#{key_file}: private key not found" unless key.private?
@@ -152,7 +152,7 @@ class Gem::Commands::CertCommand < Gem::Command
152
152
 
153
153
  def build_cert(email, key) # :nodoc:
154
154
  expiration_length_days = options[:expiration_length_days] ||
155
- Gem.configuration.cert_expiration_length_days
155
+ Gem.configuration.cert_expiration_length_days
156
156
 
157
157
  cert = Gem::Security.create_cert_email(
158
158
  email,
@@ -166,10 +166,10 @@ class Gem::Commands::CertCommand < Gem::Command
166
166
  def build_key # :nodoc:
167
167
  return options[:key] if options[:key]
168
168
 
169
- passphrase = ask_for_password 'Passphrase for your Private Key:'
169
+ passphrase = ask_for_password "Passphrase for your Private Key:"
170
170
  say "\n"
171
171
 
172
- passphrase_confirmation = ask_for_password 'Please repeat the passphrase for your Private Key:'
172
+ passphrase_confirmation = ask_for_password "Please repeat the passphrase for your Private Key:"
173
173
  say "\n"
174
174
 
175
175
  raise Gem::CommandLineError,
@@ -260,7 +260,7 @@ For further reading on signing gems see `ri Gem::Security`.
260
260
  def load_default_key
261
261
  key_file = File.join Gem.default_key_path
262
262
  key = File.read key_file
263
- passphrase = ENV['GEM_PRIVATE_KEY_PASSPHRASE']
263
+ passphrase = ENV["GEM_PRIVATE_KEY_PASSPHRASE"]
264
264
  options[:key] = OpenSSL::PKey.read key, passphrase
265
265
 
266
266
  rescue Errno::ENOENT