rubygems-update 3.1.0 → 3.2.0.rc.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (345) hide show
  1. checksums.yaml +4 -4
  2. data/CODE_OF_CONDUCT.md +55 -19
  3. data/CONTRIBUTING.md +2 -3
  4. data/History.txt +195 -7
  5. data/Manifest.txt +11 -23
  6. data/POLICIES.md +2 -9
  7. data/README.md +5 -5
  8. data/Rakefile +38 -35
  9. data/bin/update_rubygems +2 -2
  10. data/bundler/CHANGELOG.md +846 -728
  11. data/bundler/README.md +6 -8
  12. data/bundler/UPGRADING.md +16 -30
  13. data/bundler/bundler.gemspec +3 -3
  14. data/bundler/exe/bundle +3 -0
  15. data/bundler/lib/bundler.rb +15 -4
  16. data/bundler/lib/bundler/build_metadata.rb +2 -2
  17. data/bundler/lib/bundler/cli.rb +29 -9
  18. data/bundler/lib/bundler/cli/console.rb +1 -1
  19. data/bundler/lib/bundler/cli/exec.rb +3 -12
  20. data/bundler/lib/bundler/cli/gem.rb +74 -10
  21. data/bundler/lib/bundler/cli/info.rb +6 -3
  22. data/bundler/lib/bundler/cli/init.rb +1 -1
  23. data/bundler/lib/bundler/cli/install.rb +8 -16
  24. data/bundler/lib/bundler/cli/issue.rb +2 -2
  25. data/bundler/lib/bundler/cli/outdated.rb +5 -5
  26. data/bundler/lib/bundler/cli/plugin.rb +10 -0
  27. data/bundler/lib/bundler/definition.rb +32 -32
  28. data/bundler/lib/bundler/dependency.rb +0 -9
  29. data/bundler/lib/bundler/dsl.rb +1 -5
  30. data/bundler/lib/bundler/environment_preserver.rb +26 -2
  31. data/bundler/lib/bundler/errors.rb +1 -0
  32. data/bundler/lib/bundler/feature_flag.rb +0 -2
  33. data/bundler/lib/bundler/fetcher.rb +1 -0
  34. data/bundler/lib/bundler/friendly_errors.rb +4 -10
  35. data/bundler/lib/bundler/gem_helper.rb +18 -12
  36. data/bundler/lib/bundler/gem_version_promoter.rb +1 -1
  37. data/bundler/lib/bundler/injector.rb +14 -3
  38. data/bundler/lib/bundler/inline.rb +2 -2
  39. data/bundler/lib/bundler/installer.rb +29 -28
  40. data/bundler/lib/bundler/installer/gem_installer.rb +2 -2
  41. data/bundler/lib/bundler/installer/parallel_installer.rb +9 -9
  42. data/bundler/lib/bundler/lazy_specification.rb +16 -3
  43. data/bundler/lib/bundler/plugin.rb +26 -0
  44. data/bundler/lib/bundler/plugin/index.rb +9 -0
  45. data/bundler/lib/bundler/psyched_yaml.rb +0 -15
  46. data/bundler/lib/bundler/remote_specification.rb +4 -1
  47. data/bundler/lib/bundler/resolver.rb +31 -8
  48. data/bundler/lib/bundler/resolver/spec_group.rb +26 -5
  49. data/bundler/lib/bundler/rubygems_ext.rb +7 -8
  50. data/bundler/lib/bundler/rubygems_gem_installer.rb +1 -7
  51. data/bundler/lib/bundler/rubygems_integration.rb +13 -19
  52. data/bundler/lib/bundler/runtime.rb +2 -12
  53. data/bundler/lib/bundler/settings.rb +0 -3
  54. data/bundler/lib/bundler/setup.rb +5 -0
  55. data/bundler/lib/bundler/shared_helpers.rb +1 -1
  56. data/bundler/lib/bundler/source/git/git_proxy.rb +53 -58
  57. data/bundler/lib/bundler/source/path.rb +5 -1
  58. data/bundler/lib/bundler/source/path/installer.rb +7 -9
  59. data/bundler/lib/bundler/source/rubygems.rb +11 -14
  60. data/bundler/lib/bundler/stub_specification.rb +16 -4
  61. data/bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +57 -47
  62. data/bundler/lib/bundler/templates/newgem/Gemfile.tt +7 -2
  63. data/bundler/lib/bundler/templates/newgem/Rakefile.tt +12 -5
  64. data/bundler/lib/bundler/templates/newgem/bin/console.tt +2 -0
  65. data/bundler/lib/bundler/templates/newgem/circleci/config.yml.tt +13 -0
  66. data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt +2 -0
  67. data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +18 -0
  68. data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +9 -0
  69. data/bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt +2 -0
  70. data/bundler/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +2 -0
  71. data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +5 -3
  72. data/bundler/lib/bundler/templates/newgem/rubocop.yml.tt +10 -0
  73. data/bundler/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +2 -0
  74. data/bundler/lib/bundler/templates/newgem/spec/spec_helper.rb.tt +2 -0
  75. data/bundler/lib/bundler/templates/newgem/test/{newgem_test.rb.tt → minitest/newgem_test.rb.tt} +2 -0
  76. data/bundler/lib/bundler/templates/newgem/test/{test_helper.rb.tt → minitest/test_helper.rb.tt} +2 -0
  77. data/bundler/lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt +15 -0
  78. data/bundler/lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt +6 -0
  79. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +72 -208
  80. data/bundler/lib/bundler/vendor/thor/lib/thor.rb +0 -7
  81. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +2 -1
  82. data/bundler/lib/bundler/vendor/thor/lib/thor/base.rb +9 -0
  83. data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
  84. data/bundler/lib/bundler/version.rb +1 -1
  85. data/bundler/man/bundle-add.1 +1 -1
  86. data/bundler/man/bundle-add.1.txt +15 -15
  87. data/bundler/man/bundle-binstubs.1 +1 -1
  88. data/bundler/man/bundle-binstubs.1.txt +10 -10
  89. data/bundler/man/bundle-cache.1 +1 -1
  90. data/bundler/man/bundle-cache.1.txt +15 -15
  91. data/bundler/man/bundle-check.1 +1 -1
  92. data/bundler/man/bundle-check.1.txt +8 -8
  93. data/bundler/man/bundle-clean.1 +1 -1
  94. data/bundler/man/bundle-clean.1.txt +6 -6
  95. data/bundler/man/bundle-config.1 +3 -9
  96. data/bundler/man/bundle-config.1.txt +271 -272
  97. data/bundler/man/bundle-config.ronn +5 -9
  98. data/bundler/man/bundle-doctor.1 +1 -1
  99. data/bundler/man/bundle-doctor.1.txt +9 -9
  100. data/bundler/man/bundle-exec.1 +1 -1
  101. data/bundler/man/bundle-exec.1.txt +84 -81
  102. data/bundler/man/bundle-gem.1 +25 -3
  103. data/bundler/man/bundle-gem.1.txt +65 -39
  104. data/bundler/man/bundle-gem.ronn +30 -7
  105. data/bundler/man/bundle-info.1 +1 -1
  106. data/bundler/man/bundle-info.1.txt +2 -2
  107. data/bundler/man/bundle-init.1 +1 -1
  108. data/bundler/man/bundle-init.1.txt +9 -9
  109. data/bundler/man/bundle-inject.1 +1 -1
  110. data/bundler/man/bundle-inject.1.txt +4 -4
  111. data/bundler/man/bundle-install.1 +1 -1
  112. data/bundler/man/bundle-install.1.txt +169 -169
  113. data/bundler/man/bundle-list.1 +1 -1
  114. data/bundler/man/bundle-list.1.txt +7 -7
  115. data/bundler/man/bundle-lock.1 +1 -1
  116. data/bundler/man/bundle-lock.1.txt +28 -28
  117. data/bundler/man/bundle-open.1 +1 -1
  118. data/bundler/man/bundle-open.1.txt +3 -3
  119. data/bundler/man/bundle-outdated.1 +1 -1
  120. data/bundler/man/bundle-outdated.1.txt +34 -34
  121. data/bundler/man/bundle-platform.1 +1 -1
  122. data/bundler/man/bundle-platform.1.txt +16 -16
  123. data/bundler/man/bundle-pristine.1 +1 -1
  124. data/bundler/man/bundle-pristine.1.txt +8 -8
  125. data/bundler/man/bundle-remove.1 +1 -1
  126. data/bundler/man/bundle-remove.1.txt +9 -9
  127. data/bundler/man/bundle-show.1 +1 -1
  128. data/bundler/man/bundle-show.1.txt +8 -8
  129. data/bundler/man/bundle-update.1 +1 -1
  130. data/bundler/man/bundle-update.1.txt +149 -148
  131. data/bundler/man/bundle-viz.1 +1 -1
  132. data/bundler/man/bundle-viz.1.txt +11 -11
  133. data/bundler/man/bundle.1 +1 -1
  134. data/bundler/man/bundle.1.txt +31 -31
  135. data/bundler/man/gemfile.5 +1 -1
  136. data/bundler/man/gemfile.5.txt +218 -216
  137. data/lib/rubygems.rb +135 -185
  138. data/lib/rubygems/available_set.rb +4 -4
  139. data/lib/rubygems/basic_specification.rb +12 -6
  140. data/lib/rubygems/bundler_version_finder.rb +14 -9
  141. data/lib/rubygems/command.rb +17 -15
  142. data/lib/rubygems/command_manager.rb +4 -3
  143. data/lib/rubygems/commands/cert_command.rb +1 -1
  144. data/lib/rubygems/commands/cleanup_command.rb +3 -3
  145. data/lib/rubygems/commands/contents_command.rb +4 -4
  146. data/lib/rubygems/commands/dependency_command.rb +6 -6
  147. data/lib/rubygems/commands/fetch_command.rb +2 -2
  148. data/lib/rubygems/commands/help_command.rb +2 -2
  149. data/lib/rubygems/commands/info_command.rb +9 -4
  150. data/lib/rubygems/commands/install_command.rb +3 -3
  151. data/lib/rubygems/commands/list_command.rb +9 -6
  152. data/lib/rubygems/commands/lock_command.rb +1 -1
  153. data/lib/rubygems/commands/open_command.rb +0 -2
  154. data/lib/rubygems/commands/pristine_command.rb +10 -2
  155. data/lib/rubygems/commands/push_command.rb +4 -42
  156. data/lib/rubygems/commands/query_command.rb +7 -352
  157. data/lib/rubygems/commands/search_command.rb +8 -6
  158. data/lib/rubygems/commands/setup_command.rb +156 -45
  159. data/lib/rubygems/commands/sources_command.rb +3 -3
  160. data/lib/rubygems/commands/specification_command.rb +2 -2
  161. data/lib/rubygems/commands/stale_command.rb +1 -1
  162. data/lib/rubygems/commands/uninstall_command.rb +2 -2
  163. data/lib/rubygems/commands/unpack_command.rb +1 -1
  164. data/lib/rubygems/commands/update_command.rb +40 -10
  165. data/lib/rubygems/config_file.rb +11 -2
  166. data/lib/rubygems/core_ext/kernel_require.rb +26 -36
  167. data/lib/rubygems/defaults.rb +99 -5
  168. data/lib/rubygems/dependency.rb +2 -5
  169. data/lib/rubygems/dependency_installer.rb +1 -73
  170. data/lib/rubygems/dependency_list.rb +7 -7
  171. data/lib/rubygems/deprecate.rb +46 -1
  172. data/lib/rubygems/doctor.rb +4 -2
  173. data/lib/rubygems/errors.rb +3 -2
  174. data/lib/rubygems/exceptions.rb +2 -13
  175. data/lib/rubygems/ext.rb +6 -6
  176. data/lib/rubygems/ext/build_error.rb +2 -0
  177. data/lib/rubygems/ext/builder.rb +4 -2
  178. data/lib/rubygems/ext/cmake_builder.rb +1 -1
  179. data/lib/rubygems/ext/ext_conf_builder.rb +6 -7
  180. data/lib/rubygems/gem_runner.rb +3 -8
  181. data/lib/rubygems/gemcutter_utilities.rb +1 -1
  182. data/lib/rubygems/indexer.rb +1 -19
  183. data/lib/rubygems/install_update_options.rb +5 -5
  184. data/lib/rubygems/installer.rb +45 -42
  185. data/lib/rubygems/installer_test_case.rb +19 -2
  186. data/lib/rubygems/installer_uninstaller_utils.rb +24 -0
  187. data/lib/rubygems/local_remote_options.rb +1 -1
  188. data/lib/rubygems/name_tuple.rb +2 -4
  189. data/lib/rubygems/package.rb +8 -13
  190. data/lib/rubygems/package/old.rb +1 -1
  191. data/lib/rubygems/package/tar_header.rb +3 -3
  192. data/lib/rubygems/package/tar_reader.rb +0 -1
  193. data/lib/rubygems/package/tar_reader/entry.rb +0 -1
  194. data/lib/rubygems/package/tar_test_case.rb +1 -1
  195. data/lib/rubygems/package/tar_writer.rb +2 -6
  196. data/lib/rubygems/package_task.rb +1 -5
  197. data/lib/rubygems/path_support.rb +1 -1
  198. data/lib/rubygems/platform.rb +3 -3
  199. data/lib/rubygems/query_utils.rb +362 -0
  200. data/lib/rubygems/rdoc.rb +0 -12
  201. data/lib/rubygems/remote_fetcher.rb +5 -19
  202. data/lib/rubygems/request/connection_pools.rb +1 -1
  203. data/lib/rubygems/request_set.rb +5 -5
  204. data/lib/rubygems/request_set/gem_dependency_api.rb +2 -2
  205. data/lib/rubygems/request_set/lockfile.rb +8 -8
  206. data/lib/rubygems/request_set/lockfile/tokenizer.rb +1 -1
  207. data/lib/rubygems/requirement.rb +14 -15
  208. data/lib/rubygems/resolver.rb +7 -8
  209. data/lib/rubygems/resolver/api_set.rb +4 -4
  210. data/lib/rubygems/resolver/api_specification.rb +1 -1
  211. data/lib/rubygems/resolver/composed_set.rb +3 -3
  212. data/lib/rubygems/resolver/conflict.rb +1 -1
  213. data/lib/rubygems/resolver/index_set.rb +1 -1
  214. data/lib/rubygems/resolver/installer_set.rb +3 -3
  215. data/lib/rubygems/resolver/lock_set.rb +1 -1
  216. data/lib/rubygems/safe_yaml.rb +4 -4
  217. data/lib/rubygems/security.rb +25 -25
  218. data/lib/rubygems/security/policy.rb +3 -3
  219. data/lib/rubygems/security/signer.rb +4 -4
  220. data/lib/rubygems/security/trust_dir.rb +1 -1
  221. data/lib/rubygems/server.rb +9 -9
  222. data/lib/rubygems/source/git.rb +7 -6
  223. data/lib/rubygems/source/local.rb +2 -2
  224. data/lib/rubygems/source_list.rb +6 -5
  225. data/lib/rubygems/spec_fetcher.rb +18 -15
  226. data/lib/rubygems/specification.rb +91 -112
  227. data/lib/rubygems/specification_policy.rb +88 -28
  228. data/lib/rubygems/test_case.rb +122 -81
  229. data/lib/rubygems/test_utilities.rb +6 -6
  230. data/lib/rubygems/uninstaller.rb +35 -14
  231. data/lib/rubygems/user_interaction.rb +1 -10
  232. data/lib/rubygems/util.rb +17 -3
  233. data/lib/rubygems/util/licenses.rb +4 -4
  234. data/lib/rubygems/validator.rb +1 -1
  235. data/lib/rubygems/version.rb +5 -5
  236. data/rubygems-update.gemspec +2 -2
  237. data/setup.rb +2 -7
  238. data/test/rubygems/specifications/bar-0.0.2.gemspec +0 -2
  239. data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +12 -0
  240. data/test/rubygems/test_bundled_ca.rb +1 -5
  241. data/test/rubygems/test_deprecate.rb +43 -4
  242. data/test/rubygems/test_gem.rb +150 -101
  243. data/test/rubygems/test_gem_available_set.rb +3 -3
  244. data/test/rubygems/test_gem_bundler_version_finder.rb +19 -1
  245. data/test/rubygems/test_gem_command.rb +24 -3
  246. data/test/rubygems/test_gem_command_manager.rb +37 -4
  247. data/test/rubygems/test_gem_commands_build_command.rb +25 -3
  248. data/test/rubygems/test_gem_commands_cert_command.rb +2 -2
  249. data/test/rubygems/test_gem_commands_cleanup_command.rb +1 -1
  250. data/test/rubygems/test_gem_commands_contents_command.rb +48 -15
  251. data/test/rubygems/test_gem_commands_environment_command.rb +21 -21
  252. data/test/rubygems/test_gem_commands_generate_index_command.rb +1 -5
  253. data/test/rubygems/test_gem_commands_info_command.rb +6 -6
  254. data/test/rubygems/test_gem_commands_install_command.rb +31 -31
  255. data/test/rubygems/test_gem_commands_mirror.rb +1 -1
  256. data/test/rubygems/test_gem_commands_open_command.rb +4 -4
  257. data/test/rubygems/test_gem_commands_owner_command.rb +11 -3
  258. data/test/rubygems/test_gem_commands_pristine_command.rb +41 -8
  259. data/test/rubygems/test_gem_commands_push_command.rb +7 -2
  260. data/test/rubygems/test_gem_commands_query_command.rb +9 -5
  261. data/test/rubygems/test_gem_commands_setup_command.rb +212 -114
  262. data/test/rubygems/test_gem_commands_signin_command.rb +6 -4
  263. data/test/rubygems/test_gem_commands_signout_command.rb +0 -5
  264. data/test/rubygems/test_gem_commands_sources_command.rb +39 -1
  265. data/test/rubygems/test_gem_commands_specification_command.rb +18 -18
  266. data/test/rubygems/test_gem_commands_uninstall_command.rb +2 -1
  267. data/test/rubygems/test_gem_commands_update_command.rb +68 -5
  268. data/test/rubygems/test_gem_commands_which_command.rb +3 -3
  269. data/test/rubygems/test_gem_commands_yank_command.rb +14 -6
  270. data/test/rubygems/test_gem_config_file.rb +7 -10
  271. data/test/rubygems/test_gem_dependency_installer.rb +52 -189
  272. data/test/rubygems/test_gem_dependency_list.rb +8 -8
  273. data/test/rubygems/test_gem_dependency_resolution_error.rb +1 -1
  274. data/test/rubygems/test_gem_doctor.rb +28 -0
  275. data/test/rubygems/test_gem_ext_builder.rb +14 -25
  276. data/test/rubygems/test_gem_ext_cmake_builder.rb +13 -12
  277. data/test/rubygems/test_gem_ext_configure_builder.rb +1 -9
  278. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +0 -1
  279. data/test/rubygems/test_gem_ext_rake_builder.rb +9 -9
  280. data/test/rubygems/test_gem_gem_runner.rb +42 -0
  281. data/test/rubygems/test_gem_gemcutter_utilities.rb +5 -0
  282. data/test/rubygems/test_gem_indexer.rb +9 -13
  283. data/test/rubygems/test_gem_installer.rb +158 -67
  284. data/test/rubygems/test_gem_package.rb +16 -20
  285. data/test/rubygems/test_gem_package_tar_header.rb +19 -0
  286. data/test/rubygems/test_gem_package_tar_writer.rb +8 -3
  287. data/test/rubygems/test_gem_package_task.rb +46 -11
  288. data/test/rubygems/test_gem_remote_fetcher.rb +152 -190
  289. data/test/rubygems/test_gem_request.rb +11 -11
  290. data/test/rubygems/test_gem_request_set.rb +72 -20
  291. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +3 -3
  292. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +9 -9
  293. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +118 -118
  294. data/test/rubygems/test_gem_requirement.rb +2 -2
  295. data/test/rubygems/test_gem_resolver.rb +6 -6
  296. data/test/rubygems/test_gem_resolver_api_set.rb +3 -3
  297. data/test/rubygems/test_gem_resolver_best_set.rb +2 -2
  298. data/test/rubygems/test_gem_resolver_index_set.rb +2 -2
  299. data/test/rubygems/test_gem_resolver_installer_set.rb +7 -7
  300. data/test/rubygems/test_gem_resolver_lock_set.rb +3 -3
  301. data/test/rubygems/test_gem_security.rb +20 -20
  302. data/test/rubygems/test_gem_security_policy.rb +5 -8
  303. data/test/rubygems/test_gem_security_signer.rb +8 -8
  304. data/test/rubygems/test_gem_security_trust_dir.rb +2 -2
  305. data/test/rubygems/test_gem_server.rb +10 -10
  306. data/test/rubygems/test_gem_source.rb +12 -14
  307. data/test/rubygems/test_gem_source_git.rb +12 -11
  308. data/test/rubygems/test_gem_source_installed.rb +7 -7
  309. data/test/rubygems/test_gem_source_local.rb +8 -8
  310. data/test/rubygems/test_gem_source_lock.rb +10 -10
  311. data/test/rubygems/test_gem_source_specific_file.rb +7 -7
  312. data/test/rubygems/test_gem_source_vendor.rb +7 -7
  313. data/test/rubygems/test_gem_spec_fetcher.rb +11 -2
  314. data/test/rubygems/test_gem_specification.rb +169 -119
  315. data/test/rubygems/test_gem_stream_ui.rb +3 -1
  316. data/test/rubygems/test_gem_stub_specification.rb +0 -1
  317. data/test/rubygems/test_gem_text.rb +1 -1
  318. data/test/rubygems/test_gem_uninstaller.rb +134 -10
  319. data/test/rubygems/test_gem_util.rb +7 -5
  320. data/test/rubygems/test_gem_version.rb +1 -1
  321. data/test/rubygems/test_kernel.rb +25 -8
  322. data/test/rubygems/test_project_sanity.rb +8 -1
  323. data/test/rubygems/test_require.rb +242 -40
  324. metadata +33 -46
  325. data/.bundle/config +0 -2
  326. data/.rubocop.yml +0 -91
  327. data/Gemfile +0 -8
  328. data/Gemfile.lock +0 -43
  329. data/bundler/CODE_OF_CONDUCT.md +0 -136
  330. data/lib/rubygems/source_local.rb +0 -7
  331. data/lib/rubygems/source_specific_file.rb +0 -6
  332. data/lib/ubygems.rb +0 -14
  333. data/tmp/.keep +0 -0
  334. data/util/CL2notes +0 -55
  335. data/util/bisect +0 -10
  336. data/util/ci.sh +0 -62
  337. data/util/cops/deprecations.rb +0 -52
  338. data/util/create_certs.rb +0 -171
  339. data/util/create_certs.sh +0 -27
  340. data/util/create_encrypted_key.rb +0 -16
  341. data/util/generate_spdx_license_list.rb +0 -63
  342. data/util/patch_with_prs.rb +0 -77
  343. data/util/rubocop +0 -8
  344. data/util/update_bundled_ca_certificates.rb +0 -139
  345. data/util/update_changelog.rb +0 -67
