rubygems-update 2.7.11 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of rubygems-update might be problematic. Click here for more details.

Files changed (350) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +66 -0
  3. data/.travis.yml +22 -18
  4. data/CONTRIBUTING.md +141 -0
  5. data/History.txt +289 -19
  6. data/MAINTAINERS.txt +1 -0
  7. data/Manifest.txt +16 -11
  8. data/POLICIES.md +92 -0
  9. data/README.md +47 -26
  10. data/Rakefile +47 -207
  11. data/{UPGRADING.rdoc → UPGRADING.md} +31 -32
  12. data/appveyor.yml +20 -45
  13. data/bin/gem +1 -2
  14. data/bin/update_rubygems +2 -3
  15. data/bundler/CHANGELOG.md +54 -0
  16. data/bundler/bundler.gemspec +7 -1
  17. data/bundler/lib/bundler.rb +26 -8
  18. data/bundler/lib/bundler/build_metadata.rb +2 -2
  19. data/bundler/lib/bundler/cli.rb +63 -21
  20. data/bundler/lib/bundler/cli/add.rb +15 -5
  21. data/bundler/lib/bundler/cli/binstubs.rb +8 -2
  22. data/bundler/lib/bundler/cli/doctor.rb +47 -1
  23. data/bundler/lib/bundler/cli/install.rb +8 -5
  24. data/bundler/lib/bundler/cli/list.rb +41 -5
  25. data/bundler/lib/bundler/cli/outdated.rb +7 -1
  26. data/bundler/lib/bundler/cli/pristine.rb +4 -0
  27. data/bundler/lib/bundler/cli/remove.rb +18 -0
  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.rb +29 -6
  35. data/bundler/lib/bundler/installer/parallel_installer.rb +5 -0
  36. data/bundler/lib/bundler/plugin.rb +10 -3
  37. data/bundler/lib/bundler/plugin/events.rb +61 -0
  38. data/bundler/lib/bundler/resolver.rb +2 -2
  39. data/bundler/lib/bundler/runtime.rb +8 -2
  40. data/bundler/lib/bundler/settings.rb +24 -3
  41. data/bundler/lib/bundler/settings/validator.rb +23 -0
  42. data/bundler/lib/bundler/shared_helpers.rb +19 -3
  43. data/bundler/lib/bundler/source.rb +9 -9
  44. data/bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt +1 -0
  45. data/bundler/lib/bundler/version.rb +1 -1
  46. data/bundler/man/bundle-add.ronn +13 -2
  47. data/bundler/man/bundle-config.ronn +21 -0
  48. data/bundler/man/bundle-install.ronn +1 -1
  49. data/bundler/man/bundle-list.ronn +19 -1
  50. data/bundler/man/bundle-outdated.ronn +4 -0
  51. data/bundler/man/bundle-remove.ronn +23 -0
  52. data/bundler/man/bundle-update.ronn +1 -1
  53. data/lib/rubygems.rb +70 -96
  54. data/lib/rubygems/available_set.rb +1 -1
  55. data/lib/rubygems/basic_specification.rb +12 -12
  56. data/lib/rubygems/bundler_version_finder.rb +3 -3
  57. data/lib/rubygems/command.rb +22 -15
  58. data/lib/rubygems/command_manager.rb +20 -11
  59. data/lib/rubygems/commands/build_command.rb +27 -8
  60. data/lib/rubygems/commands/cert_command.rb +45 -24
  61. data/lib/rubygems/commands/check_command.rb +1 -1
  62. data/lib/rubygems/commands/cleanup_command.rb +14 -7
  63. data/lib/rubygems/commands/contents_command.rb +14 -15
  64. data/lib/rubygems/commands/dependency_command.rb +17 -17
  65. data/lib/rubygems/commands/environment_command.rb +20 -1
  66. data/lib/rubygems/commands/fetch_command.rb +2 -3
  67. data/lib/rubygems/commands/generate_index_command.rb +2 -3
  68. data/lib/rubygems/commands/help_command.rb +12 -13
  69. data/lib/rubygems/commands/info_command.rb +33 -0
  70. data/lib/rubygems/commands/install_command.rb +21 -17
  71. data/lib/rubygems/commands/list_command.rb +0 -1
  72. data/lib/rubygems/commands/lock_command.rb +3 -4
  73. data/lib/rubygems/commands/open_command.rb +16 -10
  74. data/lib/rubygems/commands/owner_command.rb +20 -11
  75. data/lib/rubygems/commands/pristine_command.rb +23 -16
  76. data/lib/rubygems/commands/push_command.rb +17 -8
  77. data/lib/rubygems/commands/query_command.rb +24 -24
  78. data/lib/rubygems/commands/rdoc_command.rb +3 -4
  79. data/lib/rubygems/commands/search_command.rb +0 -1
  80. data/lib/rubygems/commands/server_command.rb +1 -2
  81. data/lib/rubygems/commands/setup_command.rb +78 -38
  82. data/lib/rubygems/commands/signin_command.rb +2 -1
  83. data/lib/rubygems/commands/signout_command.rb +2 -2
  84. data/lib/rubygems/commands/sources_command.rb +11 -12
  85. data/lib/rubygems/commands/specification_command.rb +7 -7
  86. data/lib/rubygems/commands/uninstall_command.rb +41 -19
  87. data/lib/rubygems/commands/unpack_command.rb +16 -7
  88. data/lib/rubygems/commands/update_command.rb +28 -23
  89. data/lib/rubygems/commands/which_command.rb +4 -5
  90. data/lib/rubygems/commands/yank_command.rb +1 -2
  91. data/lib/rubygems/compatibility.rb +1 -21
  92. data/lib/rubygems/config_file.rb +36 -36
  93. data/lib/rubygems/core_ext/kernel_require.rb +6 -6
  94. data/lib/rubygems/core_ext/kernel_warn.rb +45 -0
  95. data/lib/rubygems/defaults.rb +31 -12
  96. data/lib/rubygems/dependency.rb +14 -14
  97. data/lib/rubygems/dependency_installer.rb +29 -31
  98. data/lib/rubygems/dependency_list.rb +8 -9
  99. data/lib/rubygems/deprecate.rb +2 -3
  100. data/lib/rubygems/doctor.rb +5 -6
  101. data/lib/rubygems/errors.rb +3 -3
  102. data/lib/rubygems/exceptions.rb +11 -4
  103. data/lib/rubygems/ext.rb +0 -1
  104. data/lib/rubygems/ext/build_error.rb +0 -1
  105. data/lib/rubygems/ext/builder.rb +50 -23
  106. data/lib/rubygems/ext/cmake_builder.rb +2 -2
  107. data/lib/rubygems/ext/configure_builder.rb +2 -3
  108. data/lib/rubygems/ext/ext_conf_builder.rb +8 -7
  109. data/lib/rubygems/ext/rake_builder.rb +16 -18
  110. data/lib/rubygems/gem_runner.rb +2 -2
  111. data/lib/rubygems/gemcutter_utilities.rb +40 -13
  112. data/lib/rubygems/indexer.rb +19 -12
  113. data/lib/rubygems/install_default_message.rb +0 -1
  114. data/lib/rubygems/install_message.rb +0 -1
  115. data/lib/rubygems/install_update_options.rb +2 -28
  116. data/lib/rubygems/installer.rb +95 -75
  117. data/lib/rubygems/installer_test_case.rb +0 -14
  118. data/lib/rubygems/local_remote_options.rb +5 -4
  119. data/lib/rubygems/mock_gem_ui.rb +3 -4
  120. data/lib/rubygems/name_tuple.rb +4 -4
  121. data/lib/rubygems/package.rb +90 -73
  122. data/lib/rubygems/package/digest_io.rb +3 -4
  123. data/lib/rubygems/package/file_source.rb +3 -4
  124. data/lib/rubygems/package/io_source.rb +1 -2
  125. data/lib/rubygems/package/old.rb +8 -16
  126. data/lib/rubygems/package/source.rb +0 -1
  127. data/lib/rubygems/package/tar_header.rb +2 -2
  128. data/lib/rubygems/package/tar_reader.rb +2 -4
  129. data/lib/rubygems/package/tar_reader/entry.rb +20 -4
  130. data/lib/rubygems/package/tar_test_case.rb +2 -8
  131. data/lib/rubygems/package/tar_writer.rb +13 -15
  132. data/lib/rubygems/package_task.rb +0 -1
  133. data/lib/rubygems/path_support.rb +16 -6
  134. data/lib/rubygems/platform.rb +4 -5
  135. data/lib/rubygems/psych_tree.rb +1 -1
  136. data/lib/rubygems/rdoc.rb +0 -311
  137. data/lib/rubygems/remote_fetcher.rb +34 -48
  138. data/lib/rubygems/request.rb +16 -15
  139. data/lib/rubygems/request/connection_pools.rb +24 -13
  140. data/lib/rubygems/request/http_pool.rb +3 -4
  141. data/lib/rubygems/request/https_pool.rb +1 -3
  142. data/lib/rubygems/request_set.rb +52 -25
  143. data/lib/rubygems/request_set/gem_dependency_api.rb +36 -40
  144. data/lib/rubygems/request_set/lockfile.rb +12 -12
  145. data/lib/rubygems/request_set/lockfile/parser.rb +18 -29
  146. data/lib/rubygems/request_set/lockfile/tokenizer.rb +9 -9
  147. data/lib/rubygems/requirement.rb +16 -16
  148. data/lib/rubygems/resolver.rb +10 -15
  149. data/lib/rubygems/resolver/activation_request.rb +6 -6
  150. data/lib/rubygems/resolver/api_set.rb +5 -6
  151. data/lib/rubygems/resolver/api_specification.rb +2 -3
  152. data/lib/rubygems/resolver/best_set.rb +5 -6
  153. data/lib/rubygems/resolver/composed_set.rb +5 -6
  154. data/lib/rubygems/resolver/conflict.rb +5 -5
  155. data/lib/rubygems/resolver/current_set.rb +1 -2
  156. data/lib/rubygems/resolver/dependency_request.rb +4 -4
  157. data/lib/rubygems/resolver/git_set.rb +5 -6
  158. data/lib/rubygems/resolver/git_specification.rb +4 -5
  159. data/lib/rubygems/resolver/index_set.rb +5 -6
  160. data/lib/rubygems/resolver/index_specification.rb +3 -4
  161. data/lib/rubygems/resolver/installed_specification.rb +3 -4
  162. data/lib/rubygems/resolver/installer_set.rb +12 -12
  163. data/lib/rubygems/resolver/local_specification.rb +1 -2
  164. data/lib/rubygems/resolver/lock_set.rb +5 -6
  165. data/lib/rubygems/resolver/lock_specification.rb +7 -8
  166. data/lib/rubygems/resolver/requirement_list.rb +1 -1
  167. data/lib/rubygems/resolver/set.rb +2 -2
  168. data/lib/rubygems/resolver/source_set.rb +4 -5
  169. data/lib/rubygems/resolver/spec_specification.rb +1 -2
  170. data/lib/rubygems/resolver/specification.rb +10 -7
  171. data/lib/rubygems/resolver/stats.rb +1 -1
  172. data/lib/rubygems/resolver/vendor_set.rb +4 -5
  173. data/lib/rubygems/resolver/vendor_specification.rb +2 -3
  174. data/lib/rubygems/safe_yaml.rb +18 -10
  175. data/lib/rubygems/security.rb +21 -22
  176. data/lib/rubygems/security/policies.rb +1 -2
  177. data/lib/rubygems/security/policy.rb +25 -25
  178. data/lib/rubygems/security/signer.rb +72 -24
  179. data/lib/rubygems/security/trust_dir.rb +10 -10
  180. data/lib/rubygems/server.rb +21 -21
  181. data/lib/rubygems/source.rb +16 -25
  182. data/lib/rubygems/source/git.rb +9 -10
  183. data/lib/rubygems/source/installed.rb +3 -4
  184. data/lib/rubygems/source/local.rb +7 -7
  185. data/lib/rubygems/source/lock.rb +4 -4
  186. data/lib/rubygems/source/specific_file.rb +5 -5
  187. data/lib/rubygems/source/vendor.rb +2 -3
  188. data/lib/rubygems/source_list.rb +2 -2
  189. data/lib/rubygems/source_local.rb +0 -1
  190. data/lib/rubygems/spec_fetcher.rb +5 -6
  191. data/lib/rubygems/specification.rb +199 -536
  192. data/lib/rubygems/specification_policy.rb +407 -0
  193. data/lib/rubygems/ssl_certs/{rubygems.org → index.rubygems.org}/GlobalSignRootCA.pem +0 -0
  194. data/lib/rubygems/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem +23 -0
  195. data/lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem +25 -0
  196. data/lib/rubygems/stub_specification.rb +11 -15
  197. data/lib/rubygems/test_case.rb +141 -66
  198. data/lib/rubygems/test_utilities.rb +20 -35
  199. data/lib/rubygems/text.rb +6 -6
  200. data/lib/rubygems/uninstaller.rb +37 -26
  201. data/lib/rubygems/uri_formatter.rb +1 -2
  202. data/lib/rubygems/user_interaction.rb +38 -93
  203. data/lib/rubygems/util.rb +20 -14
  204. data/lib/rubygems/util/licenses.rb +27 -1
  205. data/lib/rubygems/util/list.rb +1 -1
  206. data/lib/rubygems/validator.rb +4 -5
  207. data/lib/rubygems/version.rb +15 -15
  208. data/lib/rubygems/version_option.rb +2 -3
  209. data/rubygems-update.gemspec +43 -0
  210. data/setup.rb +2 -8
  211. data/test/rubygems/rubygems_plugin.rb +0 -1
  212. data/test/rubygems/simple_gem.rb +1 -1
  213. data/test/rubygems/test_bundled_ca.rb +4 -7
  214. data/test/rubygems/test_config.rb +7 -2
  215. data/test/rubygems/test_gem.rb +161 -130
  216. data/test/rubygems/test_gem_command.rb +0 -1
  217. data/test/rubygems/test_gem_command_manager.rb +8 -3
  218. data/test/rubygems/test_gem_commands_build_command.rb +219 -15
  219. data/test/rubygems/test_gem_commands_cert_command.rb +69 -8
  220. data/test/rubygems/test_gem_commands_check_command.rb +1 -1
  221. data/test/rubygems/test_gem_commands_cleanup_command.rb +27 -1
  222. data/test/rubygems/test_gem_commands_contents_command.rb +1 -2
  223. data/test/rubygems/test_gem_commands_dependency_command.rb +33 -34
  224. data/test/rubygems/test_gem_commands_environment_command.rb +1 -0
  225. data/test/rubygems/test_gem_commands_fetch_command.rb +0 -1
  226. data/test/rubygems/test_gem_commands_generate_index_command.rb +0 -1
  227. data/test/rubygems/test_gem_commands_help_command.rb +7 -4
  228. data/test/rubygems/test_gem_commands_info_command.rb +44 -0
  229. data/test/rubygems/test_gem_commands_install_command.rb +79 -12
  230. data/test/rubygems/test_gem_commands_lock_command.rb +0 -1
  231. data/test/rubygems/test_gem_commands_open_command.rb +29 -0
  232. data/test/rubygems/test_gem_commands_outdated_command.rb +0 -1
  233. data/test/rubygems/test_gem_commands_owner_command.rb +93 -57
  234. data/test/rubygems/test_gem_commands_pristine_command.rb +65 -30
  235. data/test/rubygems/test_gem_commands_push_command.rb +39 -0
  236. data/test/rubygems/test_gem_commands_query_command.rb +102 -100
  237. data/test/rubygems/test_gem_commands_search_command.rb +0 -1
  238. data/test/rubygems/test_gem_commands_server_command.rb +0 -1
  239. data/test/rubygems/test_gem_commands_setup_command.rb +39 -8
  240. data/test/rubygems/test_gem_commands_signin_command.rb +1 -1
  241. data/test/rubygems/test_gem_commands_sources_command.rb +0 -1
  242. data/test/rubygems/test_gem_commands_specification_command.rb +2 -3
  243. data/test/rubygems/test_gem_commands_stale_command.rb +3 -2
  244. data/test/rubygems/test_gem_commands_uninstall_command.rb +81 -7
  245. data/test/rubygems/test_gem_commands_unpack_command.rb +17 -1
  246. data/test/rubygems/test_gem_commands_update_command.rb +19 -2
  247. data/test/rubygems/test_gem_commands_which_command.rb +0 -1
  248. data/test/rubygems/test_gem_commands_yank_command.rb +0 -1
  249. data/test/rubygems/test_gem_config_file.rb +4 -2
  250. data/test/rubygems/test_gem_dependency.rb +0 -1
  251. data/test/rubygems/test_gem_dependency_installer.rb +8 -5
  252. data/test/rubygems/test_gem_dependency_list.rb +6 -7
  253. data/test/rubygems/test_gem_dependency_resolution_error.rb +0 -1
  254. data/test/rubygems/test_gem_doctor.rb +1 -2
  255. data/test/rubygems/test_gem_ext_builder.rb +10 -23
  256. data/test/rubygems/test_gem_ext_cmake_builder.rb +5 -4
  257. data/test/rubygems/test_gem_ext_configure_builder.rb +3 -3
  258. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +8 -9
  259. data/test/rubygems/test_gem_ext_rake_builder.rb +20 -5
  260. data/test/rubygems/test_gem_gem_runner.rb +0 -1
  261. data/test/rubygems/test_gem_gemcutter_utilities.rb +32 -6
  262. data/test/rubygems/test_gem_impossible_dependencies_error.rb +0 -1
  263. data/test/rubygems/test_gem_indexer.rb +1 -2
  264. data/test/rubygems/test_gem_install_update_options.rb +1 -20
  265. data/test/rubygems/test_gem_installer.rb +69 -203
  266. data/test/rubygems/test_gem_local_remote_options.rb +3 -3
  267. data/test/rubygems/test_gem_name_tuple.rb +0 -1
  268. data/test/rubygems/test_gem_package.rb +59 -50
  269. data/test/rubygems/test_gem_package_old.rb +0 -1
  270. data/test/rubygems/test_gem_package_tar_header.rb +1 -2
  271. data/test/rubygems/test_gem_package_tar_reader.rb +0 -1
  272. data/test/rubygems/test_gem_package_tar_reader_entry.rb +11 -0
  273. data/test/rubygems/test_gem_package_tar_writer.rb +40 -7
  274. data/test/rubygems/test_gem_package_task.rb +2 -2
  275. data/test/rubygems/test_gem_path_support.rb +28 -11
  276. data/test/rubygems/test_gem_platform.rb +4 -5
  277. data/test/rubygems/test_gem_rdoc.rb +1 -2
  278. data/test/rubygems/test_gem_remote_fetcher.rb +111 -130
  279. data/test/rubygems/test_gem_request.rb +5 -5
  280. data/test/rubygems/test_gem_request_connection_pools.rb +24 -3
  281. data/test/rubygems/test_gem_request_set.rb +5 -5
  282. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +2 -7
  283. data/test/rubygems/test_gem_request_set_lockfile.rb +1 -2
  284. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +4 -9
  285. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +1 -1
  286. data/test/rubygems/test_gem_requirement.rb +18 -4
  287. data/test/rubygems/test_gem_resolver.rb +13 -17
  288. data/test/rubygems/test_gem_resolver_activation_request.rb +0 -1
  289. data/test/rubygems/test_gem_resolver_api_set.rb +0 -1
  290. data/test/rubygems/test_gem_resolver_api_specification.rb +0 -1
  291. data/test/rubygems/test_gem_resolver_best_set.rb +0 -1
  292. data/test/rubygems/test_gem_resolver_composed_set.rb +0 -1
  293. data/test/rubygems/test_gem_resolver_conflict.rb +0 -1
  294. data/test/rubygems/test_gem_resolver_dependency_request.rb +0 -1
  295. data/test/rubygems/test_gem_resolver_git_set.rb +0 -1
  296. data/test/rubygems/test_gem_resolver_git_specification.rb +0 -1
  297. data/test/rubygems/test_gem_resolver_index_set.rb +0 -1
  298. data/test/rubygems/test_gem_resolver_index_specification.rb +0 -1
  299. data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -1
  300. data/test/rubygems/test_gem_resolver_installer_set.rb +2 -3
  301. data/test/rubygems/test_gem_resolver_local_specification.rb +0 -1
  302. data/test/rubygems/test_gem_resolver_lock_set.rb +0 -1
  303. data/test/rubygems/test_gem_resolver_lock_specification.rb +0 -1
  304. data/test/rubygems/test_gem_resolver_requirement_list.rb +0 -1
  305. data/test/rubygems/test_gem_resolver_specification.rb +1 -2
  306. data/test/rubygems/test_gem_resolver_vendor_set.rb +0 -1
  307. data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -1
  308. data/test/rubygems/test_gem_security.rb +1 -3
  309. data/test/rubygems/test_gem_security_policy.rb +4 -5
  310. data/test/rubygems/test_gem_security_signer.rb +4 -3
  311. data/test/rubygems/test_gem_security_trust_dir.rb +1 -2
  312. data/test/rubygems/test_gem_server.rb +4 -4
  313. data/test/rubygems/test_gem_source.rb +0 -13
  314. data/test/rubygems/test_gem_source_fetch_problem.rb +0 -1
  315. data/test/rubygems/test_gem_source_git.rb +0 -1
  316. data/test/rubygems/test_gem_source_installed.rb +0 -1
  317. data/test/rubygems/test_gem_source_lock.rb +0 -1
  318. data/test/rubygems/test_gem_source_vendor.rb +0 -1
  319. data/test/rubygems/test_gem_spec_fetcher.rb +0 -1
  320. data/test/rubygems/test_gem_specification.rb +334 -198
  321. data/test/rubygems/test_gem_stream_ui.rb +13 -30
  322. data/test/rubygems/test_gem_stub_specification.rb +0 -2
  323. data/test/rubygems/test_gem_text.rb +4 -5
  324. data/test/rubygems/test_gem_uninstaller.rb +21 -1
  325. data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +0 -1
  326. data/test/rubygems/test_gem_uri_formatter.rb +0 -1
  327. data/test/rubygems/test_gem_util.rb +6 -11
  328. data/test/rubygems/test_gem_validator.rb +0 -1
  329. data/test/rubygems/test_gem_version.rb +11 -11
  330. data/test/rubygems/test_gem_version_option.rb +0 -1
  331. data/test/rubygems/test_remote_fetch_error.rb +0 -1
  332. data/test/rubygems/test_require.rb +67 -52
  333. data/util/CL2notes +1 -2
  334. data/util/ci +15 -12
  335. data/util/create_certs.rb +6 -7
  336. data/util/create_encrypted_key.rb +0 -1
  337. data/util/patch_with_prs.rb +1 -1
  338. data/util/rubocop +8 -0
  339. data/util/update_bundled_ca_certificates.rb +15 -14
  340. data/util/update_changelog.rb +1 -1
  341. metadata +67 -59
  342. data/.autotest +0 -71
  343. data/.document +0 -5
  344. data/CONTRIBUTING.rdoc +0 -130
  345. data/CVE-2013-4287.txt +0 -35
  346. data/CVE-2013-4363.txt +0 -45
  347. data/CVE-2015-3900.txt +0 -40
  348. data/POLICIES.rdoc +0 -74
  349. data/lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem +0 -21
  350. data/test/rubygems/fix_openssl_warnings.rb +0 -13
