rubygems-update 2.7.11 → 3.0.9

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 (359) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +67 -0
  3. data/.travis.yml +24 -18
  4. data/CODE_OF_CONDUCT.md +10 -8
  5. data/CONTRIBUTING.md +148 -0
  6. data/History.txt +458 -8
  7. data/MAINTAINERS.txt +1 -0
  8. data/Manifest.txt +16 -9
  9. data/POLICIES.md +92 -0
  10. data/README.md +53 -26
  11. data/Rakefile +77 -211
  12. data/{UPGRADING.rdoc → UPGRADING.md} +31 -32
  13. data/appveyor.yml +20 -45
  14. data/bin/gem +1 -2
  15. data/bin/update_rubygems +2 -3
  16. data/bundler/CHANGELOG.md +65 -0
  17. data/bundler/bundler.gemspec +7 -1
  18. data/bundler/lib/bundler/build_metadata.rb +1 -1
  19. data/bundler/lib/bundler/cli/add.rb +15 -5
  20. data/bundler/lib/bundler/cli/binstubs.rb +8 -2
  21. data/bundler/lib/bundler/cli/doctor.rb +47 -1
  22. data/bundler/lib/bundler/cli/install.rb +8 -5
  23. data/bundler/lib/bundler/cli/list.rb +41 -5
  24. data/bundler/lib/bundler/cli/outdated.rb +7 -1
  25. data/bundler/lib/bundler/cli/pristine.rb +4 -0
  26. data/bundler/lib/bundler/cli/remove.rb +18 -0
  27. data/bundler/lib/bundler/cli.rb +63 -21
  28. data/bundler/lib/bundler/definition.rb +15 -16
  29. data/bundler/lib/bundler/dependency.rb +2 -2
  30. data/bundler/lib/bundler/dsl.rb +19 -3
  31. data/bundler/lib/bundler/feature_flag.rb +7 -0
  32. data/bundler/lib/bundler/gem_version_promoter.rb +4 -2
  33. data/bundler/lib/bundler/injector.rb +168 -9
  34. data/bundler/lib/bundler/installer/parallel_installer.rb +5 -0
  35. data/bundler/lib/bundler/installer.rb +29 -6
  36. data/bundler/lib/bundler/plugin/events.rb +61 -0
  37. data/bundler/lib/bundler/plugin.rb +10 -3
  38. data/bundler/lib/bundler/resolver.rb +2 -2
  39. data/bundler/lib/bundler/rubygems_gem_installer.rb +7 -0
  40. data/bundler/lib/bundler/runtime.rb +8 -2
  41. data/bundler/lib/bundler/settings/validator.rb +23 -0
  42. data/bundler/lib/bundler/settings.rb +24 -3
  43. data/bundler/lib/bundler/shared_helpers.rb +19 -3
  44. data/bundler/lib/bundler/source/metadata.rb +2 -3
  45. data/bundler/lib/bundler/source.rb +9 -9
  46. data/bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt +1 -0
  47. data/bundler/lib/bundler/version.rb +1 -1
  48. data/bundler/lib/bundler.rb +26 -8
  49. data/bundler/man/bundle-add.ronn +13 -2
  50. data/bundler/man/bundle-config.ronn +21 -0
  51. data/bundler/man/bundle-install.ronn +1 -1
  52. data/bundler/man/bundle-list.ronn +19 -1
  53. data/bundler/man/bundle-outdated.ronn +4 -0
  54. data/bundler/man/bundle-remove.ronn +23 -0
  55. data/bundler/man/bundle-update.ronn +1 -1
  56. data/bundler/man/bundle.ronn +3 -0
  57. data/lib/rubygems/available_set.rb +1 -1
  58. data/lib/rubygems/basic_specification.rb +12 -12
  59. data/lib/rubygems/bundler_version_finder.rb +3 -3
  60. data/lib/rubygems/command.rb +22 -15
  61. data/lib/rubygems/command_manager.rb +22 -5
  62. data/lib/rubygems/commands/build_command.rb +41 -7
  63. data/lib/rubygems/commands/cert_command.rb +45 -24
  64. data/lib/rubygems/commands/check_command.rb +1 -1
  65. data/lib/rubygems/commands/cleanup_command.rb +14 -7
  66. data/lib/rubygems/commands/contents_command.rb +14 -15
  67. data/lib/rubygems/commands/dependency_command.rb +17 -17
  68. data/lib/rubygems/commands/environment_command.rb +20 -1
  69. data/lib/rubygems/commands/fetch_command.rb +2 -3
  70. data/lib/rubygems/commands/generate_index_command.rb +2 -3
  71. data/lib/rubygems/commands/help_command.rb +12 -13
  72. data/lib/rubygems/commands/info_command.rb +33 -0
  73. data/lib/rubygems/commands/install_command.rb +21 -17
  74. data/lib/rubygems/commands/list_command.rb +0 -1
  75. data/lib/rubygems/commands/lock_command.rb +3 -4
  76. data/lib/rubygems/commands/open_command.rb +16 -10
  77. data/lib/rubygems/commands/owner_command.rb +21 -7
  78. data/lib/rubygems/commands/pristine_command.rb +23 -16
  79. data/lib/rubygems/commands/push_command.rb +19 -8
  80. data/lib/rubygems/commands/query_command.rb +24 -24
  81. data/lib/rubygems/commands/rdoc_command.rb +3 -4
  82. data/lib/rubygems/commands/search_command.rb +0 -1
  83. data/lib/rubygems/commands/server_command.rb +1 -2
  84. data/lib/rubygems/commands/setup_command.rb +86 -48
  85. data/lib/rubygems/commands/signin_command.rb +2 -1
  86. data/lib/rubygems/commands/signout_command.rb +2 -2
  87. data/lib/rubygems/commands/sources_command.rb +11 -12
  88. data/lib/rubygems/commands/specification_command.rb +7 -7
  89. data/lib/rubygems/commands/uninstall_command.rb +50 -18
  90. data/lib/rubygems/commands/unpack_command.rb +16 -7
  91. data/lib/rubygems/commands/update_command.rb +28 -23
  92. data/lib/rubygems/commands/which_command.rb +5 -8
  93. data/lib/rubygems/commands/yank_command.rb +1 -2
  94. data/lib/rubygems/compatibility.rb +1 -21
  95. data/lib/rubygems/config_file.rb +36 -36
  96. data/lib/rubygems/core_ext/kernel_require.rb +6 -6
  97. data/lib/rubygems/core_ext/kernel_warn.rb +45 -0
  98. data/lib/rubygems/defaults.rb +31 -19
  99. data/lib/rubygems/dependency.rb +15 -15
  100. data/lib/rubygems/dependency_installer.rb +30 -33
  101. data/lib/rubygems/dependency_list.rb +9 -10
  102. data/lib/rubygems/deprecate.rb +2 -3
  103. data/lib/rubygems/doctor.rb +5 -6
  104. data/lib/rubygems/errors.rb +3 -3
  105. data/lib/rubygems/exceptions.rb +11 -8
  106. data/lib/rubygems/ext/build_error.rb +0 -1
  107. data/lib/rubygems/ext/builder.rb +50 -23
  108. data/lib/rubygems/ext/cmake_builder.rb +2 -2
  109. data/lib/rubygems/ext/configure_builder.rb +2 -3
  110. data/lib/rubygems/ext/ext_conf_builder.rb +8 -7
  111. data/lib/rubygems/ext/rake_builder.rb +16 -18
  112. data/lib/rubygems/ext.rb +0 -1
  113. data/lib/rubygems/gem_runner.rb +2 -2
  114. data/lib/rubygems/gemcutter_utilities.rb +46 -12
  115. data/lib/rubygems/indexer.rb +19 -12
  116. data/lib/rubygems/install_default_message.rb +0 -1
  117. data/lib/rubygems/install_message.rb +0 -1
  118. data/lib/rubygems/install_update_options.rb +3 -29
  119. data/lib/rubygems/installer.rb +97 -55
  120. data/lib/rubygems/installer_test_case.rb +2 -16
  121. data/lib/rubygems/local_remote_options.rb +5 -4
  122. data/lib/rubygems/mock_gem_ui.rb +3 -4
  123. data/lib/rubygems/name_tuple.rb +4 -4
  124. data/lib/rubygems/package/digest_io.rb +3 -4
  125. data/lib/rubygems/package/file_source.rb +3 -4
  126. data/lib/rubygems/package/io_source.rb +1 -2
  127. data/lib/rubygems/package/old.rb +8 -16
  128. data/lib/rubygems/package/source.rb +0 -1
  129. data/lib/rubygems/package/tar_header.rb +13 -4
  130. data/lib/rubygems/package/tar_reader/entry.rb +20 -4
  131. data/lib/rubygems/package/tar_reader.rb +2 -4
  132. data/lib/rubygems/package/tar_test_case.rb +2 -8
  133. data/lib/rubygems/package/tar_writer.rb +13 -15
  134. data/lib/rubygems/package.rb +90 -63
  135. data/lib/rubygems/package_task.rb +0 -1
  136. data/lib/rubygems/path_support.rb +16 -6
  137. data/lib/rubygems/platform.rb +4 -5
  138. data/lib/rubygems/psych_tree.rb +1 -1
  139. data/lib/rubygems/rdoc.rb +2 -313
  140. data/lib/rubygems/remote_fetcher.rb +29 -82
  141. data/lib/rubygems/request/connection_pools.rb +24 -13
  142. data/lib/rubygems/request/http_pool.rb +3 -4
  143. data/lib/rubygems/request/https_pool.rb +1 -3
  144. data/lib/rubygems/request.rb +17 -16
  145. data/lib/rubygems/request_set/gem_dependency_api.rb +46 -49
  146. data/lib/rubygems/request_set/lockfile/parser.rb +18 -29
  147. data/lib/rubygems/request_set/lockfile/tokenizer.rb +9 -9
  148. data/lib/rubygems/request_set/lockfile.rb +12 -12
  149. data/lib/rubygems/request_set.rb +52 -25
  150. data/lib/rubygems/requirement.rb +32 -21
  151. data/lib/rubygems/resolver/activation_request.rb +6 -6
  152. data/lib/rubygems/resolver/api_set.rb +5 -6
  153. data/lib/rubygems/resolver/api_specification.rb +2 -3
  154. data/lib/rubygems/resolver/best_set.rb +5 -6
  155. data/lib/rubygems/resolver/composed_set.rb +5 -6
  156. data/lib/rubygems/resolver/conflict.rb +5 -5
  157. data/lib/rubygems/resolver/current_set.rb +1 -2
  158. data/lib/rubygems/resolver/dependency_request.rb +4 -4
  159. data/lib/rubygems/resolver/git_set.rb +5 -6
  160. data/lib/rubygems/resolver/git_specification.rb +4 -5
  161. data/lib/rubygems/resolver/index_set.rb +5 -6
  162. data/lib/rubygems/resolver/index_specification.rb +3 -4
  163. data/lib/rubygems/resolver/installed_specification.rb +3 -4
  164. data/lib/rubygems/resolver/installer_set.rb +12 -12
  165. data/lib/rubygems/resolver/local_specification.rb +1 -2
  166. data/lib/rubygems/resolver/lock_set.rb +5 -6
  167. data/lib/rubygems/resolver/lock_specification.rb +7 -8
  168. data/lib/rubygems/resolver/requirement_list.rb +1 -1
  169. data/lib/rubygems/resolver/set.rb +2 -2
  170. data/lib/rubygems/resolver/source_set.rb +4 -5
  171. data/lib/rubygems/resolver/spec_specification.rb +1 -2
  172. data/lib/rubygems/resolver/specification.rb +10 -7
  173. data/lib/rubygems/resolver/stats.rb +1 -1
  174. data/lib/rubygems/resolver/vendor_set.rb +4 -5
  175. data/lib/rubygems/resolver/vendor_specification.rb +2 -3
  176. data/lib/rubygems/resolver.rb +14 -16
  177. data/lib/rubygems/s3_uri_signer.rb +183 -0
  178. data/lib/rubygems/safe_yaml.rb +18 -10
  179. data/lib/rubygems/security/policies.rb +1 -2
  180. data/lib/rubygems/security/policy.rb +25 -25
  181. data/lib/rubygems/security/signer.rb +72 -24
  182. data/lib/rubygems/security/trust_dir.rb +10 -10
  183. data/lib/rubygems/security.rb +21 -22
  184. data/lib/rubygems/security_option.rb +0 -1
  185. data/lib/rubygems/server.rb +21 -21
  186. data/lib/rubygems/source/git.rb +9 -10
  187. data/lib/rubygems/source/installed.rb +3 -4
  188. data/lib/rubygems/source/local.rb +7 -7
  189. data/lib/rubygems/source/lock.rb +4 -4
  190. data/lib/rubygems/source/specific_file.rb +5 -5
  191. data/lib/rubygems/source/vendor.rb +2 -3
  192. data/lib/rubygems/source.rb +16 -25
  193. data/lib/rubygems/source_list.rb +2 -2
  194. data/lib/rubygems/source_local.rb +0 -1
  195. data/lib/rubygems/spec_fetcher.rb +5 -6
  196. data/lib/rubygems/specification.rb +219 -558
  197. data/lib/rubygems/specification_policy.rb +407 -0
  198. data/lib/rubygems/stub_specification.rb +12 -17
  199. data/lib/rubygems/test_case.rb +161 -75
  200. data/lib/rubygems/test_utilities.rb +20 -35
  201. data/lib/rubygems/text.rb +6 -6
  202. data/lib/rubygems/uninstaller.rb +38 -27
  203. data/lib/rubygems/uri_formatter.rb +1 -2
  204. data/lib/rubygems/user_interaction.rb +37 -89
  205. data/lib/rubygems/util/licenses.rb +27 -1
  206. data/lib/rubygems/util/list.rb +1 -1
  207. data/lib/rubygems/util.rb +32 -14
  208. data/lib/rubygems/validator.rb +4 -5
  209. data/lib/rubygems/version.rb +15 -15
  210. data/lib/rubygems/version_option.rb +2 -3
  211. data/lib/rubygems.rb +71 -102
  212. data/rubygems-update.gemspec +43 -0
  213. data/setup.rb +2 -8
  214. data/test/rubygems/ca_cert.pem +74 -65
  215. data/test/rubygems/client.pem +103 -45
  216. data/test/rubygems/rubygems_plugin.rb +0 -1
  217. data/test/rubygems/simple_gem.rb +1 -1
  218. data/test/rubygems/ssl_cert.pem +78 -17
  219. data/test/rubygems/ssl_key.pem +25 -13
  220. data/test/rubygems/test_bundled_ca.rb +1 -1
  221. data/test/rubygems/test_config.rb +7 -2
  222. data/test/rubygems/test_gem.rb +205 -132
  223. data/test/rubygems/test_gem_bundler_version_finder.rb +4 -0
  224. data/test/rubygems/test_gem_command.rb +0 -1
  225. data/test/rubygems/test_gem_command_manager.rb +18 -3
  226. data/test/rubygems/test_gem_commands_build_command.rb +220 -15
  227. data/test/rubygems/test_gem_commands_cert_command.rb +69 -8
  228. data/test/rubygems/test_gem_commands_check_command.rb +1 -1
  229. data/test/rubygems/test_gem_commands_cleanup_command.rb +27 -1
  230. data/test/rubygems/test_gem_commands_contents_command.rb +1 -2
  231. data/test/rubygems/test_gem_commands_dependency_command.rb +33 -34
  232. data/test/rubygems/test_gem_commands_environment_command.rb +1 -0
  233. data/test/rubygems/test_gem_commands_fetch_command.rb +0 -1
  234. data/test/rubygems/test_gem_commands_generate_index_command.rb +0 -1
  235. data/test/rubygems/test_gem_commands_help_command.rb +7 -4
  236. data/test/rubygems/test_gem_commands_info_command.rb +44 -0
  237. data/test/rubygems/test_gem_commands_install_command.rb +79 -12
  238. data/test/rubygems/test_gem_commands_lock_command.rb +0 -1
  239. data/test/rubygems/test_gem_commands_open_command.rb +29 -0
  240. data/test/rubygems/test_gem_commands_outdated_command.rb +0 -1
  241. data/test/rubygems/test_gem_commands_owner_command.rb +93 -57
  242. data/test/rubygems/test_gem_commands_pristine_command.rb +65 -30
  243. data/test/rubygems/test_gem_commands_push_command.rb +54 -0
  244. data/test/rubygems/test_gem_commands_query_command.rb +102 -100
  245. data/test/rubygems/test_gem_commands_search_command.rb +0 -1
  246. data/test/rubygems/test_gem_commands_server_command.rb +0 -1
  247. data/test/rubygems/test_gem_commands_setup_command.rb +50 -15
  248. data/test/rubygems/test_gem_commands_signin_command.rb +1 -1
  249. data/test/rubygems/test_gem_commands_sources_command.rb +0 -1
  250. data/test/rubygems/test_gem_commands_specification_command.rb +2 -3
  251. data/test/rubygems/test_gem_commands_stale_command.rb +3 -2
  252. data/test/rubygems/test_gem_commands_uninstall_command.rb +161 -8
  253. data/test/rubygems/test_gem_commands_unpack_command.rb +17 -1
  254. data/test/rubygems/test_gem_commands_update_command.rb +19 -2
  255. data/test/rubygems/test_gem_commands_which_command.rb +0 -1
  256. data/test/rubygems/test_gem_commands_yank_command.rb +0 -1
  257. data/test/rubygems/test_gem_config_file.rb +4 -2
  258. data/test/rubygems/test_gem_dependency.rb +0 -1
  259. data/test/rubygems/test_gem_dependency_installer.rb +8 -5
  260. data/test/rubygems/test_gem_dependency_list.rb +6 -7
  261. data/test/rubygems/test_gem_dependency_resolution_error.rb +0 -1
  262. data/test/rubygems/test_gem_doctor.rb +1 -2
  263. data/test/rubygems/test_gem_ext_builder.rb +10 -23
  264. data/test/rubygems/test_gem_ext_cmake_builder.rb +5 -4
  265. data/test/rubygems/test_gem_ext_configure_builder.rb +3 -3
  266. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +8 -9
  267. data/test/rubygems/test_gem_ext_rake_builder.rb +20 -5
  268. data/test/rubygems/test_gem_gem_runner.rb +0 -1
  269. data/test/rubygems/test_gem_gemcutter_utilities.rb +32 -6
  270. data/test/rubygems/test_gem_impossible_dependencies_error.rb +0 -1
  271. data/test/rubygems/test_gem_indexer.rb +16 -10
  272. data/test/rubygems/test_gem_install_update_options.rb +1 -20
  273. data/test/rubygems/test_gem_installer.rb +154 -119
  274. data/test/rubygems/test_gem_local_remote_options.rb +3 -3
  275. data/test/rubygems/test_gem_name_tuple.rb +0 -1
  276. data/test/rubygems/test_gem_package.rb +77 -31
  277. data/test/rubygems/test_gem_package_old.rb +0 -1
  278. data/test/rubygems/test_gem_package_tar_header.rb +42 -2
  279. data/test/rubygems/test_gem_package_tar_reader.rb +0 -1
  280. data/test/rubygems/test_gem_package_tar_reader_entry.rb +11 -0
  281. data/test/rubygems/test_gem_package_tar_writer.rb +43 -7
  282. data/test/rubygems/test_gem_package_task.rb +2 -2
  283. data/test/rubygems/test_gem_path_support.rb +28 -11
  284. data/test/rubygems/test_gem_platform.rb +4 -5
  285. data/test/rubygems/test_gem_rdoc.rb +1 -136
  286. data/test/rubygems/test_gem_remote_fetcher.rb +241 -141
  287. data/test/rubygems/test_gem_request.rb +9 -9
  288. data/test/rubygems/test_gem_request_connection_pools.rb +24 -3
  289. data/test/rubygems/test_gem_request_set.rb +5 -5
  290. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +82 -64
  291. data/test/rubygems/test_gem_request_set_lockfile.rb +1 -2
  292. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +4 -9
  293. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +1 -1
  294. data/test/rubygems/test_gem_requirement.rb +24 -4
  295. data/test/rubygems/test_gem_resolver.rb +13 -17
  296. data/test/rubygems/test_gem_resolver_activation_request.rb +0 -1
  297. data/test/rubygems/test_gem_resolver_api_set.rb +0 -1
  298. data/test/rubygems/test_gem_resolver_api_specification.rb +0 -1
  299. data/test/rubygems/test_gem_resolver_best_set.rb +0 -1
  300. data/test/rubygems/test_gem_resolver_composed_set.rb +0 -1
  301. data/test/rubygems/test_gem_resolver_conflict.rb +0 -1
  302. data/test/rubygems/test_gem_resolver_dependency_request.rb +0 -1
  303. data/test/rubygems/test_gem_resolver_git_set.rb +0 -1
  304. data/test/rubygems/test_gem_resolver_git_specification.rb +0 -1
  305. data/test/rubygems/test_gem_resolver_index_set.rb +0 -1
  306. data/test/rubygems/test_gem_resolver_index_specification.rb +0 -1
  307. data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -1
  308. data/test/rubygems/test_gem_resolver_installer_set.rb +2 -3
  309. data/test/rubygems/test_gem_resolver_local_specification.rb +0 -1
  310. data/test/rubygems/test_gem_resolver_lock_set.rb +0 -1
  311. data/test/rubygems/test_gem_resolver_lock_specification.rb +0 -1
  312. data/test/rubygems/test_gem_resolver_requirement_list.rb +0 -1
  313. data/test/rubygems/test_gem_resolver_specification.rb +1 -2
  314. data/test/rubygems/test_gem_resolver_vendor_set.rb +0 -1
  315. data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -1
  316. data/test/rubygems/test_gem_security.rb +1 -3
  317. data/test/rubygems/test_gem_security_policy.rb +5 -6
  318. data/test/rubygems/test_gem_security_signer.rb +4 -3
  319. data/test/rubygems/test_gem_security_trust_dir.rb +1 -2
  320. data/test/rubygems/test_gem_server.rb +4 -4
  321. data/test/rubygems/test_gem_source.rb +0 -13
  322. data/test/rubygems/test_gem_source_fetch_problem.rb +0 -1
  323. data/test/rubygems/test_gem_source_git.rb +0 -1
  324. data/test/rubygems/test_gem_source_installed.rb +0 -1
  325. data/test/rubygems/test_gem_source_lock.rb +0 -1
  326. data/test/rubygems/test_gem_source_vendor.rb +0 -1
  327. data/test/rubygems/test_gem_spec_fetcher.rb +0 -1
  328. data/test/rubygems/test_gem_specification.rb +366 -198
  329. data/test/rubygems/test_gem_stream_ui.rb +15 -32
  330. data/test/rubygems/test_gem_stub_specification.rb +0 -2
  331. data/test/rubygems/test_gem_text.rb +4 -0
  332. data/test/rubygems/test_gem_uninstaller.rb +42 -3
  333. data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +0 -1
  334. data/test/rubygems/test_gem_uri_formatter.rb +0 -1
  335. data/test/rubygems/test_gem_util.rb +31 -11
  336. data/test/rubygems/test_gem_validator.rb +0 -1
  337. data/test/rubygems/test_gem_version.rb +11 -11
  338. data/test/rubygems/test_gem_version_option.rb +0 -1
  339. data/test/rubygems/test_remote_fetch_error.rb +0 -1
  340. data/test/rubygems/test_require.rb +67 -52
  341. data/util/CL2notes +1 -2
  342. data/util/ci +20 -12
  343. data/util/cops/deprecations.rb +52 -0
  344. data/util/create_certs.rb +6 -7
  345. data/util/create_certs.sh +27 -0
  346. data/util/create_encrypted_key.rb +4 -5
  347. data/util/patch_with_prs.rb +1 -1
  348. data/util/rubocop +8 -0
  349. data/util/update_bundled_ca_certificates.rb +12 -13
  350. data/util/update_changelog.rb +1 -1
  351. metadata +61 -51
  352. data/.autotest +0 -71
  353. data/.document +0 -5
  354. data/CONTRIBUTING.rdoc +0 -130
  355. data/CVE-2013-4287.txt +0 -35
  356. data/CVE-2013-4363.txt +0 -45
  357. data/CVE-2015-3900.txt +0 -40
  358. data/POLICIES.rdoc +0 -74
  359. data/test/rubygems/fix_openssl_warnings.rb +0 -13