@@ -6,9 +6,6 @@
6
6
  # See LICENSE.txt for permissions.
7
7
  #++
8
8
 
9
- require 'rubygems/version'
10
- require 'rubygems/requirement'
11
- require 'rubygems/platform'
12
9
  require 'rubygems/deprecate'
13
10
  require 'rubygems/basic_specification'
14
11
  require 'rubygems/stub_specification'
@@ -180,8 +177,8 @@ class Gem::Specification < Gem::BasicSpecification
180
177
  end
181
178
  end
182
179
 
183
- @@attributes = @@default_value.keys.sort_by { |s| s.to_s }
184
- @@array_attributes = @@default_value.reject { |k,v| v != [] }.keys
180
+ @@attributes = @@default_value.keys.sort_by {|s| s.to_s }
181
+ @@array_attributes = @@default_value.reject {|k,v| v != [] }.keys
185
182
  @@nil_attributes, @@non_nil_attributes = @@default_value.keys.partition do |k|
186
183
  @@default_value[k].nil?
187
184
  end
@@ -193,6 +190,12 @@ class Gem::Specification < Gem::BasicSpecification
193
190
  @@spec_with_requirable_file = {}
194
191
  @@active_stub_with_requirable_file = {}
195
192
 
193
+ # Tracking removed method calls to warn users during build time.
194
+ REMOVED_METHODS = [:rubyforge_project=].freeze # :nodoc:
195
+ def removed_method_calls
196
+ @removed_method_calls ||= []
197
+ end
198
+
196
199
  ######################################################################