@@ -15,7 +15,7 @@ module Gem::Util
15
15
  data = StringIO.new(data, 'r')
16
16
 
17
17
  unzipped = Zlib::GzipReader.new(data).read
18
- unzipped.force_encoding Encoding::BINARY if Object.const_defined? :Encoding
18
+ unzipped.force_encoding Encoding::BINARY
19
19
  unzipped
20
20
  end
21
21
 
@@ -26,7 +26,7 @@ module Gem::Util
26
26
  require 'zlib'
27
27
  require 'stringio'
28
28
  zipped = StringIO.new(String.new, 'w')
29
- zipped.set_encoding Encoding::BINARY if Object.const_defined? :Encoding
29
+ zipped.set_encoding Encoding::BINARY
30
30
 
31
31
  Zlib::GzipWriter.wrap zipped do |io| io.write data end
32
32
 
@@ -46,7 +46,7 @@ module Gem::Util
46
46
  # and implements an IO.popen-like behavior where it does not accept an array
47
47
  # for a command.
48
48
 
49
- def self.popen *command
49
+ def self.popen(*command)
50
50
  IO.popen command, &:read
51
51
  rescue TypeError # ruby 1.8 only supports string command
52
52
  r, w = IO.pipe
@@ -67,13 +67,11 @@ module Gem::Util
67
67
  end