@@ -19,7 +19,7 @@ class Gem::Dependency
19
19
  TYPES = [
20
20
  :development,
21
21
  :runtime,
22
- ]
22
+ ].freeze
23
23
 
24
24
  ##
25
25
  # Dependency name or regular expression.
@@ -36,7 +36,7 @@ class Gem::Dependency
36
36
  # argument can optionally be the dependency type, which defaults to
37
37
  # <tt>:runtime</tt>.
38
38
 
39
- def initialize name, *requirements
39
+ def initialize(name, *requirements)
40
40
  case name
41
41
  when String then # ok
42
42
  when Regexp then
@@ -76,7 +76,7 @@ class Gem::Dependency
76
76
  end
77
77
 
78
78
  def inspect # :nodoc:
79
- if prerelease? then
79
+ if prerelease?
80
80
  "<%s type=%p name=%p requirements=%p prerelease=ok>" %
81
81
  [self.class, self.type, self.name, requirement.to_s]
82
82
  else
@@ -100,7 +100,7 @@ class Gem::Dependency
100
100
  @requirement.none?
101
101
  end
102
102
 
103
- def pretty_print q # :nodoc:
103
+ def pretty_print(q) # :nodoc:
104
104
  q.group 1, 'Gem::Dependency.new(', ')' do
