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
@@ -5,7 +5,7 @@
5
5
  # See LICENSE.txt for permissions.
6
6
  #++
7
7
 
8
- require_relative '../user_interaction'
8
+ require_relative "../user_interaction"
9
9
 
10
10
  class Gem::Ext::Builder
11
11
  include Gem::UserInteraction
@@ -18,29 +18,29 @@ class Gem::Ext::Builder
18
18
  end
19
19
 
20
20
  def self.make(dest_path, results, make_dir = Dir.pwd, sitedir = nil)
21
- unless File.exist? File.join(make_dir, 'Makefile')
22
- raise Gem::InstallError, 'Makefile not found'
21
+ unless File.exist? File.join(make_dir, "Makefile")
22
+ raise Gem::InstallError, "Makefile not found"
23
23
  end
24
24
 
25
25
  # try to find make program from Ruby configure arguments first
26
- RbConfig::CONFIG['configure_args'] =~ /with-make-prog\=(\w+)/
27
- make_program_name = ENV['MAKE'] || ENV['make'] || $1
26
+ RbConfig::CONFIG["configure_args"] =~ /with-make-prog\=(\w+)/
27
+ make_program_name = ENV["MAKE"] || ENV["make"] || $1
28
28
  unless make_program_name
29
- make_program_name = (/mswin/ =~ RUBY_PLATFORM) ? 'nmake' : 'make'
29
+ make_program_name = (/mswin/ =~ RUBY_PLATFORM) ? "nmake" : "make"
30
30
  end
31
31
  make_program = Shellwords.split(make_program_name)
32
32
 
33
33
  # The installation of the bundled gems is failed when DESTDIR is empty in mswin platform.
34
- destdir = (/\bnmake/i !~ make_program_name || ENV['DESTDIR'] && ENV['DESTDIR'] != "") ? 'DESTDIR=%s' % ENV['DESTDIR'] : ''
34
+ destdir = (/\bnmake/i !~ make_program_name || ENV["DESTDIR"] && ENV["DESTDIR"] != "") ? "DESTDIR=%s" % ENV["DESTDIR"] : ""
35
35
 
36
36
  env = [destdir]
37
37
 
38
38
  if sitedir
39
- env << 'sitearchdir=%s' % sitedir
40
- env << 'sitelibdir=%s' % sitedir
39
+ env << "sitearchdir=%s" % sitedir
40
+ env << "sitelibdir=%s" % sitedir
41
41
  end
42
42
 
43
- ['clean', '', 'install'].each do |target|
43
+ ["clean", "", "install"].each do |target|
44
44
  # Pass DESTDIR via command line to override what's in MAKEFLAGS