68
68
  end
69
69
 
70
- NULL_DEVICE = defined?(IO::NULL) ? IO::NULL : Gem.win_platform? ? 'NUL' : '/dev/null'
71
-
72
70
  ##
73
71
  # Invokes system, but silences all output.
74
72
 
75
- def self.silent_system *command
76
- opt = {:out => NULL_DEVICE, :err => [:child, :out]}
73
+ def self.silent_system(*command)
74
+ opt = {:out => IO::NULL, :err => [:child, :out]}
77
75
  if Hash === command.last
78
76
  opt.update(command.last)
79
77
  cmds = command[0...-1]
@@ -82,19 +80,15 @@ module Gem::Util
82
80
  end
83
81
  return system(*(cmds << opt))
84
82
  rescue TypeError
85
- require 'thread'
86
-
87
83
  @silent_mutex ||= Mutex.new
88
84
 
89
- null_device = NULL_DEVICE
90
-
91
85
  @silent_mutex.synchronize do
92
86
  begin
93
87
  stdout = STDOUT.dup
94
88
  stderr = STDERR.dup
95
89
 
96
- STDOUT.reopen null_device, 'w'
97
- STDERR.reopen null_device, 'w'
90
+ STDOUT.reopen IO::NULL, 'w'
91
+ STDERR.reopen IO::NULL, 'w'
98
92
 