105
105
  q.pp name
106
106
  q.text ','
@@ -152,7 +152,7 @@ class Gem::Dependency
152
152
  end
153
153
 
154
154
  def to_s # :nodoc:
155
- if type != :runtime then
155
+ if type != :runtime
156
156
  "#{name} (#{requirement}, #{type})"
157
157
  else
158
158
  "#{name} (#{requirement})"
@@ -170,7 +170,7 @@ class Gem::Dependency
170
170
  @type == :runtime || !@type
171
171
  end
172
172
 
173
- def == other # :nodoc:
173
+ def ==(other) # :nodoc:
174
174
  Gem::Dependency === other &&
175
175
  self.name == other.name &&
176
176
  self.type == other.type &&
@@ -180,7 +180,7 @@ class Gem::Dependency
180
180
  ##
181
181
  # Dependencies are ordered by name.
182
182
 
183
- def <=> other
183
+ def <=>(other)
184
184
  self.name <=> other.name
185
185
  end
186
186
 
@@ -190,7 +190,7 @@ class Gem::Dependency
190
190
  # other has only an equal version requirement that satisfies this
191
191
  # dependency.
192
192
 
193
- def =~ other
193
+ def =~(other)
194
194
  unless Gem::Dependency === other
195
195
  return unless other.respond_to?(:name) && other.respond_to?(:version)