197
200
  # :section: Required gemspec attributes
198
201
 
@@ -243,12 +246,11 @@ class Gem::Specification < Gem::BasicSpecification
243
246
  # require 'rake'
244
247
  # spec.files = FileList['lib/**/*.rb',
245
248
  # 'bin/*',
246
- # '[A-Z]*',
247
- # 'test/**/*'].to_a
249
+ # '[A-Z]*'].to_a
248
250
  #
249
251
  # # or without Rake...
250
252
  # spec.files = Dir['lib/**/*.rb'] + Dir['bin/*']
251
- # spec.files += Dir['[A-Z]*'] + Dir['test/**/*']
253
+ # spec.files += Dir['[A-Z]*']
252
254
  # spec.files.reject! { |fn| fn.include? "CVS" }
253
255
 
254
256
  def files
@@ -384,6 +386,7 @@ class Gem::Specification < Gem::BasicSpecification
384
386
  # "mailing_list_uri" => "https://groups.example.com/bestgemever",
385
387
  # "source_code_uri" => "https://example.com/user/bestgemever",
386
388
  # "wiki_uri" => "https://example.com/user/bestgemever/wiki"
389
+ # "funding_uri" => "https://example.com/donate"
387
390
  # }
388
391
  #
389
392
  # These links will be used on your gem's page on rubygems.org and must pass