99
93
  return system(*command)
100
94
  ensure
@@ -109,7 +103,7 @@ module Gem::Util
109
103
  ##
110
104
  # Enumerates the parents of +directory+.
111
105
 
112
- def self.traverse_parents directory, &block
106
+ def self.traverse_parents(directory, &block)
113
107
  return enum_for __method__, directory unless block_given?
114
108
 
115
109
  here = File.expand_path directory
@@ -122,4 +116,16 @@ module Gem::Util
122
116
  end
123
117
  end
124
118
 
119
+ ##
120
+ # Globs for files matching +pattern+ inside of +directory+,
121
+ # returning absolute paths to the matching files.
122
+
123
+ def self.glob_files_in_dir(glob, base_path)
124
+ if RUBY_VERSION >= "2.5"
125
+ Dir.glob(glob, base: base_path).map! {|f| File.join(base_path, f) }
126
+ else
127
+ Dir.glob(File.expand_path(glob, base_path))
128
+ end
129
+ end
130
+
125
131
  end
@@ -19,6 +19,8 @@ class Gem::Licenses
19
19
  AFL-3.0
20
20
  AGPL-1.0
21
21
  AGPL-3.0
22
+ AGPL-3.0-only
23
+ AGPL-3.0-or-later
22
24
  AMDPLPA