196
196
  other = Gem::Dependency.new other.name, other.version
@@ -222,7 +222,7 @@ class Gem::Dependency
222
222
  # NOTE: Unlike #matches_spec? this method does not return true when the
223
223
  # version is a prerelease version unless this is a prerelease dependency.
224
224
 
225
- def match? obj, version=nil, allow_prerelease=false
225
+ def match?(obj, version=nil, allow_prerelease=false)
226
226
  if !version
227
227
  name = obj.name
228
228
  version = obj.version
@@ -249,7 +249,7 @@ class Gem::Dependency
249
249
  # returns true when +spec+ is a prerelease version even if this dependency
250
250
  # is not a prerelease dependency.
251
251
 
252
- def matches_spec? spec
252
+ def matches_spec?(spec)
253
253
  return false unless name === spec.name
254
254
  return true if requirement.none?
255
255
 
@@ -259,8 +259,8 @@ class Gem::Dependency
259
259
  ##
260
260
  # Merges the requirements of +other+ into this dependency
261
261
 
262
- def merge other
263
- unless name == other.name then
262
+ def merge(other)
263
+ unless name == other.name
264
264
  raise ArgumentError,
265
265
  "#{self} and #{other} have different names"
266
266
  end
@@ -275,13 +275,13 @@ class Gem::Dependency
275
275
  self.class.new name, self_req.as_list.concat(other_req.as_list)