@@ -719,21 +722,13 @@ class Gem::Specification < Gem::BasicSpecification
719
722
  # Deprecated: You must now specify the executable name to Gem.bin_path.
720
723
 
721
724
  attr_writer :default_executable
722
- deprecate :default_executable=, :none, 2018, 12
725
+ rubygems_deprecate :default_executable=
723
726
 
724
727
  ##
725
728
  # Allows deinstallation of gems with legacy platforms.
726
729
 
727
730
  attr_writer :original_platform # :nodoc:
728
731
 
729
- ##
730
- # Deprecated and ignored.
731
- #
732
- # Formerly used to set rubyforge project.
733
-
734
- attr_writer :rubyforge_project
735
- deprecate :rubyforge_project=, :none, 2019, 12
736
-
737
732
  ##
738
733
  # The Gem::Specification version of this gemspec.
739
734
  #
@@ -748,8 +743,8 @@ class Gem::Specification < Gem::BasicSpecification
748
743
  # After a reset, make sure already loaded specs
749
744
  # are still marked as activated.
750
745
  specs = {}
751
- Gem.loaded_specs.each_value{|s| specs[s] = true}
752
- @@all.each{|s| s.activated = true if specs[s]}
746
+ Gem.loaded_specs.each_value{|s| specs[s] = true }
747
+ @@all.each{|s| s.activated = true if specs[s] }
753
748
  end