23
25
  AML
24
26
  AMPAS
@@ -41,9 +43,11 @@ class Gem::Licenses
41
43
  Artistic-1.0-Perl
42
44
  Artistic-1.0-cl8
43
45
  Artistic-2.0
46
+ BSD-1-Clause
44
47
  BSD-2-Clause
45
48
  BSD-2-Clause-FreeBSD
46
49
  BSD-2-Clause-NetBSD
50
+ BSD-2-Clause-Patent
47
51
  BSD-3-Clause
48
52
  BSD-3-Clause-Attribution
49
53
  BSD-3-Clause-Clear
@@ -96,6 +100,8 @@ class Gem::Licenses
96
100
  CC0-1.0
97
101
  CDDL-1.0
98
102
  CDDL-1.1
103
+ CDLA-Permissive-1.0
104
+ CDLA-Sharing-1.0
99
105
  CECILL-1.0
100
106
  CECILL-1.1
101
107
  CECILL-2.0
@@ -124,9 +130,11 @@ class Gem::Licenses
124
130
  EFL-1.0
125
131
  EFL-2.0
126
132
  EPL-1.0
133
+ EPL-2.0
127
134
  EUDatagrid
128
135
  EUPL-1.0
129
136
  EUPL-1.1
137
+ EUPL-1.2
130
138
  Entessa