276
276
  end
277
277
 
278
- def matching_specs platform_only = false
278
+ def matching_specs(platform_only = false)
279
279
  env_req = Gem.env_requirement(name)
280
280
  matches = Gem::Specification.stubs_for(name).find_all { |spec|
281
281
  requirement.satisfied_by?(spec.version) && env_req.satisfied_by?(spec.version)
282
282
  }.map(&:to_spec)
283
283
 
284
- Gem::BundlerVersionFinder.filter!(matches) if name == "bundler".freeze
284
+ Gem::BundlerVersionFinder.filter!(matches) if name == "bundler".freeze && !requirement.specific?
285
285
 
286
286
  if platform_only
287
287
  matches.reject! { |spec|
@@ -304,7 +304,7 @@ class Gem::Dependency
304
304
 
305
305
  # TODO: check Gem.activated_spec[self.name] in case matches falls outside
306
306
 
307
- if matches.empty? then
307
+ if matches.empty?
308
308
  specs = Gem::Specification.stubs_for name
309
309
 
310
310
  if specs.empty?
@@ -15,6 +15,7 @@ require 'rubygems/deprecate'
15
15
  class Gem::DependencyInstaller
16
16
 
17
17
  include Gem::UserInteraction
18
+ extend Gem::Deprecate
18
19
 
19
20
  DEFAULT_OPTIONS = { # :nodoc:
20
21
  :env_shebang => false,
@@ -41,15 +42,6 @@ class Gem::DependencyInstaller
41
42
 
42
43
  attr_reader :errors
43
44
 
44
- ##
45
- #--
46
- # TODO remove, no longer used
47
-
48
- attr_reader :gems_to_install # :nodoc:
49
-
50
- extend Gem::Deprecate
51
- deprecate :gems_to_install, :none, 2016, 10
52
-
53
45
  ##
54
46
  # List of gems installed by #install in alphabetic order
55
47
 
@@ -74,7 +66,7 @@ class Gem::DependencyInstaller
74
66
  # :wrappers:: See Gem::Installer::new
75
67
  # :build_args:: See Gem::Installer::new
76
68
 
77
- def initialize options = {}
69
+ def initialize(options = {})
78
70
  @only_install_dir = !!options[:install_dir]
79
71
  @install_dir = options[:install_dir] || Gem.dir
80
72
  @build_root = options[:build_root]
@@ -97,6 +89,9 @@ class Gem::DependencyInstaller
97
89
  @build_args = options[:build_args]
98
90
  @build_docs_in_background = options[:build_docs_in_background]
99
91
  @install_as_default = options[:install_as_default]
92
+ @dir_mode = options[:dir_mode]
93
+ @data_mode = options[:data_mode]
94
+ @prog_mode = options[:prog_mode]
100
95
 
101
96
  # Indicates that we should not try to update any deps unless
102
97
  # we absolutely must.
@@ -115,7 +110,7 @@ class Gem::DependencyInstaller
115
110
  #--
116
111
  # TODO remove at RubyGems 4, no longer used
117
112
 
118
- def add_found_dependencies to_do, dependency_list # :nodoc:
113
+ def add_found_dependencies(to_do, dependency_list) # :nodoc:
119
114
  seen = {}
120
115
  dependencies = Hash.new { |h, name| h[name] = Gem::Dependency.new name }
121
116
 
@@ -169,8 +164,8 @@ class Gem::DependencyInstaller
169
164
  # Creates an AvailableSet to install from based on +dep_or_name+ and
170
165
  # +version+
171
166
 
172
- def available_set_for dep_or_name, version # :nodoc:
173
- if String === dep_or_name then
167
+ def available_set_for(dep_or_name, version) # :nodoc:
168
+ if String === dep_or_name
174
169
  find_spec_by_name_and_version dep_or_name, version, @prerelease
175
170
  else
176
171
  dep = dep_or_name.dup
@@ -203,7 +198,7 @@ class Gem::DependencyInstaller
203
198
  # sources. Gems are sorted with newer gems preferred over older gems, and
204
199
  # local gems preferred over remote gems.
205
200
 
206
- def find_gems_with_sources dep, best_only=false # :nodoc:
201
+ def find_gems_with_sources(dep, best_only=false) # :nodoc:
207
202
  set = Gem::AvailableSet.new
208
203
 
209
204
  if consider_local?
@@ -218,9 +213,8 @@ class Gem::DependencyInstaller
218
213
 
219
214
  if consider_remote?
220
215
  begin
221
- # TODO this is pulled from #spec_for_dependency to allow
216
+ # This is pulled from #spec_for_dependency to allow
222
217
  # us to filter tuples before fetching specs.
223
- #
224
218
  tuples, errors = Gem::SpecFetcher.fetcher.search_for_dependency dep
225
219
 
226
220
  if best_only && !tuples.empty?
@@ -277,16 +271,16 @@ class Gem::DependencyInstaller
277
271
  # +version+. Returns an Array of specs and sources required for
278
272
  # installation of the gem.
279
273
 
280
- def find_spec_by_name_and_version gem_name,
274
+ def find_spec_by_name_and_version(gem_name,
281
275
  version = Gem::Requirement.default,
282
- prerelease = false
276
+ prerelease = false)
283
277
  set = Gem::AvailableSet.new
284
278
 
285
279
  if consider_local?
286
- if gem_name =~ /\.gem$/ and File.file? gem_name then
280
+ if gem_name =~ /\.gem$/ and File.file? gem_name
287
281
  src = Gem::Source::SpecificFile.new(gem_name)
288
282
  set.add src.spec, src
289
- elsif gem_name =~ /\.gem$/ then
283
+ elsif gem_name =~ /\.gem$/
290
284
  Dir[gem_name].each do |name|
291
285
  begin
292
286
  src = Gem::Source::SpecificFile.new name
@@ -346,7 +340,7 @@ class Gem::DependencyInstaller
346
340
  Gem::Specification.include?(spec)
347
341
  }
348
342
 
349
- unless dependency_list.ok? or @ignore_dependencies or @force then
343
+ unless dependency_list.ok? or @ignore_dependencies or @force
350
344
  reason = dependency_list.why_not_ok?.map { |k,v|
351
345
  "#{k} requires #{v.join(", ")}"
352
346
  }.join("; ")
@@ -357,7 +351,7 @@ class Gem::DependencyInstaller
357
351
  end
358
352
  deprecate :gather_dependencies, :none, 2018, 12
359
353
 
360
- def in_background what # :nodoc:
354
+ def in_background(what) # :nodoc:
361
355
  fork_happened = false
362
356
  if @build_docs_in_background and Process.respond_to?(:fork)
363
357
  begin
@@ -386,7 +380,7 @@ class Gem::DependencyInstaller
386
380
  # c-1.a, b-1 and a-1.a will be installed. b-1.a will need to be installed
387
381
  # separately.
388
382
 
389
- def install dep_or_name, version = Gem::Requirement.default
383
+ def install(dep_or_name, version = Gem::Requirement.default)
390
384
  request_set = resolve_dependencies dep_or_name, version
391
385
 
392
386
  @installed_gems = []
@@ -404,7 +398,10 @@ class Gem::DependencyInstaller
404
398
  :user_install => @user_install,
405
399
  :wrappers => @wrappers,
406
400
  :build_root => @build_root,
407
- :install_as_default => @install_as_default
401
+ :install_as_default => @install_as_default,
402
+ :dir_mode => @dir_mode,
403
+ :data_mode => @data_mode,
404
+ :prog_mode => @prog_mode,
408
405
  }
