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
@@ -35,7 +35,7 @@ class Gem::Server
35
35
  include ERB::Util
36
36
  include Gem::UserInteraction
37
37
 
38
- SEARCH = <<-ERB
38
+ SEARCH = <<-ERB.freeze
39
39
  <form class="headerSearch" name="headerSearchForm" method="get" action="/rdoc">
40
40
  <div id="search" style="float:right">
41
41
  <label for="q">Filter/Search</label>
@@ -45,7 +45,7 @@ class Gem::Server
45
45
  </form>
46
46
  ERB
47
47
 
48
- DOC_TEMPLATE = <<-'ERB'
48
+ DOC_TEMPLATE = <<-'ERB'.freeze
49
49
  <?xml version="1.0" encoding="iso-8859-1"?>
50
50
  <!DOCTYPE html
51
51
  PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
@@ -129,7 +129,7 @@ class Gem::Server
129
129
  ERB
130
130
 
131
131
  # CSS is copy & paste from rdoc-style.css, RDoc V1.0.1 - 20041108
132
- RDOC_CSS = <<-CSS
132
+ RDOC_CSS = <<-CSS.freeze
133
133
  body {
134
134
  font-family: Verdana,Arial,Helvetica,sans-serif;
135
135
  font-size: 90%;
@@ -339,7 +339,7 @@ div.method-source-code pre { color: #ffdead; overflow: hidden; }
339
339
  .ruby-value { color: #7fffd4; background: transparent; }
340
340
  CSS
341
341
 
342
- RDOC_NO_DOCUMENTATION = <<-'ERB'
342
+ RDOC_NO_DOCUMENTATION = <<-'ERB'.freeze
343
343
  <?xml version="1.0" encoding="iso-8859-1"?>
344
344
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
345
345
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
@@ -373,7 +373,7 @@ div.method-source-code pre { color: #ffdead; overflow: hidden; }
373
373
  </html>
374
374
  ERB
375
375
 
376
- RDOC_SEARCH_TEMPLATE = <<-'ERB'
376
+ RDOC_SEARCH_TEMPLATE = <<-'ERB'.freeze
377
377
  <?xml version="1.0" encoding="iso-8859-1"?>
378
378
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
379
379
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
@@ -450,7 +450,7 @@ div.method-source-code pre { color: #ffdead; overflow: hidden; }
450
450
  @have_rdoc_4_plus = nil
451
451
  end
452
452
 
453
- def add_date res
453
+ def add_date(res)
454
454
  res['date'] = @spec_dirs.map do |spec_dir|
455
455
  File.stat(spec_dir).mtime
456
456
  end.max
@@ -462,8 +462,8 @@ div.method-source-code pre { color: #ffdead; overflow: hidden; }
462
462
  end
463
463
  end
464
464
 
465
- def doc_root gem_name
466
- if have_rdoc_4_plus? then
465
+ def doc_root(gem_name)
466
+ if have_rdoc_4_plus?
467
467
  "/doc_root/#{u gem_name}/"
468
468
  else
469
469
  "/doc_root/#{u gem_name}/rdoc/index.html"
@@ -491,14 +491,14 @@ div.method-source-code pre { color: #ffdead; overflow: hidden; }
491
491
 
492
492
  specs = Marshal.dump specs
493
493
 
494
- if req.path =~ /\.gz$/ then
494
+ if req.path =~ /\.gz$/
495
495
  specs = Gem::Util.gzip specs
496
496
  res['content-type'] = 'application/x-gzip'
497
497
  else
498
498
  res['content-type'] = 'application/octet-stream'
499
499
  end
500
500
 
501
- if req.request_method == 'HEAD' then
501
+ if req.request_method == 'HEAD'
502
502
  res['content-length'] = specs.length
503
503
  else
504
504
  res.body << specs
@@ -509,7 +509,7 @@ div.method-source-code pre { color: #ffdead; overflow: hidden; }
509
509
  # Creates server sockets based on the addresses option. If no addresses
510
510
  # were given a server socket for all interfaces is created.
511
511
 
512
- def listen addresses = @addresses
512
+ def listen(addresses = @addresses)
513
513
  addresses = [nil] unless addresses
514
514
 
515
515
  listeners = 0
@@ -529,14 +529,14 @@ div.method-source-code pre { color: #ffdead; overflow: hidden; }
529
529
  end
530
530
  end
531
531
 
532
- if @server.listeners.empty? then
532
+ if @server.listeners.empty?
533
533
  say "Unable to start a server."
534
534
  say "Check for running servers or your --bind and --port arguments"
535
535
  terminate_interaction 1
536
536
  end
537
537
  end
538
538
 
539
- def prerelease_specs req, res
539
+ def prerelease_specs(req, res)
540
540
  reset_gems
541
541
 
542
542
  res['content-type'] = 'application/x-gzip'
@@ -552,14 +552,14 @@ div.method-source-code pre { color: #ffdead; overflow: hidden; }
552
552
 
553
553
  specs = Marshal.dump specs
554
554
 
555
- if req.path =~ /\.gz$/ then
555
+ if req.path =~ /\.gz$/
556
556
  specs = Gem::Util.gzip specs
557
557
  res['content-type'] = 'application/x-gzip'
558
558
  else
559
559
  res['content-type'] = 'application/octet-stream'
560
560
  end
561
561
 
562
- if req.request_method == 'HEAD' then
562
+ if req.request_method == 'HEAD'
563
563
  res['content-length'] = specs.length
564
564
  else
565
565
  res.body << specs
@@ -579,13 +579,13 @@ div.method-source-code pre { color: #ffdead; overflow: hidden; }
579
579
 
580
580
  selector = full_name.inspect
581
581
 
582
- if specs.empty? then
582
+ if specs.empty?
583
583
  res.status = 404
584
584
  res.body = "No gems found matching #{selector}"
585
- elsif specs.length > 1 then
585
+ elsif specs.length > 1
586
586
  res.status = 500
587
587
  res.body = "Multiple gems found matching #{selector}"
588
- elsif marshal_format then
588
+ elsif marshal_format
589
589
  res['content-type'] = 'application/x-deflate'
590
590
  res.body << Gem.deflate(Marshal.dump(specs.first))
591
591
  end
@@ -818,7 +818,7 @@ div.method-source-code pre { color: #ffdead; overflow: hidden; }
818
818
  '/gems' => '/cache/',
819
819
  }
820
820
 
821
- if have_rdoc_4_plus? then
821
+ if have_rdoc_4_plus?
822
822
  @server.mount '/doc_root', RDoc::Servlet, '/doc_root'
823
823
  else
824
824
  file_handlers['/doc_root'] = '/doc/'
@@ -851,14 +851,14 @@ div.method-source-code pre { color: #ffdead; overflow: hidden; }
851
851
 
852
852
  specs = Marshal.dump specs
853
853
 
854
- if req.path =~ /\.gz$/ then
854
+ if req.path =~ /\.gz$/
855
855
  specs = Gem::Util.gzip specs
856
856
  res['content-type'] = 'application/x-gzip'
857
857
  else
858
858
  res['content-type'] = 'application/octet-stream'
859
859
  end
860
860
 
861
- if req.request_method == 'HEAD' then
861
+ if req.request_method == 'HEAD'
862
862
  res['content-length'] = specs.length
863
863
  else
864
864
  res.body << specs
@@ -50,7 +50,7 @@ class Gem::Source::Git < Gem::Source
50
50
  # repository may contain multiple gems. If +submodules+ is true, submodules
51
51
  # will be checked out when the gem is installed.
52
52
 
53
- def initialize name, repository, reference, submodules = false
53
+ def initialize(name, repository, reference, submodules = false)
54
54
  super repository
55
55
 
56
56
  @name = name
@@ -63,7 +63,7 @@ class Gem::Source::Git < Gem::Source
63
63
  @git = ENV['git'] || 'git'
64
64
  end
65
65
 
66
- def <=> other
66
+ def <=>(other)
67
67
  case other
68
68
  when Gem::Source::Git then
69
69
  0
@@ -77,7 +77,7 @@ class Gem::Source::Git < Gem::Source
77
77
  end
78
78
  end
79
79
 
80
- def == other # :nodoc:
80
+ def ==(other) # :nodoc:
81
81
  super and
82
82
  @name == other.name and
83
83
  @repository == other.repository and
@@ -93,7 +93,7 @@ class Gem::Source::Git < Gem::Source
93
93
 
94
94
  return false unless File.exist? repo_cache_dir
95
95
 
96
- unless File.exist? install_dir then
96
+ unless File.exist? install_dir
97
97
  system @git, 'clone', '--quiet', '--no-checkout',
98
98
  repo_cache_dir, install_dir
99
99
  end
@@ -117,7 +117,7 @@ class Gem::Source::Git < Gem::Source
117
117
  def cache # :nodoc:
118
118
  return unless @remote
119
119
 
120
- if File.exist? repo_cache_dir then
120
+ if File.exist? repo_cache_dir
121
121
  Dir.chdir repo_cache_dir do
122
122
  system @git, 'fetch', '--quiet', '--force', '--tags',
123
123
  @repository, 'refs/heads/*:refs/heads/*'
@@ -145,7 +145,7 @@ class Gem::Source::Git < Gem::Source
145
145
  ##
146
146
  # Nothing to download for git gems
147
147
 
148
- def download full_spec, path # :nodoc:
148
+ def download(full_spec, path) # :nodoc:
149
149
  end
150
150
 
151
151
  ##
@@ -157,7 +157,7 @@ class Gem::Source::Git < Gem::Source
157
157
  File.join base_dir, 'gems', "#{@name}-#{dir_shortref}"
158
158
  end
159
159
 
160
- def pretty_print q # :nodoc:
160
+ def pretty_print(q) # :nodoc:
161
161
  q.group 2, '[Git: ', ']' do
162
162
  q.breakable
163
163
  q.text @repository
@@ -206,7 +206,7 @@ class Gem::Source::Git < Gem::Source
206
206
 
207
207
  Dir.chdir directory do
208
208
  spec = Gem::Specification.load file
209
- if spec then
209
+ if spec
210
210
  spec.base_dir = base_dir
211
211
 
212
212
  spec.extension_dir =
@@ -228,7 +228,7 @@ class Gem::Source::Git < Gem::Source
228
228
  require 'digest' # required here to avoid deadlocking in Gem.activate_bin_path (because digest is a gem on 2.5+)
229
229
 
230
230
  normalized =
231
- if @repository =~ %r%^\w+://(\w+@)?% then
231
+ if @repository =~ %r%^\w+://(\w+@)?%
232
232
  uri = URI(@repository).normalize.to_s.sub %r%/$%,''
233
233
  uri.sub(/\A(\w+)/) { $1.downcase }
234
234
  else
@@ -239,4 +239,3 @@ class Gem::Source::Git < Gem::Source
239
239
  end
240
240
 
241
241
  end
242
-
@@ -11,7 +11,7 @@ class Gem::Source::Installed < Gem::Source
11
11
  ##
12
12
  # Installed sources sort before all other sources
13
13
 
14
- def <=> other
14
+ def <=>(other)
15
15
  case other
16
16
  when Gem::Source::Git,
17
17
  Gem::Source::Lock,
@@ -29,13 +29,12 @@ class Gem::Source::Installed < Gem::Source
29
29
  ##
30
30
  # We don't need to download an installed gem
31
31
 
32
- def download spec, path
32
+ def download(spec, path)
33
33
  nil
34
34
  end
35
35
 
36
- def pretty_print q # :nodoc:
36
+ def pretty_print(q) # :nodoc:
37
37
  q.text '[Installed]'
38
38
  end
39
39
 
40
40
  end
41
-
@@ -15,7 +15,7 @@ class Gem::Source::Local < Gem::Source
15
15
  ##
16
16
  # Local sorts before Gem::Source and after Gem::Source::Installed
17
17
 
18
- def <=> other
18
+ def <=>(other)
19
19
  case other
20
20
  when Gem::Source::Installed,
21
21
  Gem::Source::Lock then
@@ -34,7 +34,7 @@ class Gem::Source::Local < Gem::Source
34
34
  "#<%s specs: %p>" % [self.class, keys]
35
35
  end
36
36
 
37
- def load_specs type # :nodoc:
37
+ def load_specs(type) # :nodoc:
38
38
  @load_specs_names[type] ||= begin
39
39
  names = []
40
40
 
@@ -78,8 +78,8 @@ class Gem::Source::Local < Gem::Source
78
78
  end
79
79
  end
80
80
 
81
- def find_gem gem_name, version = Gem::Requirement.default, # :nodoc:
82
- prerelease = false
81
+ def find_gem(gem_name, version = Gem::Requirement.default, # :nodoc:
82
+ prerelease = false)
83
83
  load_specs :complete
84
84
 
85
85
  found = []
@@ -101,7 +101,7 @@ class Gem::Source::Local < Gem::Source
101
101
  found.max_by { |s| s.version }
102
102
  end
103
103
 
104
- def fetch_spec name # :nodoc:
104
+ def fetch_spec(name) # :nodoc:
105
105
  load_specs :complete
106
106
 
107
107
  if data = @specs[name]
@@ -111,7 +111,7 @@ class Gem::Source::Local < Gem::Source
111
111
  end
112
112
  end
113
113
 
114
- def download spec, cache_dir = nil # :nodoc:
114
+ def download(spec, cache_dir = nil) # :nodoc:
115
115
  load_specs :complete
116
116
 
117
117
  @specs.each do |name, data|
@@ -121,7 +121,7 @@ class Gem::Source::Local < Gem::Source
121
121
  raise Gem::Exception, "Unable to find file for '#{spec.full_name}'"
122
122
  end
123
123
 
124
- def pretty_print q # :nodoc:
124
+ def pretty_print(q) # :nodoc:
125
125
  q.group 2, '[Local gems:', ']' do
126
126
  q.breakable
127
127
  q.seplist @specs.keys do |v|
@@ -15,11 +15,11 @@ class Gem::Source::Lock < Gem::Source
15
15
  # Creates a new Lock source that wraps +source+ and moves it earlier in the
16
16
  # sort list.
17
17
 
18
- def initialize source
18
+ def initialize(source)
19
19
  @wrapped = source
20
20
  end
21
21
 
22
- def <=> other # :nodoc:
22
+ def <=>(other) # :nodoc:
23
23
  case other
24
24
  when Gem::Source::Lock then
25
25
  @wrapped <=> other.wrapped
@@ -30,7 +30,7 @@ class Gem::Source::Lock < Gem::Source
30
30
  end
31
31
  end
32
32
 
33
- def == other # :nodoc:
33
+ def ==(other) # :nodoc:
34
34
  0 == (self <=> other)
35
35
  end
36
36
 
@@ -41,7 +41,7 @@ class Gem::Source::Lock < Gem::Source
41
41
  ##
42
42
  # Delegates to the wrapped source's fetch_spec method.
43
43
 
44
- def fetch_spec name_tuple
44
+ def fetch_spec(name_tuple)
45
45
  @wrapped.fetch_spec name_tuple
46
46
  end
47
47
 
@@ -27,22 +27,22 @@ class Gem::Source::SpecificFile < Gem::Source
27
27
 
28
28
  attr_reader :spec
29
29
 
30
- def load_specs *a # :nodoc:
30
+ def load_specs(*a) # :nodoc:
31
31
  [@name]
32
32
  end
33
33
 
34
- def fetch_spec name # :nodoc:
34
+ def fetch_spec(name) # :nodoc:
35
35
  return @spec if name == @name
36
36
  raise Gem::Exception, "Unable to find '#{name}'"
37
37
  @spec
38
38
  end
39
39
 
40
- def download spec, dir = nil # :nodoc:
40
+ def download(spec, dir = nil) # :nodoc:
41
41
  return @path if spec == @spec
42
42
  raise Gem::Exception, "Unable to download '#{spec.full_name}'"
43
43
  end
44
44
 
45
- def pretty_print q # :nodoc:
45
+ def pretty_print(q) # :nodoc:
46
46
  q.group 2, '[SpecificFile:', ']' do
47
47
  q.breakable
48
48
  q.text @path
@@ -59,7 +59,7 @@ class Gem::Source::SpecificFile < Gem::Source
59
59
  #
60
60
  # Otherwise Gem::Source#<=> is used.
61
61
 
62
- def <=> other
62
+ def <=>(other)
63
63
  case other
64
64
  when Gem::Source::SpecificFile then
65
65
  return nil if @spec.name != other.spec.name
@@ -7,11 +7,11 @@ class Gem::Source::Vendor < Gem::Source::Installed
7
7
  ##
8
8
  # Creates a new Vendor source for a gem that was unpacked at +path+.
9
9
 
10
- def initialize path
10
+ def initialize(path)
11
11
  @uri = path
12
12
  end
13
13
 
14
- def <=> other
14
+ def <=>(other)
15
15
  case other
16
16
  when Gem::Source::Lock then
17
17
  -1
@@ -25,4 +25,3 @@ class Gem::Source::Vendor < Gem::Source::Installed
25
25
  end
26
26
 
27
27
  end
28
-
@@ -16,7 +16,7 @@ class Gem::Source
16
16
  :released => 'specs',
17
17
  :latest => 'latest_specs',
18
18
  :prerelease => 'prerelease_specs',
19
- }
19
+ }.freeze
20
20
 
21
21
  ##
22
22
  # The URI this source will fetch gems from.
@@ -36,15 +36,6 @@ class Gem::Source
36
36
  end
37
37
 
38
38
  @uri = uri
39
- @api_uri = nil
40
- end
41
-
42
- ##
43
- # Use an SRV record on the host to look up the true endpoint for the index.
44
-
45
- def api_uri # :nodoc:
46
- require 'rubygems/remote_fetcher'
47
- @api_uri ||= Gem::RemoteFetcher.fetcher.api_endpoint uri
48
39
  end
49
40
 
50
41
  ##
@@ -77,7 +68,7 @@ class Gem::Source
77
68
  end
78
69
  end
79
70
 
80
- def == other # :nodoc:
71
+ def ==(other) # :nodoc:
81
72
  self.class === other and @uri == other.uri
82
73
  end
83
74
 
@@ -87,9 +78,9 @@ class Gem::Source
87
78
  # Returns a Set that can fetch specifications from this source.
88
79
 
89
80
  def dependency_resolver_set # :nodoc:
90
- return Gem::Resolver::IndexSet.new self if 'file' == api_uri.scheme
81
+ return Gem::Resolver::IndexSet.new self if 'file' == uri.scheme
91
82
 
92
- bundler_api_uri = api_uri + './api/v1/dependencies'
83
+ bundler_api_uri = uri + './api/v1/dependencies'
93
84
 
94
85
  begin
95
86
  fetcher = Gem::RemoteFetcher.fetcher
@@ -97,7 +88,7 @@ class Gem::Source
97
88
  rescue Gem::RemoteFetcher::FetchError
98
89
  Gem::Resolver::IndexSet.new self
99
90
  else
100
- if response.respond_to? :uri then
91
+ if response.respond_to? :uri
101
92
  Gem::Resolver::APISet.new response.uri
102
93
  else
103
94
  Gem::Resolver::APISet.new bundler_api_uri
@@ -135,29 +126,29 @@ class Gem::Source
135
126
  ##
136
127
  # Fetches a specification for the given +name_tuple+.
137
128
 
138
- def fetch_spec name_tuple
129
+ def fetch_spec(name_tuple)
139
130
  fetcher = Gem::RemoteFetcher.fetcher
140
131
 
141
132
  spec_file_name = name_tuple.spec_name
142
133
 
143
- uri = api_uri + "#{Gem::MARSHAL_SPEC_DIR}#{spec_file_name}"
134
+ source_uri = uri + "#{Gem::MARSHAL_SPEC_DIR}#{spec_file_name}"
144
135
 
145
- cache_dir = cache_dir uri
136
+ cache_dir = cache_dir source_uri
146
137
 
147
138
  local_spec = File.join cache_dir, spec_file_name
148
139
 
149
- if File.exist? local_spec then
140
+ if File.exist? local_spec
150
141
  spec = Gem.read_binary local_spec
151
142
  spec = Marshal.load(spec) rescue nil
152
143
  return spec if spec
153
144
  end
154
145
 
155
- uri.path << '.rz'
146
+ source_uri.path << '.rz'
156
147
 
157
- spec = fetcher.fetch_path uri
148
+ spec = fetcher.fetch_path source_uri
158
149
  spec = Gem::Util.inflate spec
159
150
 
160
- if update_cache? then
151
+ if update_cache?
161
152
  FileUtils.mkdir_p cache_dir
162
153
 
163
154
  File.open local_spec, 'wb' do |io|
@@ -184,7 +175,7 @@ class Gem::Source
184
175
  file = FILES[type]
185
176
  fetcher = Gem::RemoteFetcher.fetcher
186
177
  file_name = "#{file}.#{Gem.marshal_version}"
187
- spec_path = api_uri + "#{file_name}.gz"
178
+ spec_path = uri + "#{file_name}.gz"
188
179
  cache_dir = cache_dir spec_path
189
180
  local_file = File.join(cache_dir, file_name)
190
181
  retried = false
@@ -212,15 +203,15 @@ class Gem::Source
212
203
 
213
204
  def download(spec, dir=Dir.pwd)
214
205
  fetcher = Gem::RemoteFetcher.fetcher
215
- fetcher.download spec, api_uri.to_s, dir
206
+ fetcher.download spec, uri.to_s, dir
216
207
  end
217
208
 
218
- def pretty_print q # :nodoc:
209
+ def pretty_print(q) # :nodoc:
219
210
  q.group 2, '[Remote:', ']' do
220
211
  q.breakable
221
212
  q.text @uri.to_s
222
213
 
223
- if api = api_uri
214
+ if api = uri
224
215
  q.breakable
225
216
  q.text 'API URI: '
226
217
  q.text api.to_s
@@ -105,7 +105,7 @@ class Gem::SourceList
105
105
  @sources.empty?
106
106
  end
107
107
 
108
- def == other # :nodoc:
108
+ def ==(other) # :nodoc:
109
109
  to_a == other
110
110
  end
111
111
 
@@ -140,7 +140,7 @@ class Gem::SourceList
140
140
  ##
141
141
  # Deletes +source+ from the source list which may be a Gem::Source or a URI.
142
142
 
143
- def delete source
143
+ def delete(source)
144
144
  if source.kind_of? Gem::Source
145
145
  @sources.delete source
146
146
  else
@@ -5,4 +5,3 @@ require 'rubygems/source_local'
5
5
  unless Gem::Deprecate.skip
6
6
  Kernel.warn "#{Gem.location_of_caller(3).join(':')}: Warning: Requiring rubygems/source_local is deprecated; please use rubygems/source/local instead."
7
7
  end
8
-
@@ -54,7 +54,7 @@ class Gem::SpecFetcher
54
54
  # If you need to retrieve specifications from a different +source+, you can
55
55
  # send it as an argument.
56
56
 
57
- def initialize sources = nil
57
+ def initialize(sources = nil)
58
58
  @sources = sources || Gem.sources
59
59
 
60
60
  @update_cache =
@@ -202,10 +202,10 @@ class Gem::SpecFetcher
202
202
  }.compact
203
203
 
204
204
  matches = if matches.empty? && type != :prerelease
205
- suggest_gems_from_name gem_name, :prerelease
206
- else
207
- matches.uniq.sort_by { |name, dist| dist }
208
- end
205
+ suggest_gems_from_name gem_name, :prerelease
206
+ else
207
+ matches.uniq.sort_by { |name, dist| dist }
208
+ end
209
209
 
210
210
  matches.first(5).map { |name, dist| name }
211
211
  end
@@ -271,4 +271,3 @@ class Gem::SpecFetcher
271
271
  end
272
272
 
273
273
  end
274
-