754
749
  @@all
755
750
  end
@@ -769,7 +764,7 @@ class Gem::Specification < Gem::BasicSpecification
769
764
  end
770
765
 
771
766
  def self.gemspec_stubs_in(dir, pattern)
772
- Gem::Util.glob_files_in_dir(pattern, dir).map { |path| yield path }.select(&:valid?)
767
+ Gem::Util.glob_files_in_dir(pattern, dir).map {|path| yield path }.select(&:valid?)
773
768
  end
774
769
  private_class_method :gemspec_stubs_in
775
770
 
@@ -784,21 +779,11 @@ class Gem::Specification < Gem::BasicSpecification
784
779
  dirs.flat_map do |dir|
785
780
  base_dir = File.dirname dir
786
781
  gems_dir = File.join base_dir, "gems"
787
- gemspec_stubs_in(dir, pattern) { |path| yield path, base_dir, gems_dir }
782
+ gemspec_stubs_in(dir, pattern) {|path| yield path, base_dir, gems_dir }
788
783
  end
789
784
  end
790
785
  private_class_method :map_stubs
791
786
 
792
- def self.uniq_by(list, &block) # :nodoc:
793
- list.uniq(&block)
794
- end
795
- private_class_method :uniq_by
796
-
797
- def self.sort_by!(list, &block)
798
- list.sort_by!(&block)
799
- end
800
- private_class_method :sort_by!
801
-
802
787
  def self.each_spec(dirs) # :nodoc:
803
788
  each_gemspec(dirs) do |path|
804
789
  spec = self.load path
@@ -812,11 +797,11 @@ class Gem::Specification < Gem::BasicSpecification
812
797
  def self.stubs
813
798
  @@stubs ||= begin
814
799
  pattern = "*.gemspec"
815
- stubs = Gem.loaded_specs.values + installed_stubs(dirs, pattern) + default_stubs(pattern)
816
- stubs = uniq_by(stubs) { |stub| stub.full_name }
800
+ stubs = installed_stubs(dirs, pattern) + default_stubs(pattern)
801
+ stubs = stubs.uniq {|stub| stub.full_name }
817
802
 
818
803
  _resort!(stubs)
819
- @@stubs_by_name = stubs.select { |s| Gem::Platform.match s.platform }.group_by(&:name)
804
+ @@stubs_by_name = stubs.select {|s| Gem::Platform.match s.platform }.group_by(&:name)
820
805
  stubs
821
806
  end
822
807
  end
@@ -839,15 +824,13 @@ class Gem::Specification < Gem::BasicSpecification
839
824
  # only returns stubs that match Gem.platforms
840
825
 
841
826
  def self.stubs_for(name)
842
- if @@stubs
843
- @@stubs_by_name[name] || []
827
+ if @@stubs_by_name[name]
828
+ @@stubs_by_name[name]
844
829
  else
845
830
  pattern = "#{name}-*.gemspec"
846
- stubs = Gem.loaded_specs.values +
847
- installed_stubs(dirs, pattern).select { |s| Gem::Platform.match s.platform } +
848
- default_stubs(pattern)
849
- stubs = uniq_by(stubs) { |stub| stub.full_name }.group_by(&:name)
850
- stubs.each_value { |v| _resort!(v) }
831
+ stubs = installed_stubs(dirs, pattern).select {|s| Gem::Platform.match s.platform } + default_stubs(pattern)
832
+ stubs = stubs.uniq {|stub| stub.full_name }.group_by(&:name)
833
+ stubs.each_value {|v| _resort!(v) }
851
834
 
852
835
  @@stubs_by_name.merge! stubs
853
836
  @@stubs_by_name[name] ||= EMPTY
@@ -941,7 +924,7 @@ class Gem::Specification < Gem::BasicSpecification
941
924
  def self.dirs=(dirs)
942
925
  self.reset
943
926
 
944
- @@dirs = Array(dirs).map { |dir| File.join dir, "specifications" }
927
+ @@dirs = Array(dirs).map {|dir| File.join dir, "specifications" }
945
928
  end
946
929
 
947
930
  extend Enumerable
@@ -1025,9 +1008,9 @@ class Gem::Specification < Gem::BasicSpecification
1025
1008
 
1026
1009
  def self.find_in_unresolved(path)
1027
1010
  # TODO: do we need these?? Kill it
1028
- specs = unresolved_deps.values.map { |dep| dep.to_specs }.flatten
1011
+ specs = unresolved_deps.values.map {|dep| dep.to_specs }.flatten
1029
1012
 
1030
- specs.find_all { |spec| spec.contains_requirable_file? path }
1013
+ specs.find_all {|spec| spec.contains_requirable_file? path }
1031
1014
  end
1032
1015
 
1033
1016
  ##
@@ -1035,7 +1018,7 @@ class Gem::Specification < Gem::BasicSpecification
1035
1018
  # specs that contain the file matching +path+.
1036
1019
 
1037
1020
  def self.find_in_unresolved_tree(path)
1038
- specs = unresolved_deps.values.map { |dep| dep.to_specs }.flatten
1021
+ specs = unresolved_deps.values.map {|dep| dep.to_specs }.flatten
1039
1022
 
1040
1023
  specs.each do |spec|
1041
1024
  spec.traverse do |from_spec, dep, to_spec, trail|
@@ -1086,8 +1069,15 @@ class Gem::Specification < Gem::BasicSpecification
1086
1069
  _latest_specs Gem::Specification._all, prerelease
1087
1070
  end
1088
1071
 