409
406
  options[:install_dir] = @install_dir if @only_install_dir
410
407
 
@@ -427,16 +424,16 @@ class Gem::DependencyInstaller
427
424
  end
428
425
 
429
426
  def install_development_deps # :nodoc:
430
- if @development and @dev_shallow then
427
+ if @development and @dev_shallow
431
428
  :shallow
432
- elsif @development then
429
+ elsif @development
433
430
  :all
434
431
  else
435
432
  :none
436
433
  end
437
434
  end
438
435
 
439
- def resolve_dependencies dep_or_name, version # :nodoc:
436
+ def resolve_dependencies(dep_or_name, version) # :nodoc:
440
437
  request_set = Gem::RequestSet.new
441
438
  request_set.development = @development
442
439
  request_set.development_shallow = @dev_shallow
@@ -448,11 +445,11 @@ class Gem::DependencyInstaller
448
445
  installer_set.ignore_installed = @only_install_dir
449
446
 
450
447
  if consider_local?
451
- if dep_or_name =~ /\.gem$/ and File.file? dep_or_name then
448
+ if dep_or_name =~ /\.gem$/ and File.file? dep_or_name
452
449
  src = Gem::Source::SpecificFile.new dep_or_name
453
450
  installer_set.add_local dep_or_name, src.spec, src