45
45
  cmd = [
46
46
  *make_program,
@@ -50,7 +50,7 @@ class Gem::Ext::Builder
50
50
  begin
51
51
  run(cmd, results, "make #{target}".rstrip, make_dir)
52
52
  rescue Gem::InstallError
53
- raise unless target == 'clean' # ignore clean failure
53
+ raise unless target == "clean" # ignore clean failure
54
54
  end
55
55
  end
56
56
  end
@@ -59,7 +59,7 @@ class Gem::Ext::Builder
59
59
  verbose = Gem.configuration.really_verbose
60
60
 
61
61
  begin
62
- rubygems_gemdeps, ENV['RUBYGEMS_GEMDEPS'] = ENV['RUBYGEMS_GEMDEPS'], nil
62
+ rubygems_gemdeps, ENV["RUBYGEMS_GEMDEPS"] = ENV["RUBYGEMS_GEMDEPS"], nil
63
63
  if verbose
64
64
  puts("current directory: #{dir}")
65
65
  p(command)
@@ -70,7 +70,7 @@ class Gem::Ext::Builder
70
70
 
71
71
  require "open3"
72
72
  # Set $SOURCE_DATE_EPOCH for the subprocess.
73
- build_env = { 'SOURCE_DATE_EPOCH' => Gem.source_date_epoch_string }.merge(env)
73
+ build_env = { "SOURCE_DATE_EPOCH" => Gem.source_date_epoch_string }.merge(env)
74
74
  output, status = begin
75
75
  Open3.capture2e(build_env, *command, :chdir => dir)
76
76
  rescue => error
@@ -82,7 +82,7 @@ class Gem::Ext::Builder
82
82
  results << output
83
83
  end
84
84
  ensure
85
- ENV['RUBYGEMS_GEMDEPS'] = rubygems_gemdeps
85
+ ENV["RUBYGEMS_GEMDEPS"] = rubygems_gemdeps
86
86
  end
87
87
 
88
88
  unless status.success?
@@ -212,11 +212,11 @@ EOF
212
212
  # Writes +output+ to gem_make.out in the extension install directory.
213
213
 
214
214
  def write_gem_make_out(output) # :nodoc:
215
- destination = File.join @spec.extension_dir, 'gem_make.out'
215
+ destination = File.join @spec.extension_dir, "gem_make.out"
216
216
 
217
217
  FileUtils.mkdir_p @spec.extension_dir
218
218
 
219
- File.open destination, 'wb' do |io|
219
+ File.open destination, "wb" do |io|
220
220
  io.puts output
221
221
  end
222
222
 
@@ -29,14 +29,14 @@ class Gem::Ext::CargoBuilder < Gem::Ext::Builder
29
29
  def build_crate(dest_path, results, args, cargo_dir)
30
30
  env = build_env
31
31
  cmd = cargo_command(cargo_dir, dest_path, args)
32
- runner.call cmd, results, 'cargo', cargo_dir, env
32
+ runner.call cmd, results, "cargo", cargo_dir, env
33
33
 
34
34
  results
35
35
  end
36
36
 
37
37
  def build_env
38
38
  build_env = rb_config_env
39
- build_env["RUBY_STATIC"] = "true" if ruby_static? && ENV.key?('RUBY_STATIC')
39
+ build_env["RUBY_STATIC"] = "true" if ruby_static? && ENV.key?("RUBY_STATIC")
40
40
  build_env
41
41
  end
42
42
 
@@ -46,7 +46,7 @@ class Gem::Ext::CargoBuilder < Gem::Ext::Builder
46
46
 
47
47
  cmd = []
48
48
  cmd += [cargo, "rustc"]
49
- cmd += ["--target", ENV['CARGO_BUILD_TARGET']] if ENV['CARGO_BUILD_TARGET']
49
+ cmd += ["--target", ENV["CARGO_BUILD_TARGET"]] if ENV["CARGO_BUILD_TARGET"]
50
50
  cmd += ["--target-dir", dest_path]
51
51
  cmd += ["--manifest-path", manifest]
52
52
  cmd += ["--lib"]
@@ -144,13 +144,13 @@ class Gem::Ext::CargoBuilder < Gem::Ext::Builder
144
144
  def cargo_dylib_path(dest_path)
145
145
  prefix = so_ext == "dll" ? "" : "lib"
146
146
  path_parts = [dest_path]
147
- path_parts << ENV['CARGO_BUILD_TARGET'] if ENV['CARGO_BUILD_TARGET']
147
+ path_parts << ENV["CARGO_BUILD_TARGET"] if ENV["CARGO_BUILD_TARGET"]
148
148
  path_parts += [profile_target_directory, "#{prefix}#{cargo_crate_name}.#{so_ext}"]
149
149
  File.join(*path_parts)
150
150
  end
151
151
 
152
152
  def cargo_crate_name
153
- spec.metadata.fetch('cargo_crate_name', spec.name).tr('-', '_')
153
+ spec.metadata.fetch("cargo_crate_name", spec.name).tr("-", "_")
154
154
  end
155
155
 
156
156
  def rustc_dynamic_linker_flags(dest_dir)
@@ -297,8 +297,8 @@ class Gem::Ext::CargoBuilder < Gem::Ext::Builder
297
297
 
298
298
  def profile_target_directory
299
299
  case profile
300
- when :release then 'release'
301
- when :dev then 'debug'
300
+ when :release then "release"
301
+ when :dev then "debug"
302
302
  else raise "unknown target directory for profile: #{profile}"
303
303
  end
304
304
  end
@@ -2,8 +2,8 @@
2
2
 
3
3
  class Gem::Ext::CmakeBuilder < Gem::Ext::Builder
4
4
  def self.build(extension, dest_path, results, args=[], lib_dir=nil, cmake_dir=Dir.pwd)
5
- unless File.exist?(File.join(cmake_dir, 'Makefile'))
6
- require_relative '../command'
5
+ unless File.exist?(File.join(cmake_dir, "Makefile"))
6
+ require_relative "../command"
7
7
  cmd = ["cmake", ".", "-DCMAKE_INSTALL_PREFIX=#{dest_path}", *Gem::Command.build_args]
8
8
 
9
9
  run cmd, results, class_name, cmake_dir
@@ -7,7 +7,7 @@
7
7
 
8
8
  class Gem::Ext::ConfigureBuilder < Gem::Ext::Builder
9
9
  def self.build(extension, dest_path, results, args=[], lib_dir=nil, configure_dir=Dir.pwd)
10
- unless File.exist?(File.join(configure_dir, 'Makefile'))
10
+ unless File.exist?(File.join(configure_dir, "Makefile"))
11
11
  cmd = ["sh", "./configure", "--prefix=#{dest_path}", *args]
12
12
 
13
13
  run cmd, results, class_name, configure_dir
@@ -7,8 +7,8 @@
7
7
 
8
8
  class Gem::Ext::ExtConfBuilder < Gem::Ext::Builder
9
9
  def self.build(extension, dest_path, results, args=[], lib_dir=nil, extension_dir=Dir.pwd)
10
- require 'fileutils'
11
- require 'tempfile'
10
+ require "fileutils"
11
+ require "tempfile"
12
12
 
13
13
  tmp_dest = Dir.mktmpdir(".gem.", extension_dir)
14
14
 
@@ -22,16 +22,16 @@ class Gem::Ext::ExtConfBuilder < Gem::Ext::Builder
22
22
 
23
23
  begin
24
24
  require "shellwords"
25
- cmd = Gem.ruby.shellsplit << "-I" << File.expand_path('../..', __dir__) << File.basename(extension)
25
+ cmd = Gem.ruby.shellsplit << "-I" << File.expand_path("../..", __dir__) << File.basename(extension)
26
26
  cmd.push(*args)
27
27
 
28
28
  run(cmd, results, class_name, extension_dir) do |s, r|
29
- mkmf_log = File.join(extension_dir, 'mkmf.log')
29
+ mkmf_log = File.join(extension_dir, "mkmf.log")
30
30
  if File.exist? mkmf_log
31
31
  unless s.success?
32
32
  r << "To see why this extension failed to compile, please check" \
33
33
  " the mkmf.log which can be found here:\n"
34
- r << " " + File.join(dest_path, 'mkmf.log') + "\n"
34
+ r << " " + File.join(dest_path, "mkmf.log") + "\n"
35
35
  end
36
36
  FileUtils.mv mkmf_log, dest_path
37
37
  end
@@ -44,7 +44,7 @@ class Gem::Ext::ExtConfBuilder < Gem::Ext::Builder
44
44
  full_tmp_dest = File.join(extension_dir, tmp_dest_relative)
45
45
 
46
46
  # TODO remove in RubyGems 4
47
- if Gem.install_extension_in_lib and lib_dir
47
+ if Gem.install_extension_in_lib && lib_dir
48
48
  FileUtils.mkdir_p lib_dir
49
49
  entries = Dir.entries(full_tmp_dest) - %w[. ..]
50
50
  entries = entries.map {|entry| File.join full_tmp_dest, entry }
@@ -53,7 +53,7 @@ class Gem::Ext::ExtConfBuilder < Gem::Ext::Builder
53
53
 
54
54
  FileUtils::Entry_.new(full_tmp_dest).traverse do |ent|
55
55
  destent = ent.class.new(dest_path, ent.rel)
56
- destent.exist? or FileUtils.mv(ent.path, destent.path)
56
+ destent.exist? || FileUtils.mv(ent.path, destent.path)
57
57
  end
58
58
  ensure
59
59
  ENV["DESTDIR"] = destdir
@@ -67,7 +67,7 @@ class Gem::Ext::ExtConfBuilder < Gem::Ext::Builder
67
67
  private
68
68
 
69
69
  def self.get_relative_path(path, base)
70
- path[0..base.length - 1] = '.' if path.start_with?(base)
70
+ path[0..base.length - 1] = "." if path.start_with?(base)
71
71
  path
72
72
  end
73
73
  end
@@ -11,16 +11,16 @@ class Gem::Ext::RakeBuilder < Gem::Ext::Builder
11
11
  run([Gem.ruby, File.basename(extension), *args], results, class_name, extension_dir)
12
12
  end
13
13
 
14
- rake = ENV['rake']
14
+ rake = ENV["rake"]
15
15
 
16
16
  if rake
17
17
  require "shellwords"
18
18
  rake = rake.shellsplit
19
19
  else
20
20
  begin
21
- rake = [Gem.ruby, "-I#{File.expand_path("../..", __dir__)}", "-rrubygems", Gem.bin_path('rake', 'rake')]
21
+ rake = [Gem.ruby, "-I#{File.expand_path("../..", __dir__)}", "-rrubygems", Gem.bin_path("rake", "rake")]
22
22
  rescue Gem::Exception
23
- rake = [Gem.default_exec_format % 'rake']
23
+ rake = [Gem.default_exec_format % "rake"]
24
24
  end
25
25
  end
26
26
 
data/lib/rubygems/ext.rb CHANGED
@@ -10,10 +10,10 @@
10
10
 
11
11
  module Gem::Ext; end
12
12
 
13
- require_relative 'ext/build_error'
14
- require_relative 'ext/builder'
15
- require_relative 'ext/configure_builder'
16
- require_relative 'ext/ext_conf_builder'
17
- require_relative 'ext/rake_builder'
18
- require_relative 'ext/cmake_builder'
19
- require_relative 'ext/cargo_builder'
13
+ require_relative "ext/build_error"
14
+ require_relative "ext/builder"
15
+ require_relative "ext/configure_builder"
16
+ require_relative "ext/ext_conf_builder"
17
+ require_relative "ext/rake_builder"
18
+ require_relative "ext/cmake_builder"
19
+ require_relative "ext/cargo_builder"
@@ -5,9 +5,9 @@
5
5
  # See LICENSE.txt for permissions.
6
6
  #++
7
7
 
8
- require_relative '../rubygems'
9
- require_relative 'command_manager'
10
- require_relative 'deprecate'
8
+ require_relative "../rubygems"
9
+ require_relative "command_manager"
10
+ require_relative "deprecate"
11
11
 
12
12
  ##
13
13
  # Run an instance of the gem program.
@@ -41,7 +41,7 @@ class Gem::GemRunner
41
41
  config_args = Gem.configuration[command_name]
42
42
  config_args = case config_args
43
43
  when String
44
- config_args.split ' '
44
+ config_args.split " "
45
45
  else
46
46
  Array(config_args)
47
47
  end
@@ -56,7 +56,7 @@ class Gem::GemRunner
56
56
  # other arguments in the list.
57
57
 
58
58
  def extract_build_args(args) # :nodoc:
59
- return [] unless offset = args.index('--')
59
+ return [] unless offset = args.index("--")
60
60
 
61
61
  build_args = args.slice!(offset...args.length)
62
62
 
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
- require_relative 'remote_fetcher'
3
- require_relative 'text'
2
+ require_relative "remote_fetcher"
3
+ require_relative "text"
4
4
 
5
5
  ##
6
6
  # Utility methods for using the RubyGems API.
@@ -19,8 +19,8 @@ module Gem::GemcutterUtilities
19
19
  # Add the --key option
20
20
 
21
21
  def add_key_option
22
- add_option('-k', '--key KEYNAME', Symbol,
23
- 'Use the given API key',
22
+ add_option("-k", "--key KEYNAME", Symbol,
23
+ "Use the given API key",
24
24
  "from #{Gem.configuration.credentials_path}") do |value,options|
25
25
  options[:key] = value
26
26
  end
@@ -30,9 +30,9 @@ module Gem::GemcutterUtilities
30
30
  # Add the --otp option
31
31
 
32
32
  def add_otp_option
33
- add_option('--otp CODE',
34
- 'Digit code for multifactor authentication',
35
- 'You can also use the environment variable GEM_HOST_OTP_CODE') do |value, options|
33
+ add_option("--otp CODE",
34
+ "Digit code for multifactor authentication",
35
+ "You can also use the environment variable GEM_HOST_OTP_CODE") do |value, options|
36
36
  options[:otp] = value
37
37
  end
38
38
  end
@@ -69,9 +69,9 @@ module Gem::GemcutterUtilities
69
69
 
70
70
  @host ||=
71
71
  begin
72
- env_rubygems_host = ENV['RUBYGEMS_HOST']
72
+ env_rubygems_host = ENV["RUBYGEMS_HOST"]
73
73
  env_rubygems_host = nil if
74
- env_rubygems_host and env_rubygems_host.empty?
74
+ env_rubygems_host && env_rubygems_host.empty?
75
75
 
76
76
  env_rubygems_host || configured_host
77
77
  end
@@ -83,7 +83,7 @@ module Gem::GemcutterUtilities
83
83
  # If +allowed_push_host+ metadata is present, then it will only allow that host.
84
84
 
85
85
  def rubygems_api_request(method, path, host = nil, allowed_push_host = nil, scope: nil, &block)
86
- require 'net/http'
86
+ require "net/http"
87
87
 
88
88
  self.host = host if host
89
89
  unless self.host
@@ -118,7 +118,7 @@ module Gem::GemcutterUtilities
118
118
  end
119
119
 
120
120
  def mfa_unauthorized?(response)
121
- response.kind_of?(Net::HTTPUnauthorized) && response.body.start_with?('You have enabled multifactor authentication')
121
+ response.kind_of?(Net::HTTPUnauthorized) && response.body.start_with?("You have enabled multifactor authentication")
122
122
  end
123
123
 
124
124
  def update_scope(scope)
@@ -163,8 +163,12 @@ module Gem::GemcutterUtilities
163
163
 
164
164
  key_name = get_key_name(scope)
165
165
  scope_params = get_scope_params(scope)
166
- mfa_params = get_mfa_params(email, password)
166
+ profile = get_user_profile(email, password)
167
+ mfa_params = get_mfa_params(profile)
167
168
  all_params = scope_params.merge(mfa_params)
169
+ warning = profile["warning"]
170
+
171
+ say "#{warning}\n" if warning
168
172
 
169
173
  response = rubygems_api_request(:post, "api/v1/api_key",
170
174
  sign_in_host, scope: scope) do |request|
@@ -240,13 +244,13 @@ module Gem::GemcutterUtilities
240
244
  end
241
245
 
242
246
  def ask_otp
243
- say 'You have enabled multi-factor authentication. Please enter OTP code.'
244
- options[:otp] = ask 'Code: '
247
+ say "You have enabled multi-factor authentication. Please enter OTP code."
248
+ options[:otp] = ask "Code: "
245
249
  end
246
250
 
247
251
  def pretty_host(host)
248
252
  if default_host?
249
- 'RubyGems.org'
253
+ "RubyGems.org"
250
254
  else
251
255
  host
252
256
  end
@@ -273,29 +277,28 @@ module Gem::GemcutterUtilities
273
277
  self.host == Gem::DEFAULT_HOST
274
278
  end
275
279
 
276
- def get_mfa_params(email, password)
280
+ def get_user_profile(email, password)
277
281
  return {} unless default_host?
278
282
 
279
- mfa_level = get_user_mfa_level(email, password)
280
- params = {}
281
- if mfa_level == "ui_only" || mfa_level == "ui_and_gem_signin"
282
- selected = ask_yes_no("Would you like to enable MFA for this key? (strongly recommended)")
283
- params["mfa"] = true if selected
284
- end
285
- params
286
- end
287
-
288
- def get_user_mfa_level(email, password)
289
283
  response = rubygems_api_request(:get, "api/v1/profile/me.yaml") do |request|
290
284
  request.basic_auth email, password
291
285
  end
292
286
 
293
287
  with_response response do |resp|
294
- body = Gem::SafeYAML.load clean_text(resp.body)
295
- body["mfa"]
288
+ Gem::SafeYAML.load clean_text(resp.body)
296
289
  end
297
290
  end
298
291
 
292
+ def get_mfa_params(profile)
293
+ mfa_level = profile["mfa"]
294
+ params = {}
295
+ if mfa_level == "ui_only" || mfa_level == "ui_and_gem_signin"
296
+ selected = ask_yes_no("Would you like to enable MFA for this key? (strongly recommended)")
297
+ params["mfa"] = true if selected
298
+ end
299
+ params
300
+ end
301
+
299
302
  def get_key_name(scope)
300
303
  hostname = Socket.gethostname || "unknown-host"
301
304
  user = ENV["USER"] || ENV["USERNAME"] || "unknown-user"
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
- require_relative '../rubygems'
3
- require_relative 'package'
4
- require 'tmpdir'
2
+ require_relative "../rubygems"
3
+ require_relative "package"
4
+ require "tmpdir"
5
5
 
6
6
  ##
7
7
  # Top level class for building the gem repository index.
@@ -43,28 +43,28 @@ class Gem::Indexer
43
43
  # Create an indexer that will index the gems in +directory+.
44
44
 
45
45
  def initialize(directory, options = {})
46
- require 'fileutils'
47
- require 'tmpdir'
48
- require 'zlib'
46
+ require "fileutils"
47
+ require "tmpdir"
48
+ require "zlib"
49
49
 
50
50
  options = { :build_modern => true }.merge options
51
51
 
52
52
  @build_modern = options[:build_modern]
53
53
 
54
54
  @dest_directory = directory
55
- @directory = Dir.mktmpdir 'gem_generate_index'
55
+ @directory = Dir.mktmpdir "gem_generate_index"
56
56
 
57
57
  marshal_name = "Marshal.#{Gem.marshal_version}"
58
58
 
59
- @master_index = File.join @directory, 'yaml'
59
+ @master_index = File.join @directory, "yaml"
60
60
  @marshal_index = File.join @directory, marshal_name
61
61
 
62
- @quick_dir = File.join @directory, 'quick'
62
+ @quick_dir = File.join @directory, "quick"
63
63
  @quick_marshal_dir = File.join @quick_dir, marshal_name
64
64
  @quick_marshal_dir_base = File.join "quick", marshal_name # FIX: UGH
65
65
 
66
- @quick_index = File.join @quick_dir, 'index'
67
- @latest_index = File.join @quick_dir, 'latest_index'
66
+ @quick_index = File.join @quick_dir, "index"
67
+ @latest_index = File.join @quick_dir, "latest_index"
68
68
 
69
69
  @specs_index = File.join @directory, "specs.#{Gem.marshal_version}"
70
70
  @latest_specs_index =
@@ -104,7 +104,7 @@ class Gem::Indexer
104
104
 
105
105
  files = []
106
106
 
107
- Gem.time 'Generated Marshal quick index gemspecs' do
107
+ Gem.time "Generated Marshal quick index gemspecs" do
108
108
  specs.each do |spec|
109
109
  next if spec.default_gem?
110
110
  spec_file_name = "#{spec.original_name}.gemspec.rz"
@@ -112,7 +112,7 @@ class Gem::Indexer
112
112
 
113
113
  marshal_zipped = Gem.deflate Marshal.dump(spec)
114
114
 
115
- File.open marshal_name, 'wb' do |io|
115
+ File.open marshal_name, "wb" do |io|
116
116
  io.write marshal_zipped
117
117
  end
118
118
 
@@ -136,7 +136,7 @@ class Gem::Indexer
136
136
  say "Generating #{name} index"
137
137
 
138
138
  Gem.time "Generated #{name} index" do
139
- File.open(file, 'wb') do |io|
139
+ File.open(file, "wb") do |io|
140
140
  specs = index.map do |*spec|
141
141
  # We have to splat here because latest_specs is an array, while the
142
142
  # others are hashes.
@@ -149,7 +149,7 @@ class Gem::Indexer
149
149
  next
150
150
  end
151
151
 
152
- platform = Gem::Platform::RUBY if platform.nil? or platform.empty?
152
+ platform = Gem::Platform::RUBY if platform.nil? || platform.empty?
153
153
  [spec.name, spec.version, platform]
154
154
  end
155
155
 
@@ -169,10 +169,10 @@ class Gem::Indexer
169
169
  latest_specs =
170
170
  Gem::Specification._latest_specs specs
171
171
 
172
- build_modern_index(released.sort, @specs_index, 'specs')
173
- build_modern_index(latest_specs.sort, @latest_specs_index, 'latest specs')
172
+ build_modern_index(released.sort, @specs_index, "specs")
173
+ build_modern_index(latest_specs.sort, @latest_specs_index, "latest specs")
174
174
  build_modern_index(prerelease.sort, @prerelease_specs_index,
175
- 'prerelease specs')
175
+ "prerelease specs")
176
176
 
177
177
  @files += [@specs_index,
178
178
  "#{@specs_index}.gz",
@@ -217,7 +217,7 @@ class Gem::Indexer
217
217
  def compress_indices
218
218
  say "Compressing indices"
219
219
 
220
- Gem.time 'Compressed indices' do
220
+ Gem.time "Compressed indices" do
221
221
  if @build_modern
222
222
  gzip @specs_index
223
223
  gzip @latest_specs_index
@@ -252,7 +252,7 @@ class Gem::Indexer
252
252
 
253
253
  zipped = Gem.deflate data
254
254
 
255
- File.open "#{filename}.#{extension}", 'wb' do |io|
255
+ File.open "#{filename}.#{extension}", "wb" do |io|
256
256
  io.write zipped
257
257
  end
258
258
  end
@@ -296,7 +296,7 @@ class Gem::Indexer
296
296
  files = @files
297
297
  files.delete @quick_marshal_dir if files.include? @quick_dir
298
298
 
299
- if files.include? @quick_marshal_dir and not files.include? @quick_dir
299
+ if files.include?(@quick_marshal_dir) && !files.include?(@quick_dir)
300
300
  files.delete @quick_marshal_dir
301
301
 
302
302
  dst_name = File.join(@dest_directory, @quick_marshal_dir_base)
@@ -308,7 +308,7 @@ class Gem::Indexer
308
308
  end
309
309
 
310
310
  files = files.map do |path|
311
- path.sub(/^#{Regexp.escape @directory}\/?/, '') # HACK?
311
+ path.sub(/^#{Regexp.escape @directory}\/?/, "") # HACK?
312
312
  end
313
313
 
314
314
  files.each do |file|
@@ -358,7 +358,7 @@ class Gem::Indexer
358
358
  end
359
359
 
360
360
  if updated_gems.empty?
361
- say 'No new gems'
361
+ say "No new gems"
362
362
  terminate_interaction 0
363
363
  end
364
364
 
@@ -367,7 +367,7 @@ class Gem::Indexer
367
367
 
368
368
  files = build_marshal_gemspecs specs
369
369
 
370
- Gem.time 'Updated indexes' do
370
+ Gem.time "Updated indexes" do
371
371
  update_specs_index released, @dest_specs_index, @specs_index
372
372
  update_specs_index released, @dest_latest_specs_index, @latest_specs_index
373
373
  update_specs_index(prerelease,
@@ -389,7 +389,7 @@ class Gem::Indexer
389
389
  files << "#{@prerelease_specs_index}.gz"
390
390
 
391
391
  files = files.map do |path|
392
- path.sub(/^#{Regexp.escape @directory}\/?/, '') # HACK?
392
+ path.sub(/^#{Regexp.escape @directory}\/?/, "") # HACK?
393
393
  end
394
394
 
395
395
  files.each do |file|
@@ -414,13 +414,13 @@ class Gem::Indexer
414
414
 
415
415
  index.each do |spec|
416
416
  platform = spec.original_platform
417
- platform = Gem::Platform::RUBY if platform.nil? or platform.empty?
417
+ platform = Gem::Platform::RUBY if platform.nil? || platform.empty?
418
418
  specs_index << [spec.name, spec.version, platform]
419
419
  end
420
420
 
421
421
  specs_index = compact_specs specs_index.uniq.sort
422
422
 
423
- File.open dest, 'wb' do |io|
423
+ File.open dest, "wb" do |io|
424
424
  Marshal.dump specs_index, io
425
425
  end
426
426
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
- require_relative '../rubygems'
3
- require_relative 'user_interaction'
2
+ require_relative "../rubygems"
3
+ require_relative "user_interaction"
4
4
 
5
5
  ##
6
6
  # A post-install hook that displays "Successfully installed
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
- require_relative '../rubygems'
3
- require_relative 'user_interaction'
2
+ require_relative "../rubygems"
3
+ require_relative "user_interaction"
4
4
 
5
5
  ##
6
6
  # A default post-install hook that displays "Successfully installed