1072
+ ##
1073
+ # Return the latest installed spec for gem +name+.
1074
+
1075
+ def self.latest_spec_for(name)
1076
+ latest_specs(true).find {|installed_spec| installed_spec.name == name }
1077
+ end
1078
+
1089
1079
  def self._latest_specs(specs, prerelease = false) # :nodoc:
1090
- result = Hash.new { |h,k| h[k] = {} }
1080
+ result = Hash.new {|h,k| h[k] = {} }
1091
1081
  native = {}
1092
1082
 
1093
1083
  specs.reverse_each do |spec|
@@ -1100,7 +1090,7 @@ class Gem::Specification < Gem::BasicSpecification
1100
1090
  result.map(&:last).map(&:values).flatten.reject do |spec|
1101
1091
  minimum = native[spec.name]
1102
1092
  minimum && spec.version < minimum
1103
- end.sort_by{ |tup| tup.name }
1093
+ end.sort_by{|tup| tup.name }
1104
1094
  end
1105
1095
 
1106
1096
  ##
@@ -1157,7 +1147,7 @@ class Gem::Specification < Gem::BasicSpecification
1157
1147
 
1158
1148
  def self.normalize_yaml_input(input)
1159
1149
  result = input.respond_to?(:read) ? input.read : input
1160
- result = "--- " + result unless result =~ /\A--- /
1150
+ result = "--- " + result unless result.start_with?("--- ")
1161
1151
  result = result.dup
1162
1152
  result.gsub!(/ !!null \n/, " \n")
1163
1153
  # date: 2011-04-26 00:00:00.000000000Z
@@ -1174,7 +1164,7 @@ class Gem::Specification < Gem::BasicSpecification
1174
1164
  # version as well.
1175
1165
 
1176
1166
  def self.outdated
1177
- outdated_and_latest_version.map { |local, _| local.name }
1167
+ outdated_and_latest_version.map {|local, _| local.name }
1178
1168
  end
1179
1169
 
1180
1170
  ##
@@ -1195,7 +1185,7 @@ class Gem::Specification < Gem::BasicSpecification
1195
1185
  Gem::Dependency.new local_spec.name, ">= #{local_spec.version}"
1196
1186
 
1197
1187
  remotes, = fetcher.search_for_dependency dependency
1198
- remotes = remotes.map { |n, _| n.version }
1188
+ remotes = remotes.map {|n, _| n.version }
1199
1189
 
1200
1190
  latest_remote = remotes.sort.last
1201
1191
 
@@ -1226,7 +1216,7 @@ class Gem::Specification < Gem::BasicSpecification
1226
1216
 
1227
1217
  def self.reset
1228
1218
  @@dirs = nil
1229
- Gem.pre_reset_hooks.each { |hook| hook.call }
1219
+ Gem.pre_reset_hooks.each {|hook| hook.call }
1230
1220
  @@all = nil
1231
1221
  @@stubs = nil
1232
1222
  @@stubs_by_name = {}
@@ -1243,19 +1233,19 @@ class Gem::Specification < Gem::BasicSpecification
1243
1233
  versions = find_all_by_name(dep.name)
1244
1234
  unless versions.empty?
1245
1235
  warn " Available/installed versions of this gem:"
1246
- versions.each { |s| warn " - #{s.version}" }
1236
+ versions.each {|s| warn " - #{s.version}" }
1247
1237
  end
1248
1238
  end
1249
1239
  warn "#{w}: Clearing out unresolved specs. Try 'gem cleanup <gem>'"
1250
1240
  warn "Please report a bug if this causes problems."
1251
1241
  unresolved.clear
1252
1242
  end
1253
- Gem.post_reset_hooks.each { |hook| hook.call }
1243
+ Gem.post_reset_hooks.each {|hook| hook.call }
1254
1244
  end
1255
1245
 
1256
1246
  # DOC: This method needs documented or nodoc'd
1257
1247
  def self.unresolved_deps
1258
- @unresolved_deps ||= Hash.new { |h, n| h[n] = Gem::Dependency.new n }
1248
+ @unresolved_deps ||= Hash.new {|h, n| h[n] = Gem::Dependency.new n }
1259
1249
  end
1260
1250
 
1261
1251
  ##
@@ -1286,7 +1276,7 @@ class Gem::Specification < Gem::BasicSpecification
1286
1276
  # Cleanup any YAML::PrivateType. They only show up for an old bug
1287
1277
  # where nil => null, so just convert them to nil based on the type.
1288
1278
 
1289
- array.map! { |e| e.kind_of?(YAML::PrivateType) ? nil : e }
1279
+ array.map! {|e| e.kind_of?(YAML::PrivateType) ? nil : e }
1290
1280
 
1291
1281
  spec.instance_variable_set :@rubygems_version, array[0]
1292
1282
  # spec version
@@ -1399,7 +1389,11 @@ class Gem::Specification < Gem::BasicSpecification
1399
1389
  raise e
1400
1390
  end
1401
1391
 
1402
- specs = spec_dep.to_specs
1392
+ begin
1393
+ specs = spec_dep.to_specs
1394
+ rescue Gem::MissingSpecError => e
1395
+ raise Gem::MissingSpecError.new(e.name, e.requirement, "at: #{self.spec_file}")
1396
+ end
1403
1397
 
1404
1398
  if specs.size == 1
1405
1399
  specs.first.activate
@@ -1435,7 +1429,7 @@ class Gem::Specification < Gem::BasicSpecification
1435
1429
  self.summary = sanitize_string(summary)
1436
1430
  self.description = sanitize_string(description)
1437
1431
  self.post_install_message = sanitize_string(post_install_message)
1438
- self.authors = authors.collect { |a| sanitize_string(a) }
1432
+ self.authors = authors.collect {|a| sanitize_string(a) }
1439
1433
  end
1440
1434
 
1441
1435
  ##
@@ -1447,13 +1441,7 @@ class Gem::Specification < Gem::BasicSpecification
1447
1441
  # HACK the #to_s is in here because RSpec has an Array of Arrays of
1448
1442
  # Strings for authors. Need a way to disallow bad values on gemspec
1449
1443
  # generation. (Probably won't happen.)
1450
- string = string.to_s
1451
-
1452
- begin
1453
- Builder::XChar.encode string
1454
- rescue NameError, NoMethodError
1455
- string.to_xs
1456
- end
1444
+ string.to_s
1457
1445
  end
1458
1446
 
1459
1447
  ##
@@ -1464,7 +1452,7 @@ class Gem::Specification < Gem::BasicSpecification
1464
1452
  return nil if executables.nil?
1465
1453
 
1466
1454
  if @bindir
1467
- Array(executables).map { |e| File.join(@bindir, e) }
1455
+ Array(executables).map {|e| File.join(@bindir, e) }
1468
1456
  else