454
451
  version = src.spec.version if version == Gem::Requirement.default
455
- elsif dep_or_name =~ /\.gem$/ then
452
+ elsif dep_or_name =~ /\.gem$/
456
453
  Dir[dep_or_name].each do |name|
457
454
  begin
458
455
  src = Gem::Source::SpecificFile.new name
@@ -460,14 +457,14 @@ class Gem::DependencyInstaller
460
457
  rescue Gem::Package::FormatError
461
458
  end
462
459
  end
463
- # else This is a dependency. InstallerSet handles this case
460
+ # else This is a dependency. InstallerSet handles this case
464
461
  end
465
462
  end
466
463
 
467
464
  dependency =
468
- if spec = installer_set.local?(dep_or_name) then
465
+ if spec = installer_set.local?(dep_or_name)
469
466
  Gem::Dependency.new spec.name, version
470
- elsif String === dep_or_name then
467
+ elsif String === dep_or_name
471
468
  Gem::Dependency.new dep_or_name, version
472
469
  else
473
470
  dep_or_name
@@ -481,7 +478,7 @@ class Gem::DependencyInstaller
481
478
 
482
479
  request_set.always_install = installer_set.always_install
483
480
 
484
- if @ignore_dependencies then
481
+ if @ignore_dependencies
485
482
  installer_set.ignore_dependencies = true
486
483
  request_set.ignore_dependencies = true
487
484
  request_set.soft_missing = true
@@ -40,7 +40,7 @@ class Gem::DependencyList
40
40
  # Creates a new DependencyList. If +development+ is true, development
41
41
  # dependencies will be included.
42
42
 
43
- def initialize development = false
43
+ def initialize(development = false)
44
44
  @specs = []
45
45
 
46
46
  @development = development
@@ -79,8 +79,8 @@ class Gem::DependencyList
79
79
  seen = {}
80
80
 
81
81
  sorted.each do |spec|
82
- if index = seen[spec.name] then
83
- if result[index].version < spec.version then
82
+ if index = seen[spec.name]
83
+ if result[index].version < spec.version
84
84
  result[index] = spec
85
85
  end
86
86
  else
@@ -114,7 +114,7 @@ class Gem::DependencyList
114
114
  why_not_ok?(:quick).empty?
115
115
  end
116
116
 
117
- def why_not_ok? quick = false
117
+ def why_not_ok?(quick = false)
118
118
  unsatisfied = Hash.new { |h,k| h[k] = [] }
119
119
  each do |spec|
120
120
  spec.runtime_dependencies.each do |dep|
@@ -123,7 +123,7 @@ class Gem::DependencyList
123
123
  dep.requirement.satisfied_by? installed_spec.version
124
124
  }
125
125
 
126
- unless inst or @specs.find { |s| s.satisfies_requirement? dep } then
126
+ unless inst or @specs.find { |s| s.satisfies_requirement? dep }
127
127
  unsatisfied[spec.name] << dep
128
128
  return unsatisfied if quick
129
129
  end
@@ -134,7 +134,7 @@ class Gem::DependencyList
134
134
  end
135
135
 
136
136
  ##
137
- # Is is ok to remove a gemspec from the dependency list?
137
+ # It is ok to remove a gemspec from the dependency list?
138
138
  #
139
139
  # If removing the gemspec creates breaks a currently ok dependency, then it
140
140
  # is NOT ok to remove the gemspec.
@@ -172,7 +172,7 @@ class Gem::DependencyList
172
172
  # satisfy items in +dependencies+ (a hash of gem names to arrays of
173
173
  # dependencies).
174
174
 
175
- def remove_specs_unsatisfied_by dependencies
175
+ def remove_specs_unsatisfied_by(dependencies)
176
176
  specs.reject! { |spec|
177
177
  dep = dependencies[spec.name]
178
178
  dep and not dep.requirement.satisfied_by? spec.version
@@ -200,7 +200,7 @@ class Gem::DependencyList
200
200
  next if spec == other
201
201
 
202
202
  other.dependencies.each do |dep|
203
- if spec.satisfies_requirement? dep then
203
+ if spec.satisfies_requirement? dep
204
204
  result[spec] << other
205
205
  end
206
206
  end
@@ -222,7 +222,7 @@ class Gem::DependencyList
222
222
 
223
223
  dependencies.each do |dep|
224
224
  specs.each do |spec|
225
- if spec.satisfies_requirement? dep then
225
+ if spec.satisfies_requirement? dep
226
226
  yield spec
227
227
  break
228
228
  end
@@ -241,4 +241,3 @@ class Gem::DependencyList
241
241
  end
242
242
 
243
243
  end
244
-
@@ -27,7 +27,7 @@ module Gem::Deprecate
27
27
  @skip ||= false
28
28
  end
29
29
 
30
- def self.skip= v # :nodoc:
30
+ def self.skip=(v) # :nodoc:
31
31
  @skip = v
32
32
  end
33
33
 
@@ -47,7 +47,7 @@ module Gem::Deprecate
47
47
  # telling the user of +repl+ (unless +repl+ is :none) and the
48
48
  # year/month that it is planned to go away.
49
49
 
50
- def deprecate name, repl, year, month
50
+ def deprecate(name, repl, year, month)
51
51
  class_eval {
52
52
  old = "_deprecated_#{name}"
53
53
  alias_method old, name
@@ -68,4 +68,3 @@ module Gem::Deprecate
68
68
  module_function :deprecate, :skip_during
69
69
 
70
70
  end
71
-
@@ -26,7 +26,7 @@ class Gem::Doctor
26
26
  ['doc', ''],
27
27
  ['extensions', ''],
28
28
  ['gems', ''],
29
- ]
29
+ ].freeze
30
30
 