131
139
  ErlPL-1.1
132
140
  Eurosym
@@ -138,13 +146,23 @@ class Gem::Licenses
138
146
  Frameworx-1.0
139
147
  FreeImage
140
148
  GFDL-1.1
149
+ GFDL-1.1-only
150
+ GFDL-1.1-or-later
141
151
  GFDL-1.2
152
+ GFDL-1.2-only
153
+ GFDL-1.2-or-later
142
154
  GFDL-1.3
155
+ GFDL-1.3-only
156
+ GFDL-1.3-or-later
143
157
  GL2PS
144
158
  GPL-1.0
145
159
  GPL-1.0+
160
+ GPL-1.0-only
161
+ GPL-1.0-or-later
146
162
  GPL-2.0
147
163
  GPL-2.0+
164
+ GPL-2.0-only
165
+ GPL-2.0-or-later
148
166
  GPL-2.0-with-GCC-exception
149
167
  GPL-2.0-with-autoconf-exception
150
168
  GPL-2.0-with-bison-exception
@@ -152,6 +170,8 @@ class Gem::Licenses
152
170
  GPL-2.0-with-font-exception
153
171
  GPL-3.0
154
172
  GPL-3.0+
173
+ GPL-3.0-only
174
+ GPL-3.0-or-later
155
175
  GPL-3.0-with-GCC-exception
156
176
  GPL-3.0-with-autoconf-exception
157
177
  Giftware
@@ -177,10 +197,16 @@ class Gem::Licenses
177
197
  LAL-1.3
178
198
  LGPL-2.0
179
199
  LGPL-2.0+
200
+ LGPL-2.0-only
201
+ LGPL-2.0-or-later
180
202
  LGPL-2.1
181
203
  LGPL-2.1+
204
+ LGPL-2.1-only
205
+ LGPL-2.1-or-later
182
206
  LGPL-3.0
183
207
  LGPL-3.0+
208
+ LGPL-3.0-only
209
+ LGPL-3.0-or-later
184
210
  LGPLLR
185
211
  LPL-1.0
186
212
  LPL-1.02
@@ -317,7 +343,6 @@ class Gem::Licenses
317
343
  W3C-19980720
318
344
  W3C-20150513
319
345
  WTFPL
320
- WXwindows
321
346
  Watcom-1.0
322
347
  Wsuipa
323
348
  X11
@@ -349,6 +374,7 @@ class Gem::Licenses
349
374
  mpich2
350
375
  psfrag
351
376
  psutils
377
+ wxWindows
352
378
  xinetd
353
379
  xpp
354
380
  zlib-acknowledgement
@@ -25,7 +25,7 @@ module Gem
25
25
  List.new value, self
26
26
  end
27
27
 
28
- def pretty_print q # :nodoc:
28
+ def pretty_print(q) # :nodoc:
29
29
  q.pp to_a
30
30
  end
31
31
 
@@ -62,7 +62,7 @@ class Gem::Validator
62
62
  # Describes a problem with a file in a gem.
63
63
 
64
64
  ErrorData = Struct.new :path, :problem do
65
- def <=> other # :nodoc:
65
+ def <=>(other) # :nodoc:
66
66
  return nil unless self.class === other
67
67
 
68
68
  [path, problem] <=> [other.path, other.problem]
@@ -94,13 +94,13 @@ class Gem::Validator
94
94
  spec_path = spec.spec_file
95
95
  gem_directory = spec.full_gem_path
96
96
 