1469
1457
  executables
1470
1458
  end
@@ -1546,7 +1534,7 @@ class Gem::Specification < Gem::BasicSpecification
1546
1534
  def build_args
1547
1535
  if File.exist? build_info_file
1548
1536
  build_info = File.readlines build_info_file
1549
- build_info = build_info.map { |x| x.strip }
1537
+ build_info = build_info.map {|x| x.strip }
1550
1538
  build_info.delete ""
1551
1539
  build_info
1552
1540
  else
@@ -1638,7 +1626,7 @@ class Gem::Specification < Gem::BasicSpecification
1638
1626
 
1639
1627
  def conficts_when_loaded_with?(list_of_specs) # :nodoc:
1640
1628
  result = list_of_specs.any? do |spec|
1641
- spec.dependencies.any? { |dep| dep.runtime? && (dep.name == name) && !satisfies_requirement?(dep) }
1629
+ spec.dependencies.any? {|dep| dep.runtime? && (dep.name == name) && !satisfies_requirement?(dep) }
1642
1630
  end
1643
1631
  result
1644
1632
  end
@@ -1727,7 +1715,7 @@ class Gem::Specification < Gem::BasicSpecification
1727
1715
  end
1728
1716
  result
1729
1717
  end
1730
- deprecate :default_executable, :none, 2018, 12
1718
+ rubygems_deprecate :default_executable
1731
1719
 
1732
1720
  ##
1733
1721
  # The default value for specification attribute +name+
@@ -1752,10 +1740,11 @@ class Gem::Specification < Gem::BasicSpecification
1752
1740
  #
1753
1741
  # [depending_gem, dependency, [list_of_gems_that_satisfy_dependency]]
1754
1742
 
1755
- def dependent_gems
1743
+ def dependent_gems(check_dev=true)
1756
1744
  out = []
1757
1745
  Gem::Specification.each do |spec|
1758
- spec.dependencies.each do |dep|
1746
+ deps = check_dev ? spec.dependencies : spec.runtime_dependencies
1747
+ deps.each do |dep|
1759
1748
  if self.satisfies_requirement?(dep)
1760
1749
  sats = []
1761
1750
  find_all_satisfiers(dep) do |sat|
@@ -1772,7 +1761,7 @@ class Gem::Specification < Gem::BasicSpecification
1772
1761
  # Returns all specs that matches this spec's runtime dependencies.
1773
1762
 
1774
1763
  def dependent_specs
1775
- runtime_dependencies.map { |dep| dep.to_specs }.flatten
1764
+ runtime_dependencies.map {|dep| dep.to_specs }.flatten
1776
1765
  end
1777
1766
 
1778
1767
  ##
@@ -1786,7 +1775,7 @@ class Gem::Specification < Gem::BasicSpecification
1786
1775
  # List of dependencies that are used for development
1787
1776
 
1788
1777
  def development_dependencies
1789
- dependencies.select { |d| d.type == :development }
1778
+ dependencies.select {|d| d.type == :development }
1790
1779
  end
1791
1780
 
1792
1781
  ##
@@ -1847,29 +1836,23 @@ class Gem::Specification < Gem::BasicSpecification
1847
1836
  end
1848
1837
 
1849
1838
  ##
1850
- # Sets executables to +value+, ensuring it is an array. Don't
1851
- # use this, push onto the array instead.
1839
+ # Sets executables to +value+, ensuring it is an array.
1852
1840
 
1853
1841
  def executables=(value)
1854
- # TODO: warn about setting instead of pushing
1855
1842
  @executables = Array(value)
1856
1843
  end
1857
1844
 
1858
1845
  ##
1859
- # Sets extensions to +extensions+, ensuring it is an array. Don't
1860
- # use this, push onto the array instead.
1846
+ # Sets extensions to +extensions+, ensuring it is an array.
1861
1847
 
1862
1848
  def extensions=(extensions)
1863
- # TODO: warn about setting instead of pushing
1864
1849
  @extensions = Array extensions
1865
1850
  end
1866
1851
 
1867
1852
  ##
1868
- # Sets extra_rdoc_files to +files+, ensuring it is an array. Don't
1869
- # use this, push onto the array instead.
1853
+ # Sets extra_rdoc_files to +files+, ensuring it is an array.
1870
1854
 
1871
1855
  def extra_rdoc_files=(files)
1872
- # TODO: warn about setting instead of pushing
1873
1856
  @extra_rdoc_files = Array files
1874
1857
  end
1875
1858
 
@@ -1935,7 +1918,7 @@ class Gem::Specification < Gem::BasicSpecification
1935
1918
  def has_rdoc # :nodoc:
1936
1919
  true
1937
1920
  end
1938
- deprecate :has_rdoc, :none, 2018, 12
1921
+ rubygems_deprecate :has_rdoc
1939
1922
 
1940
1923
  ##
1941
1924
  # Deprecated and ignored.
@@ -1945,10 +1928,10 @@ class Gem::Specification < Gem::BasicSpecification
1945
1928
  def has_rdoc=(ignored) # :nodoc:
1946
1929
  @has_rdoc = true
1947
1930
  end
1948
- deprecate :has_rdoc=, :none, 2018, 12
1931
+ rubygems_deprecate :has_rdoc=
1949
1932
 
1950
1933
  alias :has_rdoc? :has_rdoc # :nodoc:
1951
- deprecate :has_rdoc?, :none, 2018, 12
1934
+ rubygems_deprecate :has_rdoc?
1952
1935
 
1953
1936
  ##
1954
1937
  # True if this gem has files in test_files
@@ -1970,7 +1953,7 @@ class Gem::Specification < Gem::BasicSpecification
1970
1953
  yaml_initialize coder.tag, coder.map
1971
1954
  end
1972
1955
 
1973
- eval <<-RB, binding, __FILE__, __LINE__ + 1
1956
+ eval <<-RUBY, binding, __FILE__, __LINE__ + 1
1974
1957
  def set_nil_attributes_to_nil
1975
1958
  #{@@nil_attributes.map {|key| "@#{key} = nil" }.join "; "}
1976
1959
  end
@@ -1980,7 +1963,7 @@ class Gem::Specification < Gem::BasicSpecification
1980
1963
  #{@@non_nil_attributes.map {|key| "@#{key} = #{INITIALIZE_CODE_FOR_DEFAULTS[key]}" }.join ";"}
1981
1964
  end
1982
1965
  private :set_not_nil_attributes_to_default_values
1983
- RB
1966
+ RUBY
1984
1967
 
1985
1968
  ##
1986
1969
  # Specification constructor. Assigns the default values to the attributes
@@ -2107,11 +2090,17 @@ class Gem::Specification < Gem::BasicSpecification
2107
2090
  end