31
31
  missing =
32
32
  Gem::REPOSITORY_SUBDIRECTORIES.sort -
@@ -41,7 +41,7 @@ class Gem::Doctor
41
41
  #
42
42
  # If +dry_run+ is true no files or directories will be removed.
43
43
 
44
- def initialize gem_repository, dry_run = false
44
+ def initialize(gem_repository, dry_run = false)
45
45
  @gem_repository = gem_repository
46
46
  @dry_run = dry_run
47
47
 
@@ -73,7 +73,7 @@ class Gem::Doctor
73
73
 
74
74
  Gem.use_paths @gem_repository.to_s
75
75
 
76
- unless gem_repository? then
76
+ unless gem_repository?
77
77
  say 'This directory does not appear to be a RubyGems repository, ' +
78
78
  'skipping'
79
79
  say
@@ -99,7 +99,7 @@ class Gem::Doctor
99
99
  ##
100
100
  # Removes files in +sub_directory+ with +extension+
101
101
 
102
- def doctor_child sub_directory, extension # :nodoc:
102
+ def doctor_child(sub_directory, extension) # :nodoc:
103
103
  directory = File.join(@gem_repository, sub_directory)
104
104
 
105
105
  Dir.entries(directory).sort.each do |ent|
@@ -115,7 +115,7 @@ class Gem::Doctor
115
115
 
116
116
  type = File.directory?(child) ? 'directory' : 'file'
117
117
 
118
- action = if @dry_run then
118
+ action = if @dry_run
119
119
  'Extra'
120
120
  else
121
121
  FileUtils.rm_r(child)
@@ -129,4 +129,3 @@ class Gem::Doctor
129
129
  end
130
130
 
131
131
  end
132
-
@@ -25,7 +25,7 @@ module Gem
25
25
  # system. Instead of rescuing from this class, make sure to rescue from the
26
26
  # superclass Gem::LoadError to catch all types of load errors.
27
27
  class MissingSpecError < Gem::LoadError
28
- def initialize name, requirement
28
+ def initialize(name, requirement)
29
29
  @name = name
30
30
  @requirement = requirement
31
31
  end
@@ -50,7 +50,7 @@ module Gem
50
50
  class MissingSpecVersionError < MissingSpecError
51
51
  attr_reader :specs
52
52
 
53
- def initialize name, requirement, specs
53
+ def initialize(name, requirement, specs)
54
54
  super(name, requirement)
55
55
  @specs = specs
56
56
  end
@@ -81,7 +81,7 @@ module Gem
81
81
 
82
82
  attr_reader :target
83
83
 
84
- def initialize target, conflicts
84
+ def initialize(target, conflicts)
85
85
  @target = target
86
86
  @conflicts = conflicts
87
87
  @name = target.name
@@ -1,8 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # TODO: the documentation in here is terrible.
3
- #
4
- # Each exception needs a brief description and the scenarios where it is
5
- # likely to be raised
6
2
 
7
3
  require 'rubygems/deprecate'
8
4
 
@@ -36,7 +32,7 @@ class Gem::DependencyResolutionError < Gem::DependencyError
36
32
 
37
33
  attr_reader :conflict
38
34
 
39
- def initialize conflict
35
+ def initialize(conflict)
40
36
  @conflict = conflict
41
37
  a, b = conflicting_dependencies
42
38
 
@@ -56,6 +52,13 @@ class Gem::GemNotInHomeException < Gem::Exception
56
52
  attr_accessor :spec
57
53
  end
58
54
 
55
+ ###
56
+ # Raised when removing a gem with the uninstall command fails
57
+
58
+ class Gem::UninstallError < Gem::Exception
59
+ attr_accessor :spec
60
+ end
61
+
59
62
  class Gem::DocumentError < Gem::Exception; end
60
63
 
61
64
  ##
@@ -70,7 +73,7 @@ class Gem::FilePermissionError < Gem::Exception
70
73
 
71
74
  attr_reader :directory
72
75
 
73
- def initialize directory
76
+ def initialize(directory)
74
77
  @directory = directory
75
78
 
76
79
  super "You don't have write permissions for the #{directory} directory."
@@ -130,7 +133,7 @@ class Gem::ImpossibleDependenciesError < Gem::Exception
130
133
  attr_reader :conflicts
131
134
  attr_reader :request
132
135
 
133
- def initialize request, conflicts
136
+ def initialize(request, conflicts)
134
137
  @request = request
135
138
  @conflicts = conflicts
136
139
 
@@ -242,7 +245,7 @@ class Gem::UnsatisfiableDependencyError < Gem::DependencyError
242
245
  # Creates a new UnsatisfiableDependencyError for the unsatisfiable
243
246
  # Gem::Resolver::DependencyRequest +dep+
244
247
 
245
- def initialize dep, platform_mismatch=nil
248
+ def initialize(dep, platform_mismatch=nil)
246
249
  if platform_mismatch and !platform_mismatch.empty?
247
250
  plats = platform_mismatch.map { |x| x.platform.to_s }.sort.uniq
248
251
  super "Unable to resolve dependency: No match for '#{dep}' on this platform. Found: #{plats.join(', ')}"
@@ -4,4 +4,3 @@
4
4
 
5
5
  class Gem::Ext::BuildError < Gem::InstallError
6
6
  end
7
-