97
- unless File.directory? gem_directory then
97
+ unless File.directory? gem_directory
98
98
  errors[gem_name][spec.full_name] =
99
99
  "Gem registered but doesn't exist at #{gem_directory}"
100
100
  next
101
101
  end
102
102
 
103
- unless File.exist? spec_path then
103
+ unless File.exist? spec_path
104
104
  errors[gem_name][spec_path] = "Spec file missing for installed gem"
105
105
  end
106
106
 
@@ -135,7 +135,7 @@ class Gem::Validator
135
135
  source = File.join gem_directory, entry['path']
136
136
 
137
137
  File.open source, Gem.binary_mode do |f|
138
- unless f.read == data then
138
+ unless f.read == data
139
139
  errors[gem_name][entry['path']] = "Modified from original"
140
140
  end
141
141
  end
@@ -163,4 +163,3 @@ class Gem::Validator
163
163
  errors
164
164
  end
165
165
  end
166
-
@@ -154,8 +154,8 @@ class Gem::Version
154
154
 
155
155
  include Comparable
156
156
 
157
- VERSION_PATTERN = '[0-9]+(?>\.[0-9a-zA-Z]+)*(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?' # :nodoc:
158
- ANCHORED_VERSION_PATTERN = /\A\s*(#{VERSION_PATTERN})?\s*\z/ # :nodoc:
157
+ VERSION_PATTERN = '[0-9]+(?>\.[0-9a-zA-Z]+)*(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?'.freeze # :nodoc:
158
+ ANCHORED_VERSION_PATTERN = /\A\s*(#{VERSION_PATTERN})?\s*\z/.freeze # :nodoc:
159
159
 
160
160
  ##
161
161
  # A string representation of this Version.
@@ -169,7 +169,7 @@ class Gem::Version
169
169
  ##
170
170
  # True if the +version+ string matches RubyGems' requirements.
171
171
 
172
- def self.correct? version
172
+ def self.correct?(version)
173
173
  unless Gem::Deprecate.skip
174
174
  warn "nil versions are discouraged and will be deprecated in Rubygems 4" if version.nil?
175
175
  end
@@ -185,10 +185,10 @@ class Gem::Version
185
185
  # ver2 = Version.create(ver1) # -> (ver1)
186
186
  # ver3 = Version.create(nil) # -> nil
187
187
 
188
- def self.create input
189
- if self === input then # check yourself before you wreck yourself
188
+ def self.create(input)
189
+ if self === input # check yourself before you wreck yourself
190
190
  input
191
- elsif input.nil? then
191
+ elsif input.nil?
192
192
  nil
193
193
  else
194
194
  new input
@@ -197,7 +197,7 @@ class Gem::Version
197
197
 
198
198
  @@all = {}
199
199
 
200
- def self.new version # :nodoc:
200
+ def self.new(version) # :nodoc:
201
201
  return super unless Gem::Version == self
202
202
 
203
203
  @@all[version] ||= super
@@ -207,13 +207,13 @@ class Gem::Version
207
207
  # Constructs a Version from the +version+ string. A version string is a
208
208
  # series of digits or ASCII letters separated by dots.
209
209
 
210
- def initialize version
210
+ def initialize(version)
211
211
  unless self.class.correct?(version)
212
212
  raise ArgumentError, "Malformed version number string #{version}"
213
213
  end
214
214
 
215
215
  # If version is an empty string convert it to 0
216
- version = 0 if version =~ /\A\s*\Z/
216
+ version = 0 if version.is_a?(String) && version =~ /\A\s*\Z/
217
217
 
218
218
  @version = version.to_s.strip.gsub("-",".pre.")
219
219
  @segments = nil
@@ -240,7 +240,7 @@ class Gem::Version
240
240
  # A Version is only eql? to another version if it's specified to the
241
241
  # same precision. Version "1.0" is not the same as version "1".
242
242
 
243
- def eql? other
243
+ def eql?(other)
244
244
  self.class === other and @version == other._version
245
245
  end
246
246
 
@@ -248,7 +248,7 @@ class Gem::Version
248
248
  canonical_segments.hash
249
249
  end
250
250
 
251
- def init_with coder # :nodoc:
251
+ def init_with(coder) # :nodoc:
252
252
  yaml_initialize coder.tag, coder.map
253
253
  end
254
254
 
@@ -268,7 +268,7 @@ class Gem::Version
268
268
  # Load custom marshal format. It's a string for backwards (RubyGems
269
269
  # 1.3.5 and earlier) compatibility.
270
270
 
271
- def marshal_load array
271
+ def marshal_load(array)
272
272
  initialize array[0]
273
273
  end
274
274
 
@@ -282,7 +282,7 @@ class Gem::Version
282
282
  ["@version"]
283
283
  end
284
284
 
285
- def encode_with coder # :nodoc:
285
+ def encode_with(coder) # :nodoc:
286
286
  coder.add 'version', @version
287
287
  end
288
288
 
@@ -296,7 +296,7 @@ class Gem::Version
296
296
  @prerelease
297
297
  end
298
298
 
299
- def pretty_print q # :nodoc:
299
+ def pretty_print(q) # :nodoc:
300
300
  q.text "Gem::Version.new(#{version.inspect})"
301
301
  end
302
302
 
@@ -339,7 +339,7 @@ class Gem::Version
339
339
  # one. Attempts to compare to something that's not a
340
340
  # <tt>Gem::Version</tt> return +nil+.
341
341
 
342
- def <=> other
342
+ def <=>(other)
343
343
  return unless Gem::Version === other
344
344
  return 0 if @version == other._version || canonical_segments == other.canonical_segments
345
345
 
@@ -17,7 +17,7 @@ module Gem::VersionOption
17
17
 
18
18
  def add_platform_option(task = command, *wrap)
19
19
  OptionParser.accept Gem::Platform do |value|
20
- if value == Gem::Platform::RUBY then
20
+ if value == Gem::Platform::RUBY
21
21
  value
22
22
  else
23
23
  Gem::Platform.new value
@@ -27,7 +27,7 @@ module Gem::VersionOption
27
27
  add_option('--platform PLATFORM', Gem::Platform,
28
28
  "Specify the platform of gem to #{task}", *wrap) do
29
29
  |value, options|
30
- unless options[:added_platform] then
30
+ unless options[:added_platform]
31
31
  Gem.platforms = [Gem::Platform::RUBY]
32
32
  options[:added_platform] = true
33
33
  end
@@ -74,4 +74,3 @@ module Gem::VersionOption
74
74
  end
75
75
 
76
76
  end
77
-
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = "rubygems-update"
5
+ s.version = "3.0.0"
6
+ s.authors = ["Jim Weirich", "Chad Fowler", "Eric Hodel", "Luis Lavena", "Aaron Patterson", "Samuel Giddins", "André Arko", "Evan Phoenix", "Hiroshi SHIBATA"]
7
+ s.email = ["", "", "drbrain@segment7.net", "luislavena@gmail.com", "aaron@tenderlovemaking.com", "segiddins@segiddins.me", "andre@arko.net", "evan@phx.io", "hsbt@ruby-lang.org"]
8
+
9
+ s.summary = "RubyGems is a package management framework for Ruby."
10
+ s.description = "A package (also known as a library) contains a set of functionality
11
+ that can be invoked by a Ruby program, such as reading and parsing an XML file. We call
12
+ these packages 'gems' and RubyGems is a tool to install, create, manage and load these
13
+ packages in your Ruby environment. RubyGems is also a client for RubyGems.org, a public
14
+ repository of Gems that allows you to publish a Gem that can be shared and used by other
15
+ developers. See our guide on publishing a Gem at guides.rubygems.org"
16
+ s.homepage = "https://rubygems.org"
17
+ s.licenses = ["Ruby", "MIT"]
18
+
19
+ s.files = File.read('Manifest.txt').split
20
+ s.executables = ["update_rubygems"]
21
+ s.require_paths = ["hide_lib_for_update"]
22
+ s.rdoc_options = ["--main", "README.md", "--title=RubyGems Update Documentation"]
23
+ s.extra_rdoc_files = [
24
+ "History.txt", "LICENSE.txt", "MAINTAINERS.txt",
25
+ "MIT.txt", "Manifest.txt", "README.md",
26
+ "UPGRADING.md", "POLICIES.md", "CODE_OF_CONDUCT.md",
27
+ "CONTRIBUTING.md", "bundler/CHANGELOG.md", "bundler/CODE_OF_CONDUCT.md",
28
+ "bundler/CONTRIBUTING.md", "bundler/LICENSE.md", "bundler/README.md",
29
+ "hide_lib_for_update/note.txt", *Dir["bundler/man/*.1"]
30
+ ]
31
+
32
+ s.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
33
+ s.required_rubygems_version = Gem::Requirement.new(">= 0")
34
+
35
+ s.specification_version = 4
36
+
37
+ s.add_development_dependency(%q<builder>, ["~> 3.0"])
38
+ s.add_development_dependency(%q<rdoc>, ["~> 6.0"])
39
+ s.add_development_dependency(%q<rake>, ["~> 12.0"])
40
+ s.add_development_dependency(%q<minitest>, ["~> 5.0"])
41
+ s.add_development_dependency(%q<simplecov>, ["~> 0"])
42
+ s.add_development_dependency(%q<rubocop>, ["~> 0.60.0"])
43
+ end
data/setup.rb CHANGED
@@ -6,13 +6,8 @@
6
6
  # See LICENSE.txt for permissions.
7
7
  #++
8
8
 
9
- if RUBY_VERSION < "1.8.7"
10
- $stderr.puts "RubyGems now requires Ruby 1.8.7 or later"
11
- exit 1
12
- end
13
-
14
9
  # Make sure rubygems isn't already loaded.
15
- if ENV['RUBYOPT'] or defined? Gem then
10
+ if ENV['RUBYOPT'] or defined? Gem
16
11
  ENV.delete 'RUBYOPT'
17
12
 
18
13
  require 'rbconfig'
@@ -22,7 +17,7 @@ if ENV['RUBYOPT'] or defined? Gem then
22
17
  ruby << config::CONFIG['EXEEXT']
23
18
 
24
19
  cmd = [ruby, 'setup.rb', *ARGV].compact
25
- cmd[1,0] = "--disable-gems" if RUBY_VERSION > "1.9"
20
+ cmd[1,0] = "--disable-gems"
26
21
 
27
22
  exec(*cmd)
28
23
  end
@@ -47,4 +42,3 @@ begin
47
42
  rescue Gem::SystemExitException => e
48
43
  exit e.exit_code
49
44
  end
50
-
@@ -23,4 +23,3 @@ class Gem::Commands::InterruptCommand < Gem::Command
23
23
  end
24
24
 
25
25
  Gem::CommandManager.instance.register_command :interrupt
26
-