2108
2091
 
2109
2092
  ##
2093
+ # Track removed method calls to warn about during build time.
2110
2094
  # Warn about unknown attributes while loading a spec.
2111
2095
 
2112
2096
  def method_missing(sym, *a, &b) # :nodoc:
2097
+ if REMOVED_METHODS.include?(sym)
2098
+ removed_method_calls << sym
2099
+ return
2100
+ end
2101
+
2113
2102
  if @specification_version > CURRENT_SPECIFICATION_VERSION and
2114
- sym.to_s =~ /=$/
2103
+ sym.to_s.end_with?("=")
2115
2104
  warn "ignoring #{sym} loading #{full_name}" if $DEBUG
2116
2105
  else
2117
2106
  super
@@ -2195,7 +2184,7 @@ class Gem::Specification < Gem::BasicSpecification
2195
2184
 
2196
2185
  attributes.each do |attr_name|
2197
2186
  current_value = self.send attr_name
2198
- current_value = current_value.sort if %i(files test_files).include? attr_name
2187
+ current_value = current_value.sort if %i[files test_files].include? attr_name
2199
2188
  if current_value != default_value(attr_name) or
2200
2189
  self.class.required_attribute? attr_name
2201
2190
 
@@ -2245,11 +2234,9 @@ class Gem::Specification < Gem::BasicSpecification
2245
2234
  end
2246
2235
 
2247
2236
  ##
2248
- # Sets rdoc_options to +value+, ensuring it is an array. Don't
2249
- # use this, push onto the array instead.
2237
+ # Sets rdoc_options to +value+, ensuring it is an array.
2250
2238
 
2251
2239
  def rdoc_options=(options)
2252
- # TODO: warn about setting instead of pushing
2253
2240
  @rdoc_options = Array options
2254
2241
  end
2255
2242
 
@@ -2268,11 +2255,9 @@ class Gem::Specification < Gem::BasicSpecification
2268
2255
  end
2269
2256
 
2270
2257
  ##
2271
- # Set requirements to +req+, ensuring it is an array. Don't
2272
- # use this, push onto the array instead.
2258
+ # Set requirements to +req+, ensuring it is an array.
2273
2259
 
2274
2260
  def requirements=(req)
2275
- # TODO: warn about setting instead of pushing
2276
2261
  @requirements = Array req
2277
2262
  end
2278
2263
 
@@ -2294,9 +2279,9 @@ class Gem::Specification < Gem::BasicSpecification
2294
2279
  def ruby_code(obj)
2295
2280
  case obj
2296
2281
  when String then obj.dump + ".freeze"
2297
- when Array then '[' + obj.map { |x| ruby_code x }.join(", ") + ']'
2282
+ when Array then '[' + obj.map {|x| ruby_code x }.join(", ") + ']'
2298
2283
  when Hash then
2299
- seg = obj.keys.sort.map { |k| "#{k.to_s.dump} => #{obj[k].to_s.dump}" }
2284
+ seg = obj.keys.sort.map {|k| "#{k.to_s.dump} => #{obj[k].to_s.dump}" }
2300
2285
  "{ #{seg.join(', ')} }"
2301
2286
  when Gem::Version then obj.to_s.dump
2302
2287
  when DateLike then obj.strftime('%Y-%m-%d').dump
@@ -2324,7 +2309,7 @@ class Gem::Specification < Gem::BasicSpecification
2324
2309
  # True if this gem has the same attributes as +other+.
2325
2310
 
2326
2311
  def same_attributes?(spec)
2327
- @@attributes.all? { |name, default| self.send(name) == spec.send(name) }
2312
+ @@attributes.all? {|name, default| self.send(name) == spec.send(name) }
2328
2313
  end
2329
2314
 
2330
2315
  private :same_attributes?
@@ -2566,7 +2551,7 @@ class Gem::Specification < Gem::BasicSpecification
2566
2551
  unless result == :next
2567
2552
  spec_name = dep_spec.name
2568
2553
  dep_spec.traverse(trail, visited, &block) unless
2569
- trail.any? { |s| s.name == spec_name }
2554
+ trail.any? {|s| s.name == spec_name }
2570
2555
  end
2571
2556
  end
2572
2557
  end
@@ -2591,30 +2576,27 @@ class Gem::Specification < Gem::BasicSpecification
2591
2576
  end
2592
2577
 
2593
2578
  def keep_only_files_and_directories
2594
- @executables.delete_if { |x| File.directory?(File.join(@bindir, x)) }
2595
- @extensions.delete_if { |x| File.directory?(x) && !File.symlink?(x) }
2596
- @extra_rdoc_files.delete_if { |x| File.directory?(x) && !File.symlink?(x) }
2597
- @files.delete_if { |x| File.directory?(x) && !File.symlink?(x) }
2598
- @test_files.delete_if { |x| File.directory?(x) && !File.symlink?(x) }
2579
+ @executables.delete_if {|x| File.directory?(File.join(@bindir, x)) }
2580
+ @extensions.delete_if {|x| File.directory?(x) && !File.symlink?(x) }
2581
+ @extra_rdoc_files.delete_if {|x| File.directory?(x) && !File.symlink?(x) }
2582
+ @files.delete_if {|x| File.directory?(x) && !File.symlink?(x) }
2583
+ @test_files.delete_if {|x| File.directory?(x) && !File.symlink?(x) }
2599
2584
  end
2600
2585
 
2601
2586
  def validate_metadata
2602
2587
  Gem::SpecificationPolicy.new(self).validate_metadata
2603
2588
  end
2589
+ rubygems_deprecate :validate_metadata
2604
2590
 
2605
- ##
2606
- # Checks that dependencies use requirements as we recommend. Warnings are
2607
- # issued when dependencies are open-ended or overly strict for semantic
2608
- # versioning.
2609
2591
  def validate_dependencies
2610
2592
  Gem::SpecificationPolicy.new(self).validate_dependencies
2611
2593
  end
2594
+ rubygems_deprecate :validate_dependencies
2612
2595
 
2613
- ##
2614
- # Checks to see if the files to be packaged are world-readable.
2615
2596
  def validate_permissions
2616
2597
  Gem::SpecificationPolicy.new(self).validate_permissions
2617
2598
  end
2599
+ rubygems_deprecate :validate_permissions
2618
2600
 
2619
2601
  ##
2620
2602
  # Set the version to +version+, potentially also setting
@@ -2679,6 +2661,3 @@ class Gem::Specification < Gem::BasicSpecification
2679
2661
  end
2680
2662
 
2681
2663
  end
2682
-
2683
- # DOC: What is this and why is it here, randomly, at the end of this file?
2684
- Gem.clear_paths