rubygems-update 3.3.7 → 3.4.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (600) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1419 -1036
  3. data/CONTRIBUTING.md +30 -7
  4. data/Manifest.txt +63 -31
  5. data/POLICIES.md +53 -18
  6. data/README.md +3 -6
  7. data/bin/gem +2 -5
  8. data/bin/update_rubygems +5 -5
  9. data/bundler/CHANGELOG.md +457 -1
  10. data/bundler/README.md +3 -6
  11. data/bundler/UPGRADING.md +11 -4
  12. data/bundler/bundler.gemspec +8 -10
  13. data/bundler/exe/bundle +2 -5
  14. data/bundler/exe/bundler +1 -1
  15. data/bundler/lib/bundler/build_metadata.rb +3 -3
  16. data/bundler/lib/bundler/cli/add.rb +1 -1
  17. data/bundler/lib/bundler/cli/binstubs.rb +5 -1
  18. data/bundler/lib/bundler/cli/check.rb +1 -1
  19. data/bundler/lib/bundler/cli/common.rb +4 -2
  20. data/bundler/lib/bundler/cli/console.rb +2 -2
  21. data/bundler/lib/bundler/cli/doctor.rb +4 -6
  22. data/bundler/lib/bundler/cli/gem.rb +62 -40
  23. data/bundler/lib/bundler/cli/info.rb +1 -1
  24. data/bundler/lib/bundler/cli/init.rb +6 -2
  25. data/bundler/lib/bundler/cli/install.rb +7 -5
  26. data/bundler/lib/bundler/cli/lock.rb +8 -5
  27. data/bundler/lib/bundler/cli/open.rb +6 -4
  28. data/bundler/lib/bundler/cli/outdated.rb +13 -6
  29. data/bundler/lib/bundler/cli/platform.rb +1 -1
  30. data/bundler/lib/bundler/cli/show.rb +1 -1
  31. data/bundler/lib/bundler/cli/viz.rb +1 -1
  32. data/bundler/lib/bundler/cli.rb +55 -10
  33. data/bundler/lib/bundler/compact_index_client/cache.rb +1 -1
  34. data/bundler/lib/bundler/compact_index_client/updater.rb +53 -39
  35. data/bundler/lib/bundler/constants.rb +1 -1
  36. data/bundler/lib/bundler/current_ruby.rb +18 -6
  37. data/bundler/lib/bundler/definition.rb +206 -129
  38. data/bundler/lib/bundler/dependency.rb +21 -66
  39. data/bundler/lib/bundler/digest.rb +1 -1
  40. data/bundler/lib/bundler/dsl.rb +13 -18
  41. data/bundler/lib/bundler/endpoint_specification.rb +6 -10
  42. data/bundler/lib/bundler/env.rb +1 -1
  43. data/bundler/lib/bundler/environment_preserver.rb +3 -2
  44. data/bundler/lib/bundler/errors.rb +15 -15
  45. data/bundler/lib/bundler/feature_flag.rb +0 -1
  46. data/bundler/lib/bundler/fetcher/base.rb +6 -8
  47. data/bundler/lib/bundler/fetcher/compact_index.rb +9 -11
  48. data/bundler/lib/bundler/fetcher/dependency.rb +1 -1
  49. data/bundler/lib/bundler/fetcher/downloader.rb +2 -5
  50. data/bundler/lib/bundler/fetcher.rb +15 -14
  51. data/bundler/lib/bundler/force_platform.rb +18 -0
  52. data/bundler/lib/bundler/friendly_errors.rb +21 -7
  53. data/bundler/lib/bundler/gem_helpers.rb +9 -2
  54. data/bundler/lib/bundler/gem_version_promoter.rb +53 -98
  55. data/bundler/lib/bundler/graph.rb +3 -3
  56. data/bundler/lib/bundler/index.rb +13 -51
  57. data/bundler/lib/bundler/injector.rb +9 -4
  58. data/bundler/lib/bundler/inline.rb +9 -21
  59. data/bundler/lib/bundler/installer/gem_installer.rb +14 -1
  60. data/bundler/lib/bundler/installer/parallel_installer.rb +3 -33
  61. data/bundler/lib/bundler/installer/standalone.rb +42 -11
  62. data/bundler/lib/bundler/installer.rb +20 -41
  63. data/bundler/lib/bundler/lazy_specification.rb +53 -48
  64. data/bundler/lib/bundler/lockfile_generator.rb +2 -2
  65. data/bundler/lib/bundler/lockfile_parser.rb +18 -14
  66. data/bundler/lib/bundler/man/bundle-add.1 +13 -5
  67. data/bundler/lib/bundler/man/bundle-add.1.ronn +10 -4
  68. data/bundler/lib/bundler/man/bundle-binstubs.1 +1 -1
  69. data/bundler/lib/bundler/man/bundle-cache.1 +7 -1
  70. data/bundler/lib/bundler/man/bundle-cache.1.ronn +7 -0
  71. data/bundler/lib/bundler/man/bundle-check.1 +1 -1
  72. data/bundler/lib/bundler/man/bundle-clean.1 +2 -2
  73. data/bundler/lib/bundler/man/bundle-clean.1.ronn +1 -1
  74. data/bundler/lib/bundler/man/bundle-config.1 +30 -11
  75. data/bundler/lib/bundler/man/bundle-config.1.ronn +26 -14
  76. data/bundler/lib/bundler/man/bundle-console.1 +53 -0
  77. data/bundler/lib/bundler/man/bundle-console.1.ronn +44 -0
  78. data/bundler/lib/bundler/man/bundle-doctor.1 +1 -1
  79. data/bundler/lib/bundler/man/bundle-exec.1 +6 -6
  80. data/bundler/lib/bundler/man/bundle-exec.1.ronn +6 -6
  81. data/bundler/lib/bundler/man/bundle-gem.1 +27 -37
  82. data/bundler/lib/bundler/man/bundle-gem.1.ronn +5 -5
  83. data/bundler/lib/bundler/man/bundle-help.1 +13 -0
  84. data/bundler/lib/bundler/man/bundle-help.1.ronn +12 -0
  85. data/bundler/lib/bundler/man/bundle-info.1 +1 -1
  86. data/bundler/lib/bundler/man/bundle-init.1 +5 -1
  87. data/bundler/lib/bundler/man/bundle-init.1.ronn +2 -0
  88. data/bundler/lib/bundler/man/bundle-inject.1 +5 -2
  89. data/bundler/lib/bundler/man/bundle-inject.1.ronn +3 -1
  90. data/bundler/lib/bundler/man/bundle-install.1 +5 -30
  91. data/bundler/lib/bundler/man/bundle-install.1.ronn +6 -29
  92. data/bundler/lib/bundler/man/bundle-list.1 +1 -1
  93. data/bundler/lib/bundler/man/bundle-lock.1 +1 -1
  94. data/bundler/lib/bundler/man/bundle-open.1 +22 -2
  95. data/bundler/lib/bundler/man/bundle-open.1.ronn +9 -1
  96. data/bundler/lib/bundler/man/bundle-outdated.1 +3 -10
  97. data/bundler/lib/bundler/man/bundle-outdated.1.ronn +1 -10
  98. data/bundler/lib/bundler/man/bundle-platform.1 +16 -6
  99. data/bundler/lib/bundler/man/bundle-platform.1.ronn +14 -7
  100. data/bundler/lib/bundler/man/bundle-plugin.1 +81 -0
  101. data/bundler/lib/bundler/man/bundle-plugin.1.ronn +59 -0
  102. data/bundler/lib/bundler/man/bundle-pristine.1 +1 -1
  103. data/bundler/lib/bundler/man/bundle-remove.1 +1 -1
  104. data/bundler/lib/bundler/man/bundle-show.1 +1 -1
  105. data/bundler/lib/bundler/man/bundle-update.1 +1 -1
  106. data/bundler/lib/bundler/man/bundle-version.1 +35 -0
  107. data/bundler/lib/bundler/man/bundle-version.1.ronn +24 -0
  108. data/bundler/lib/bundler/man/bundle-viz.1 +4 -1
  109. data/bundler/lib/bundler/man/bundle-viz.1.ronn +2 -0
  110. data/bundler/lib/bundler/man/bundle.1 +15 -10
  111. data/bundler/lib/bundler/man/bundle.1.ronn +12 -7
  112. data/bundler/lib/bundler/man/gemfile.5 +92 -81
  113. data/bundler/lib/bundler/man/gemfile.5.ronn +98 -85
  114. data/bundler/lib/bundler/man/index.txt +4 -0
  115. data/bundler/lib/bundler/match_metadata.rb +13 -0
  116. data/bundler/lib/bundler/match_platform.rb +0 -1
  117. data/bundler/lib/bundler/match_remote_metadata.rb +29 -0
  118. data/bundler/lib/bundler/mirror.rb +5 -7
  119. data/bundler/lib/bundler/plugin/api/source.rb +3 -9
  120. data/bundler/lib/bundler/plugin/index.rb +4 -4
  121. data/bundler/lib/bundler/plugin/installer/git.rb +0 -4
  122. data/bundler/lib/bundler/plugin/installer/rubygems.rb +0 -8
  123. data/bundler/lib/bundler/plugin.rb +3 -1
  124. data/bundler/lib/bundler/process_lock.rb +1 -1
  125. data/bundler/lib/bundler/remote_specification.rb +8 -9
  126. data/bundler/lib/bundler/resolver/base.rb +77 -0
  127. data/bundler/lib/bundler/resolver/candidate.rb +94 -0
  128. data/bundler/lib/bundler/resolver/incompatibility.rb +15 -0
  129. data/bundler/lib/bundler/resolver/package.rb +72 -0
  130. data/bundler/lib/bundler/resolver/root.rb +25 -0
  131. data/bundler/lib/bundler/resolver/spec_group.rb +42 -70
  132. data/bundler/lib/bundler/resolver.rb +328 -299
  133. data/bundler/lib/bundler/ruby_dsl.rb +1 -1
  134. data/bundler/lib/bundler/ruby_version.rb +5 -18
  135. data/bundler/lib/bundler/rubygems_ext.rb +131 -17
  136. data/bundler/lib/bundler/rubygems_gem_installer.rb +32 -20
  137. data/bundler/lib/bundler/rubygems_integration.rb +13 -35
  138. data/bundler/lib/bundler/runtime.rb +1 -6
  139. data/bundler/lib/bundler/settings.rb +2 -8
  140. data/bundler/lib/bundler/setup.rb +4 -1
  141. data/bundler/lib/bundler/shared_helpers.rb +12 -12
  142. data/bundler/lib/bundler/source/git/git_proxy.rb +209 -69
  143. data/bundler/lib/bundler/source/git.rb +22 -25
  144. data/bundler/lib/bundler/source/metadata.rb +2 -3
  145. data/bundler/lib/bundler/source/path/installer.rb +1 -22
  146. data/bundler/lib/bundler/source/path.rb +7 -7
  147. data/bundler/lib/bundler/source/rubygems.rb +75 -117
  148. data/bundler/lib/bundler/source.rb +3 -4
  149. data/bundler/lib/bundler/source_list.rb +12 -2
  150. data/bundler/lib/bundler/source_map.rb +15 -2
  151. data/bundler/lib/bundler/spec_set.rb +58 -34
  152. data/bundler/lib/bundler/stub_specification.rb +5 -3
  153. data/bundler/lib/bundler/templates/Executable +3 -5
  154. data/bundler/lib/bundler/templates/Executable.bundler +6 -11
  155. data/bundler/lib/bundler/templates/Executable.standalone +4 -4
  156. data/bundler/lib/bundler/templates/newgem/Cargo.toml.tt +7 -0
  157. data/bundler/lib/bundler/templates/newgem/Gemfile.tt +3 -0
  158. data/bundler/lib/bundler/templates/newgem/README.md.tt +7 -11
  159. data/bundler/lib/bundler/templates/newgem/Rakefile.tt +2 -1
  160. data/bundler/lib/bundler/templates/newgem/circleci/config.yml.tt +12 -0
  161. data/bundler/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +15 -0
  162. data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt +6 -0
  163. data/bundler/lib/bundler/templates/newgem/ext/newgem/src/lib.rs.tt +12 -0
  164. data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +11 -1
  165. data/bundler/lib/bundler/templates/newgem/gitignore.tt +3 -0
  166. data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +13 -4
  167. data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +9 -3
  168. data/bundler/lib/bundler/ui/shell.rb +35 -12
  169. data/bundler/lib/bundler/ui/silent.rb +21 -5
  170. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +3 -3
  171. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +0 -1
  172. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +3 -1
  173. data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +1350 -408
  174. data/bundler/lib/bundler/vendor/net-http-persistent/README.rdoc +1 -1
  175. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +1 -1
  176. data/bundler/lib/bundler/vendor/pub_grub/LICENSE.txt +21 -0
  177. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/assignment.rb +20 -0
  178. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb +189 -0
  179. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/failure_writer.rb +182 -0
  180. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb +155 -0
  181. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/package.rb +43 -0
  182. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/partial_solution.rb +121 -0
  183. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb +45 -0
  184. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/solve_failure.rb +19 -0
  185. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb +60 -0
  186. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/term.rb +105 -0
  187. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb +3 -0
  188. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb +129 -0
  189. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb +411 -0
  190. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb +243 -0
  191. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_union.rb +178 -0
  192. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub.rb +31 -0
  193. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +1 -1
  194. data/bundler/lib/bundler/vendor/tsort/lib/tsort.rb +318 -319
  195. data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +64 -16
  196. data/bundler/lib/bundler/vendor/uri/lib/uri/file.rb +7 -1
  197. data/bundler/lib/bundler/vendor/uri/lib/uri/ftp.rb +2 -1
  198. data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +27 -7
  199. data/bundler/lib/bundler/vendor/uri/lib/uri/http.rb +40 -2
  200. data/bundler/lib/bundler/vendor/uri/lib/uri/https.rb +2 -1
  201. data/bundler/lib/bundler/vendor/uri/lib/uri/ldap.rb +1 -1
  202. data/bundler/lib/bundler/vendor/uri/lib/uri/ldaps.rb +2 -1
  203. data/bundler/lib/bundler/vendor/uri/lib/uri/mailto.rb +2 -2
  204. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +13 -7
  205. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +10 -5
  206. data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
  207. data/bundler/lib/bundler/vendor/uri/lib/uri/ws.rb +1 -2
  208. data/bundler/lib/bundler/vendor/uri/lib/uri/wss.rb +2 -1
  209. data/bundler/lib/bundler/vendor/uri/lib/uri.rb +3 -2
  210. data/bundler/lib/bundler/vendored_persistent.rb +1 -33
  211. data/bundler/lib/bundler/{vendored_tmpdir.rb → vendored_pub_grub.rb} +1 -1
  212. data/bundler/lib/bundler/version.rb +5 -1
  213. data/bundler/lib/bundler/worker.rb +5 -7
  214. data/bundler/lib/bundler.rb +39 -73
  215. data/lib/rubygems/available_set.rb +3 -3
  216. data/lib/rubygems/basic_specification.rb +4 -4
  217. data/lib/rubygems/bundler_version_finder.rb +1 -1
  218. data/lib/rubygems/command.rb +40 -32
  219. data/lib/rubygems/command_manager.rb +33 -14
  220. data/lib/rubygems/commands/build_command.rb +11 -8
  221. data/lib/rubygems/commands/cert_command.rb +33 -33
  222. data/lib/rubygems/commands/check_command.rb +20 -20
  223. data/lib/rubygems/commands/cleanup_command.rb +17 -17
  224. data/lib/rubygems/commands/contents_command.rb +13 -13
  225. data/lib/rubygems/commands/dependency_command.rb +16 -16
  226. data/lib/rubygems/commands/environment_command.rb +10 -7
  227. data/lib/rubygems/commands/exec_command.rb +248 -0
  228. data/lib/rubygems/commands/fetch_command.rb +9 -9
  229. data/lib/rubygems/commands/generate_index_command.rb +17 -17
  230. data/lib/rubygems/commands/help_command.rb +6 -6
  231. data/lib/rubygems/commands/info_command.rb +3 -3
  232. data/lib/rubygems/commands/install_command.rb +28 -24
  233. data/lib/rubygems/commands/list_command.rb +3 -3
  234. data/lib/rubygems/commands/lock_command.rb +4 -4
  235. data/lib/rubygems/commands/mirror_command.rb +3 -3
  236. data/lib/rubygems/commands/open_command.rb +9 -9
  237. data/lib/rubygems/commands/outdated_command.rb +5 -5
  238. data/lib/rubygems/commands/owner_command.rb +17 -12
  239. data/lib/rubygems/commands/pristine_command.rb +37 -37
  240. data/lib/rubygems/commands/push_command.rb +8 -8
  241. data/lib/rubygems/commands/query_command.rb +8 -8
  242. data/lib/rubygems/commands/rdoc_command.rb +20 -19
  243. data/lib/rubygems/commands/search_command.rb +3 -3
  244. data/lib/rubygems/commands/server_command.rb +3 -3
  245. data/lib/rubygems/commands/setup_command.rb +99 -108
  246. data/lib/rubygems/commands/signin_command.rb +9 -9
  247. data/lib/rubygems/commands/signout_command.rb +7 -7
  248. data/lib/rubygems/commands/sources_command.rb +22 -22
  249. data/lib/rubygems/commands/specification_command.rb +14 -14
  250. data/lib/rubygems/commands/stale_command.rb +2 -2
  251. data/lib/rubygems/commands/uninstall_command.rb +40 -40
  252. data/lib/rubygems/commands/unpack_command.rb +13 -13
  253. data/lib/rubygems/commands/update_command.rb +49 -68
  254. data/lib/rubygems/commands/which_command.rb +7 -7
  255. data/lib/rubygems/commands/yank_command.rb +11 -11
  256. data/lib/rubygems/compatibility.rb +4 -2
  257. data/lib/rubygems/config_file.rb +54 -21
  258. data/lib/rubygems/core_ext/kernel_gem.rb +1 -6
  259. data/lib/rubygems/core_ext/kernel_require.rb +117 -114
  260. data/lib/rubygems/core_ext/kernel_warn.rb +33 -37
  261. data/lib/rubygems/core_ext/tcpsocket_init.rb +1 -1
  262. data/lib/rubygems/defaults.rb +32 -18
  263. data/lib/rubygems/dependency.rb +14 -11
  264. data/lib/rubygems/dependency_installer.rb +37 -37
  265. data/lib/rubygems/dependency_list.rb +6 -6
  266. data/lib/rubygems/deprecate.rb +2 -2
  267. data/lib/rubygems/doctor.rb +18 -18
  268. data/lib/rubygems/errors.rb +3 -3
  269. data/lib/rubygems/exceptions.rb +6 -8
  270. data/lib/rubygems/ext/build_error.rb +1 -1
  271. data/lib/rubygems/ext/builder.rb +27 -18
  272. data/lib/rubygems/ext/cargo_builder/link_flag_converter.rb +27 -0
  273. data/lib/rubygems/ext/cargo_builder.rb +360 -0
  274. data/lib/rubygems/ext/cmake_builder.rb +2 -2
  275. data/lib/rubygems/ext/configure_builder.rb +1 -1
  276. data/lib/rubygems/ext/ext_conf_builder.rb +36 -59
  277. data/lib/rubygems/ext/rake_builder.rb +3 -3
  278. data/lib/rubygems/ext.rb +7 -6
  279. data/lib/rubygems/gem_runner.rb +8 -12
  280. data/lib/rubygems/gemcutter_utilities.rb +60 -21
  281. data/lib/rubygems/indexer.rb +30 -28
  282. data/lib/rubygems/install_default_message.rb +2 -2
  283. data/lib/rubygems/install_message.rb +2 -2
  284. data/lib/rubygems/install_update_options.rb +55 -55
  285. data/lib/rubygems/installer.rb +40 -50
  286. data/lib/rubygems/installer_uninstaller_utils.rb +2 -2
  287. data/lib/rubygems/local_remote_options.rb +19 -21
  288. data/lib/rubygems/mock_gem_ui.rb +2 -2
  289. data/lib/rubygems/name_tuple.rb +4 -4
  290. data/lib/rubygems/optparse/lib/optparse/ac.rb +1 -1
  291. data/lib/rubygems/optparse/lib/optparse/date.rb +1 -1
  292. data/lib/rubygems/optparse/lib/optparse/kwargs.rb +1 -1
  293. data/lib/rubygems/optparse/lib/optparse/shellwords.rb +1 -1
  294. data/lib/rubygems/optparse/lib/optparse/time.rb +1 -1
  295. data/lib/rubygems/optparse/lib/optparse/uri.rb +1 -1
  296. data/lib/rubygems/optparse/lib/optparse.rb +95 -17
  297. data/lib/rubygems/optparse.rb +1 -1
  298. data/lib/rubygems/package/file_source.rb +2 -2
  299. data/lib/rubygems/package/old.rb +8 -8
  300. data/lib/rubygems/package/tar_header.rb +61 -61
  301. data/lib/rubygems/package/tar_reader/entry.rb +90 -9
  302. data/lib/rubygems/package/tar_reader.rb +1 -29
  303. data/lib/rubygems/package/tar_writer.rb +7 -7
  304. data/lib/rubygems/package.rb +66 -49
  305. data/lib/rubygems/package_task.rb +4 -4
  306. data/lib/rubygems/platform.rb +80 -51
  307. data/lib/rubygems/psych_tree.rb +1 -1
  308. data/lib/rubygems/query_utils.rb +36 -36
  309. data/lib/rubygems/rdoc.rb +2 -2
  310. data/lib/rubygems/remote_fetcher.rb +22 -22
  311. data/lib/rubygems/request/connection_pools.rb +4 -4
  312. data/lib/rubygems/request/http_pool.rb +1 -1
  313. data/lib/rubygems/request.rb +24 -24
  314. data/lib/rubygems/request_set/gem_dependency_api.rb +122 -123
  315. data/lib/rubygems/request_set/lockfile/parser.rb +26 -26
  316. data/lib/rubygems/request_set/lockfile/tokenizer.rb +4 -4
  317. data/lib/rubygems/request_set/lockfile.rb +5 -5
  318. data/lib/rubygems/request_set.rb +17 -17
  319. data/lib/rubygems/requirement.rb +14 -14
  320. data/lib/rubygems/resolver/activation_request.rb +3 -3
  321. data/lib/rubygems/resolver/api_set.rb +4 -4
  322. data/lib/rubygems/resolver/api_specification.rb +6 -6
  323. data/lib/rubygems/resolver/best_set.rb +5 -5
  324. data/lib/rubygems/resolver/conflict.rb +10 -10
  325. data/lib/rubygems/resolver/dependency_request.rb +2 -2
  326. data/lib/rubygems/resolver/git_set.rb +2 -2
  327. data/lib/rubygems/resolver/git_specification.rb +6 -6
  328. data/lib/rubygems/resolver/index_set.rb +3 -3
  329. data/lib/rubygems/resolver/index_specification.rb +6 -5
  330. data/lib/rubygems/resolver/installed_specification.rb +4 -4
  331. data/lib/rubygems/resolver/installer_set.rb +11 -16
  332. data/lib/rubygems/resolver/local_specification.rb +2 -2
  333. data/lib/rubygems/resolver/lock_set.rb +4 -4
  334. data/lib/rubygems/resolver/lock_specification.rb +4 -4
  335. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +1 -1
  336. data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +32 -26
  337. data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +1 -1
  338. data/lib/rubygems/resolver/molinillo.rb +1 -1
  339. data/lib/rubygems/resolver/specification.rb +1 -1
  340. data/lib/rubygems/resolver/stats.rb +1 -1
  341. data/lib/rubygems/resolver/vendor_set.rb +1 -1
  342. data/lib/rubygems/resolver/vendor_specification.rb +3 -3
  343. data/lib/rubygems/resolver.rb +40 -40
  344. data/lib/rubygems/s3_uri_signer.rb +6 -6
  345. data/lib/rubygems/safe_yaml.rb +2 -2
  346. data/lib/rubygems/security/policies.rb +47 -47
  347. data/lib/rubygems/security/policy.rb +18 -18
  348. data/lib/rubygems/security/signer.rb +5 -5
  349. data/lib/rubygems/security/trust_dir.rb +4 -4
  350. data/lib/rubygems/security.rb +29 -42
  351. data/lib/rubygems/security_option.rb +5 -5
  352. data/lib/rubygems/source/git.rb +25 -24
  353. data/lib/rubygems/source/installed.rb +1 -1
  354. data/lib/rubygems/source/local.rb +2 -2
  355. data/lib/rubygems/source/specific_file.rb +1 -1
  356. data/lib/rubygems/source.rb +18 -25
  357. data/lib/rubygems/source_list.rb +1 -5
  358. data/lib/rubygems/spec_fetcher.rb +11 -11
  359. data/lib/rubygems/specification.rb +175 -118
  360. data/lib/rubygems/specification_policy.rb +35 -16
  361. data/lib/rubygems/stub_specification.rb +8 -8
  362. data/lib/rubygems/text.rb +2 -2
  363. data/lib/rubygems/tsort/lib/tsort.rb +308 -310
  364. data/lib/rubygems/tsort.rb +1 -1
  365. data/lib/rubygems/uninstaller.rb +18 -18
  366. data/lib/rubygems/update_suggestion.rb +69 -0
  367. data/lib/rubygems/uri.rb +45 -30
  368. data/lib/rubygems/uri_formatter.rb +1 -1
  369. data/lib/rubygems/user_interaction.rb +33 -19
  370. data/lib/rubygems/util/licenses.rb +3 -3
  371. data/lib/rubygems/util.rb +12 -16
  372. data/lib/rubygems/validator.rb +6 -6
  373. data/lib/rubygems/version.rb +17 -11
  374. data/lib/rubygems/version_option.rb +3 -3
  375. data/lib/rubygems.rb +96 -77
  376. data/rubygems-update.gemspec +3 -3
  377. data/setup.rb +10 -10
  378. data/test/rubygems/alternate_cert.pem +14 -14
  379. data/test/rubygems/alternate_cert_32.pem +15 -15
  380. data/test/rubygems/alternate_key.pem +25 -25
  381. data/test/rubygems/bundler_test_gem.rb +419 -0
  382. data/test/rubygems/child_cert.pem +15 -16
  383. data/test/rubygems/child_cert_32.pem +15 -16
  384. data/test/rubygems/child_key.pem +25 -25
  385. data/test/rubygems/data/excon-0.7.7.gemspec.rz +0 -0
  386. data/test/rubygems/data/pry-0.4.7.gemspec.rz +0 -0
  387. data/test/rubygems/encrypted_private_key.pem +26 -26
  388. data/test/rubygems/expired_cert.pem +15 -15
  389. data/test/rubygems/future_cert.pem +15 -15
  390. data/test/rubygems/future_cert_32.pem +15 -15
  391. data/test/rubygems/grandchild_cert.pem +15 -16
  392. data/test/rubygems/grandchild_cert_32.pem +15 -16
  393. data/test/rubygems/grandchild_key.pem +25 -25
  394. data/test/rubygems/helper.rb +183 -163
  395. data/test/rubygems/installer_test_case.rb +13 -13
  396. data/test/rubygems/invalid_issuer_cert.pem +16 -16
  397. data/test/rubygems/invalid_issuer_cert_32.pem +16 -16
  398. data/test/rubygems/invalid_key.pem +25 -25
  399. data/test/rubygems/invalid_signer_cert.pem +15 -15
  400. data/test/rubygems/invalid_signer_cert_32.pem +15 -15
  401. data/test/rubygems/invalidchild_cert.pem +15 -16
  402. data/test/rubygems/invalidchild_cert_32.pem +15 -16
  403. data/test/rubygems/invalidchild_key.pem +25 -25
  404. data/test/rubygems/package/tar_test_case.rb +52 -17
  405. data/test/rubygems/packages/Bluebie-legs-0.6.2.gem +0 -0
  406. data/test/rubygems/plugin/exception/rubygems_plugin.rb +1 -1
  407. data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +1 -1
  408. data/test/rubygems/private_key.pem +25 -25
  409. data/test/rubygems/public_cert.pem +16 -16
  410. data/test/rubygems/public_cert_32.pem +15 -15
  411. data/test/rubygems/public_key.pem +7 -7
  412. data/test/rubygems/rubygems_plugin.rb +2 -2
  413. data/test/rubygems/simple_gem.rb +1 -1
  414. data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +4 -4
  415. data/test/rubygems/test_bundled_ca.rb +11 -11
  416. data/test/rubygems/test_config.rb +3 -3
  417. data/test/rubygems/test_deprecate.rb +3 -3
  418. data/test/rubygems/test_exit.rb +8 -2
  419. data/test/rubygems/test_gem.rb +327 -694
  420. data/test/rubygems/test_gem_available_set.rb +21 -21
  421. data/test/rubygems/test_gem_bundler_version_finder.rb +5 -4
  422. data/test/rubygems/test_gem_command.rb +44 -44
  423. data/test/rubygems/test_gem_command_manager.rb +102 -31
  424. data/test/rubygems/test_gem_commands_build_command.rb +73 -63
  425. data/test/rubygems/test_gem_commands_cert_command.rb +97 -99
  426. data/test/rubygems/test_gem_commands_check_command.rb +4 -4
  427. data/test/rubygems/test_gem_commands_cleanup_command.rb +40 -40
  428. data/test/rubygems/test_gem_commands_contents_command.rb +28 -28
  429. data/test/rubygems/test_gem_commands_dependency_command.rb +36 -36
  430. data/test/rubygems/test_gem_commands_environment_command.rb +38 -14
  431. data/test/rubygems/test_gem_commands_exec_command.rb +851 -0
  432. data/test/rubygems/test_gem_commands_fetch_command.rb +37 -37
  433. data/test/rubygems/test_gem_commands_generate_index_command.rb +7 -7
  434. data/test/rubygems/test_gem_commands_help_command.rb +13 -13
  435. data/test/rubygems/test_gem_commands_info_command.rb +28 -2
  436. data/test/rubygems/test_gem_commands_install_command.rb +153 -134
  437. data/test/rubygems/test_gem_commands_list_command.rb +4 -4
  438. data/test/rubygems/test_gem_commands_lock_command.rb +10 -10
  439. data/test/rubygems/test_gem_commands_mirror.rb +2 -2
  440. data/test/rubygems/test_gem_commands_open_command.rb +4 -4
  441. data/test/rubygems/test_gem_commands_outdated_command.rb +9 -9
  442. data/test/rubygems/test_gem_commands_owner_command.rb +126 -45
  443. data/test/rubygems/test_gem_commands_pristine_command.rb +93 -92
  444. data/test/rubygems/test_gem_commands_push_command.rb +85 -59
  445. data/test/rubygems/test_gem_commands_query_command.rb +73 -73
  446. data/test/rubygems/test_gem_commands_search_command.rb +2 -2
  447. data/test/rubygems/test_gem_commands_server_command.rb +2 -2
  448. data/test/rubygems/test_gem_commands_setup_command.rb +123 -94
  449. data/test/rubygems/test_gem_commands_signin_command.rb +153 -25
  450. data/test/rubygems/test_gem_commands_signout_command.rb +3 -3
  451. data/test/rubygems/test_gem_commands_sources_command.rb +74 -25
  452. data/test/rubygems/test_gem_commands_specification_command.rb +32 -32
  453. data/test/rubygems/test_gem_commands_stale_command.rb +4 -4
  454. data/test/rubygems/test_gem_commands_uninstall_command.rb +75 -75
  455. data/test/rubygems/test_gem_commands_unpack_command.rb +31 -31
  456. data/test/rubygems/test_gem_commands_update_command.rb +145 -93
  457. data/test/rubygems/test_gem_commands_which_command.rb +6 -6
  458. data/test/rubygems/test_gem_commands_yank_command.rb +42 -42
  459. data/test/rubygems/test_gem_config_file.rb +93 -81
  460. data/test/rubygems/test_gem_dependency.rb +75 -73
  461. data/test/rubygems/test_gem_dependency_installer.rb +165 -165
  462. data/test/rubygems/test_gem_dependency_list.rb +47 -47
  463. data/test/rubygems/test_gem_dependency_resolution_error.rb +4 -4
  464. data/test/rubygems/test_gem_doctor.rb +26 -26
  465. data/test/rubygems/test_gem_ext_builder.rb +60 -62
  466. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/.gitignore +1 -0
  467. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +8 -0
  468. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.lock +233 -0
  469. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.toml +10 -0
  470. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/src/lib.rs +27 -0
  471. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/lib/custom_name.rb +1 -0
  472. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/.gitignore +1 -0
  473. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +247 -0
  474. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +10 -0
  475. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/rust_ruby_example.gemspec +8 -0
  476. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs +51 -0
  477. data/test/rubygems/test_gem_ext_cargo_builder.rb +166 -0
  478. data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +33 -0
  479. data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +60 -0
  480. data/test/rubygems/test_gem_ext_cmake_builder.rb +17 -15
  481. data/test/rubygems/test_gem_ext_configure_builder.rb +13 -13
  482. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +51 -52
  483. data/test/rubygems/test_gem_ext_rake_builder.rb +15 -15
  484. data/test/rubygems/test_gem_gem_runner.rb +9 -9
  485. data/test/rubygems/test_gem_gemcutter_utilities.rb +71 -65
  486. data/test/rubygems/test_gem_impossible_dependencies_error.rb +4 -4
  487. data/test/rubygems/test_gem_indexer.rb +90 -67
  488. data/test/rubygems/test_gem_install_update_options.rb +16 -16
  489. data/test/rubygems/test_gem_installer.rb +371 -304
  490. data/test/rubygems/test_gem_local_remote_options.rb +10 -10
  491. data/test/rubygems/test_gem_name_tuple.rb +4 -4
  492. data/test/rubygems/test_gem_package.rb +244 -234
  493. data/test/rubygems/test_gem_package_old.rb +13 -13
  494. data/test/rubygems/test_gem_package_tar_header.rb +47 -47
  495. data/test/rubygems/test_gem_package_tar_reader.rb +55 -8
  496. data/test/rubygems/test_gem_package_tar_reader_entry.rb +161 -16
  497. data/test/rubygems/test_gem_package_tar_writer.rb +76 -76
  498. data/test/rubygems/test_gem_package_task.rb +18 -18
  499. data/test/rubygems/test_gem_path_support.rb +14 -14
  500. data/test/rubygems/test_gem_platform.rb +335 -214
  501. data/test/rubygems/test_gem_rdoc.rb +14 -14
  502. data/test/rubygems/test_gem_remote_fetcher.rb +157 -157
  503. data/test/rubygems/test_gem_request.rb +55 -55
  504. data/test/rubygems/test_gem_request_connection_pools.rb +29 -29
  505. data/test/rubygems/test_gem_request_set.rb +100 -100
  506. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +209 -211
  507. data/test/rubygems/test_gem_request_set_lockfile.rb +86 -86
  508. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +58 -58
  509. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +62 -62
  510. data/test/rubygems/test_gem_requirement.rb +47 -41
  511. data/test/rubygems/test_gem_resolver.rb +166 -99
  512. data/test/rubygems/test_gem_resolver_activation_request.rb +6 -6
  513. data/test/rubygems/test_gem_resolver_api_set.rb +33 -33
  514. data/test/rubygems/test_gem_resolver_api_specification.rb +47 -47
  515. data/test/rubygems/test_gem_resolver_best_set.rb +22 -22
  516. data/test/rubygems/test_gem_resolver_composed_set.rb +1 -1
  517. data/test/rubygems/test_gem_resolver_conflict.rb +12 -12
  518. data/test/rubygems/test_gem_resolver_dependency_request.rb +15 -15
  519. data/test/rubygems/test_gem_resolver_git_set.rb +21 -21
  520. data/test/rubygems/test_gem_resolver_git_specification.rb +21 -21
  521. data/test/rubygems/test_gem_resolver_index_set.rb +12 -12
  522. data/test/rubygems/test_gem_resolver_index_specification.rb +16 -16
  523. data/test/rubygems/test_gem_resolver_installed_specification.rb +5 -5
  524. data/test/rubygems/test_gem_resolver_installer_set.rb +79 -35
  525. data/test/rubygems/test_gem_resolver_local_specification.rb +7 -7
  526. data/test/rubygems/test_gem_resolver_lock_set.rb +12 -12
  527. data/test/rubygems/test_gem_resolver_lock_specification.rb +17 -17
  528. data/test/rubygems/test_gem_resolver_requirement_list.rb +1 -1
  529. data/test/rubygems/test_gem_resolver_specification.rb +8 -8
  530. data/test/rubygems/test_gem_resolver_vendor_set.rb +6 -6
  531. data/test/rubygems/test_gem_resolver_vendor_specification.rb +10 -10
  532. data/test/rubygems/test_gem_security.rb +68 -68
  533. data/test/rubygems/test_gem_security_policy.rb +72 -72
  534. data/test/rubygems/test_gem_security_signer.rb +34 -34
  535. data/test/rubygems/test_gem_security_trust_dir.rb +6 -6
  536. data/test/rubygems/test_gem_silent_ui.rb +38 -32
  537. data/test/rubygems/test_gem_source.rb +44 -44
  538. data/test/rubygems/test_gem_source_fetch_problem.rb +9 -9
  539. data/test/rubygems/test_gem_source_git.rb +69 -62
  540. data/test/rubygems/test_gem_source_installed.rb +16 -16
  541. data/test/rubygems/test_gem_source_list.rb +5 -5
  542. data/test/rubygems/test_gem_source_local.rb +14 -14
  543. data/test/rubygems/test_gem_source_lock.rb +31 -31
  544. data/test/rubygems/test_gem_source_specific_file.rb +17 -17
  545. data/test/rubygems/test_gem_source_subpath_problem.rb +7 -7
  546. data/test/rubygems/test_gem_source_vendor.rb +13 -13
  547. data/test/rubygems/test_gem_spec_fetcher.rb +72 -72
  548. data/test/rubygems/test_gem_specification.rb +539 -474
  549. data/test/rubygems/test_gem_stream_ui.rb +19 -19
  550. data/test/rubygems/test_gem_stub_specification.rb +32 -32
  551. data/test/rubygems/test_gem_text.rb +1 -1
  552. data/test/rubygems/test_gem_uninstaller.rb +113 -113
  553. data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +3 -3
  554. data/test/rubygems/test_gem_update_suggestion.rb +208 -0
  555. data/test/rubygems/test_gem_uri.rb +4 -4
  556. data/test/rubygems/test_gem_uri_formatter.rb +14 -14
  557. data/test/rubygems/test_gem_util.rb +23 -23
  558. data/test/rubygems/test_gem_validator.rb +8 -8
  559. data/test/rubygems/test_gem_version.rb +23 -16
  560. data/test/rubygems/test_gem_version_option.rb +15 -15
  561. data/test/rubygems/test_kernel.rb +41 -47
  562. data/test/rubygems/test_project_sanity.rb +1 -1
  563. data/test/rubygems/test_remote_fetch_error.rb +6 -6
  564. data/test/rubygems/test_require.rb +129 -119
  565. data/test/rubygems/test_rubygems.rb +19 -16
  566. data/test/rubygems/utilities.rb +55 -33
  567. data/test/rubygems/wrong_key_cert.pem +15 -15
  568. data/test/rubygems/wrong_key_cert_32.pem +15 -15
  569. data/test/test_changelog_generator.rb +1 -0
  570. metadata +67 -35
  571. data/bundler/lib/bundler/dep_proxy.rb +0 -55
  572. data/bundler/lib/bundler/templates/gems.rb +0 -5
  573. data/bundler/lib/bundler/templates/newgem/travis.yml.tt +0 -6
  574. data/bundler/lib/bundler/vendor/molinillo/LICENSE +0 -9
  575. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +0 -57
  576. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +0 -88
  577. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb +0 -36
  578. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +0 -66
  579. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +0 -62
  580. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +0 -63
  581. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +0 -61
  582. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +0 -126
  583. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +0 -46
  584. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +0 -36
  585. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +0 -164
  586. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +0 -255
  587. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +0 -143
  588. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +0 -6
  589. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +0 -112
  590. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb +0 -67
  591. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +0 -839
  592. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +0 -46
  593. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/state.rb +0 -58
  594. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -11
  595. data/bundler/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +0 -154
  596. data/bundler/lib/bundler/vendored_molinillo.rb +0 -4
  597. data/bundler/lib/bundler/version_ranges.rb +0 -122
  598. data/lib/rubygems/psych_additions.rb +0 -10
  599. data/test/rubygems/data/null-type.gemspec.rz +0 -0
  600. /data/bundler/lib/bundler/templates/newgem/ext/newgem/{extconf.rb.tt → extconf-c.rb.tt} +0 -0
@@ -1,16 +1,16 @@
1
1
  # frozen_string_literal: true
2
- require 'benchmark'
3
- require_relative 'helper'
4
- require 'date'
5
- require 'pathname'
6
- require 'stringio'
7
- require 'rubygems/ext'
8
- require 'rubygems/specification'
9
- require 'rubygems/installer'
10
- require 'rubygems/platform'
2
+ require "benchmark"
3
+ require_relative "helper"
4
+ require "date"
5
+ require "pathname"
6
+ require "stringio"
7
+ require "rubygems/ext"
8
+ require "rubygems/specification"
9
+ require "rubygems/installer"
10
+ require "rubygems/platform"
11
11
 
12
12
  class TestGemSpecification < Gem::TestCase
13
- LEGACY_YAML_SPEC = <<-EOF.freeze
13
+ LEGACY_YAML_SPEC = <<-EOF
14
14
  --- !ruby/object:Gem::Specification
15
15
  rubygems_version: "1.0"
16
16
  name: keyedlist
@@ -29,7 +29,7 @@ email: flgr@ccan.de
29
29
  has_rdoc: true
30
30
  EOF
31
31
 
32
- LEGACY_RUBY_SPEC = <<-EOF.freeze
32
+ LEGACY_RUBY_SPEC = <<-EOF
33
33
  Gem::Specification.new do |s|
34
34
  s.name = %q{keyedlist}
35
35
  s.version = %q{0.4.0}
@@ -44,16 +44,16 @@ end
44
44
  EOF
45
45
 
46
46
  def make_spec_c1
47
- @c1 = util_spec 'a', '1' do |s|
48
- s.executable = 'exec'
49
- s.extensions << 'ext/a/extconf.rb'
50
- s.test_file = 'test/suite.rb'
51
- s.requirements << 'A working computer'
52
- s.license = 'MIT'
47
+ @c1 = util_spec "a", "1" do |s|
48
+ s.executable = "exec"
49
+ s.extensions << "ext/a/extconf.rb"
50
+ s.test_file = "test/suite.rb"
51
+ s.requirements << "A working computer"
52
+ s.license = "MIT"
53
53
 
54
- s.add_dependency 'rake', '> 0.4'
55
- s.add_dependency 'jabber4r', '> 0.0.0'
56
- s.add_dependency 'pqa', ['> 0.4', '<= 0.6']
54
+ s.add_dependency "rake", "> 0.4"
55
+ s.add_dependency "jabber4r", "> 0.0.0"
56
+ s.add_dependency "pqa", ["> 0.4", "<= 0.6"]
57
57
 
58
58
  s.mark_version
59
59
  s.files = %w[lib/code.rb]
@@ -61,16 +61,16 @@ end
61
61
  end
62
62
 
63
63
  def ext_spec(platform: Gem::Platform::RUBY)
64
- @ext = util_spec 'ext', '1' do |s|
65
- s.executable = 'exec'
66
- s.test_file = 'test/suite.rb'
64
+ @ext = util_spec "ext", "1" do |s|
65
+ s.executable = "exec"
66
+ s.test_file = "test/suite.rb"
67
67
  s.extensions = %w[ext/extconf.rb]
68
- s.license = 'MIT'
68
+ s.license = "MIT"
69
69
  s.platform = platform
70
70
 
71
71
  s.mark_version
72
72
  s.files = %w[lib/code.rb]
73
- s.installed_by_version = v('2.2')
73
+ s.installed_by_version = v("2.2")
74
74
  end
75
75
  end
76
76
 
@@ -88,40 +88,40 @@ end
88
88
  # is not set.
89
89
  Gem.instance_variable_set(:'@default_source_date_epoch', nil)
90
90
 
91
- @a1 = util_spec 'a', '1' do |s|
92
- s.executable = 'exec'
93
- s.test_file = 'test/suite.rb'
94
- s.requirements << 'A working computer'
95
- s.license = 'MIT'
91
+ @a1 = util_spec "a", "1" do |s|
92
+ s.executable = "exec"
93
+ s.test_file = "test/suite.rb"
94
+ s.requirements << "A working computer"
95
+ s.license = "MIT"
96
96
 
97
97
  s.mark_version
98
98
  s.files = %w[lib/code.rb]
99
99
  end
100
100
 
101
- @a2 = util_spec 'a', '2' do |s|
101
+ @a2 = util_spec "a", "2" do |s|
102
102
  s.files = %w[lib/code.rb]
103
103
  end
104
104
 
105
- @a3 = util_spec 'a', '3' do |s|
106
- s.metadata['allowed_push_host'] = "https://privategemserver.com"
105
+ @a3 = util_spec "a", "3" do |s|
106
+ s.metadata["allowed_push_host"] = "https://privategemserver.com"
107
107
  end
108
108
 
109
109
  @current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
110
110
  end
111
111
 
112
112
  def test_self_find_active_stub_by_path
113
- spec = util_spec('a', '1', nil, 'lib/foo.rb')
113
+ spec = util_spec("a", "1", nil, "lib/foo.rb")
114
114
  spec.activated = true
115
115
 
116
116
  # There used to be a bug (introduced in a9c1aaf) when Gem::Specification
117
117
  # objects are present in the @stubs collection. This test verifies that
118
118
  # this scenario works correctly.
119
119
  Gem::Specification.all = [spec]
120
- assert_equal spec, Gem::Specification.find_active_stub_by_path('foo')
120
+ assert_equal spec, Gem::Specification.find_active_stub_by_path("foo")
121
121
  end
122
122
 
123
123
  def test_self_activate
124
- foo = util_spec 'foo', '1'
124
+ foo = util_spec "foo", "1"
125
125
 
126
126
  assert_activate %w[foo-1], foo
127
127
  end
@@ -147,7 +147,7 @@ end
147
147
  end
148
148
 
149
149
  def test_find_in_unresolved_tree_is_not_exponentiental
150
- pend "currently slower in CI on TruffleRuby" if RUBY_ENGINE == 'truffleruby'
150
+ pend "currently slower in CI on TruffleRuby" if RUBY_ENGINE == "truffleruby"
151
151
  num_of_pkg = 7
152
152
  num_of_version_per_pkg = 3
153
153
  packages = (0..num_of_pkg).map do |pkgi|
@@ -158,7 +158,7 @@ end
158
158
  util_spec "pkg#{pkgi}", pkg_version.to_s, deps
159
159
  end
160
160
  end
161
- base = util_spec "pkg_base", "1", {"pkg0" => ">= 0"}
161
+ base = util_spec "pkg_base", "1", { "pkg0" => ">= 0" }
162
162
 
163
163
  Gem::Specification.reset
164
164
  install_specs(*packages.flatten.reverse)
@@ -166,7 +166,7 @@ end
166
166
  base.activate
167
167
 
168
168
  tms = Benchmark.measure do
169
- assert_raise(LoadError) { require 'no_such_file_foo' }
169
+ assert_raise(LoadError) { require "no_such_file_foo" }
170
170
  end
171
171
  assert_operator tms.total, :<=, 10
172
172
  end
@@ -305,10 +305,10 @@ end
305
305
 
306
306
  def test_require_should_not_conflict
307
307
  base = util_spec "0", "1", "A" => ">= 1"
308
- a1 = util_spec "A", "1", {"c" => ">= 2", "b" => "> 0"}, "lib/a.rb"
309
- a2 = util_spec "A", "2", {"c" => ">= 2", "b" => "> 0"}, "lib/a.rb"
310
- b1 = util_spec "b", "1", {"c" => "= 1"}, "lib/d#{$$}.rb"
311
- b2 = util_spec "b", "2", {"c" => "= 2"}, "lib/d#{$$}.rb"
308
+ a1 = util_spec "A", "1", { "c" => ">= 2", "b" => "> 0" }, "lib/a.rb"
309
+ a2 = util_spec "A", "2", { "c" => ">= 2", "b" => "> 0" }, "lib/a.rb"
310
+ b1 = util_spec "b", "1", { "c" => "= 1" }, "lib/d#{$$}.rb"
311
+ b2 = util_spec "b", "2", { "c" => "= 2" }, "lib/d#{$$}.rb"
312
312
  c1 = util_spec "c", "1", {}, "lib/c.rb"
313
313
  c2 = util_spec "c", "2", {}, "lib/c.rb"
314
314
  c3 = util_spec "c", "3", {}, "lib/c.rb"
@@ -372,13 +372,13 @@ end
372
372
  # [B] ~> 1.0 (satisfied by 1.0)
373
373
 
374
374
  def test_self_activate_checks_dependencies
375
- a = util_spec 'a', '1.0'
376
- a.add_dependency 'c', '= 1.0'
377
- a.add_dependency 'b', '~> 1.0'
375
+ a = util_spec "a", "1.0"
376
+ a.add_dependency "c", "= 1.0"
377
+ a.add_dependency "b", "~> 1.0"
378
378
 
379
- b1 = util_spec 'b', '1.0'
380
- b2 = util_spec 'b', '2.0'
381
- c = util_spec 'c', '1.0', 'b' => '= 2.0'
379
+ b1 = util_spec "b", "1.0"
380
+ b2 = util_spec "b", "2.0"
381
+ c = util_spec "c", "1.0", "b" => "= 2.0"
382
382
  install_specs b1, b2, c, a
383
383
 
384
384
  e = assert_raise Gem::LoadError do
@@ -396,10 +396,10 @@ end
396
396
  # [B] = 2.0
397
397
 
398
398
  def test_self_activate_divergent
399
- a = util_spec 'a', '1.0', 'b' => '~> 1.0', 'c' => '= 1.0'
400
- b1 = util_spec 'b', '1.0'
401
- b2 = util_spec 'b', '2.0'
402
- c = util_spec 'c', '1.0', 'b' => '= 2.0'
399
+ a = util_spec "a", "1.0", "b" => "~> 1.0", "c" => "= 1.0"
400
+ b1 = util_spec "b", "1.0"
401
+ b2 = util_spec "b", "2.0"
402
+ c = util_spec "c", "1.0", "b" => "= 2.0"
403
403
 
404
404
  install_specs b1, b2, c, a
405
405
 
@@ -415,9 +415,9 @@ end
415
415
  # DOC
416
416
 
417
417
  def test_self_activate_old_required
418
- e1, = util_spec 'e', '1', 'd' => '= 1'
419
- @d1 = util_spec 'd', '1'
420
- @d2 = util_spec 'd', '2'
418
+ e1, = util_spec "e", "1", "d" => "= 1"
419
+ @d1 = util_spec "d", "1"
420
+ @d2 = util_spec "d", "2"
421
421
 
422
422
  install_specs @d1, @d2, e1
423
423
 
@@ -428,17 +428,17 @@ end
428
428
  # DOC
429
429
 
430
430
  def test_self_activate_platform_alternate
431
- @x1_m = util_spec 'x', '1' do |s|
431
+ @x1_m = util_spec "x", "1" do |s|
432
432
  s.platform = Gem::Platform.new %w[cpu my_platform 1]
433
433
  end
434
434
 
435
- @x1_o = util_spec 'x', '1' do |s|
435
+ @x1_o = util_spec "x", "1" do |s|
436
436
  s.platform = Gem::Platform.new %w[cpu other_platform 1]
437
437
  end
438
438
 
439
- @w1 = util_spec 'w', '1', 'x' => nil
439
+ @w1 = util_spec "w", "1", "x" => nil
440
440
 
441
- util_set_arch 'cpu-my_platform1'
441
+ util_set_arch "cpu-my_platform1"
442
442
  install_specs @x1_m, @x1_o, @w1
443
443
 
444
444
  assert_activate %w[x-1-cpu-my_platform-1 w-1], @w1, @x1_m
@@ -448,13 +448,13 @@ end
448
448
  # DOC
449
449
 
450
450
  def test_self_activate_platform_bump
451
- @y1 = util_spec 'y', '1'
451
+ @y1 = util_spec "y", "1"
452
452
 
453
- @y1_1_p = util_spec 'y', '1.1' do |s|
453
+ @y1_1_p = util_spec "y", "1.1" do |s|
454
454
  s.platform = Gem::Platform.new %w[cpu my_platform 1]
455
455
  end
456
456
 
457
- @z1 = util_spec 'z', '1', 'y' => nil
457
+ @z1 = util_spec "z", "1", "y" => nil
458
458
  install_specs @y1, @y1_1_p, @z1
459
459
 
460
460
  assert_activate %w[y-1 z-1], @z1, @y1
@@ -467,11 +467,11 @@ end
467
467
  # [A] >= 0 (satisfied by 1.a)
468
468
 
469
469
  def test_self_activate_prerelease
470
- @c1_pre = util_spec 'c', '1.a', "a" => "1.a", "b" => "1"
471
- @a1_pre = util_spec 'a', '1.a'
472
- @b1 = util_spec 'b', '1' do |s|
473
- s.add_dependency 'a'
474
- s.add_development_dependency 'aa'
470
+ @c1_pre = util_spec "c", "1.a", "a" => "1.a", "b" => "1"
471
+ @a1_pre = util_spec "a", "1.a"
472
+ @b1 = util_spec "b", "1" do |s|
473
+ s.add_dependency "a"
474
+ s.add_development_dependency "aa"
475
475
  end
476
476
  install_specs @a1_pre, @b1, @c1_pre
477
477
 
@@ -533,7 +533,7 @@ end
533
533
  end
534
534
 
535
535
  def test_self_activate_loaded
536
- foo = util_spec 'foo', '1'
536
+ foo = util_spec "foo", "1"
537
537
 
538
538
  assert foo.activate
539
539
  refute foo.activate
@@ -545,9 +545,9 @@ end
545
545
  # [C] depends on nothing
546
546
 
547
547
  def test_self_activate_unrelated
548
- a = util_spec 'a', '1.0', 'b' => '>= 1.0'
549
- b = util_spec 'b', '1.0'
550
- c = util_spec 'c', '1.0'
548
+ a = util_spec "a", "1.0", "b" => ">= 1.0"
549
+ b = util_spec "b", "1.0"
550
+ c = util_spec "c", "1.0"
551
551
  install_specs b, c, a
552
552
 
553
553
  assert_activate %w[b-1.0 c-1.0 a-1.0], a, c, "b"
@@ -563,11 +563,11 @@ end
563
563
  # TODO: move these to specification
564
564
 
565
565
  def test_self_activate_over
566
- a = util_spec 'a', '1.0', 'b' => '>= 1.0', 'c' => '= 1.0'
567
- install_specs util_spec 'b', '1.0'
568
- install_specs util_spec 'b', '1.1'
569
- install_specs util_spec 'b', '2.0'
570
- install_specs util_spec 'c', '1.0', 'b' => '~> 1.0'
566
+ a = util_spec "a", "1.0", "b" => ">= 1.0", "c" => "= 1.0"
567
+ install_specs util_spec "b", "1.0"
568
+ install_specs util_spec "b", "1.1"
569
+ install_specs util_spec "b", "2.0"
570
+ install_specs util_spec "c", "1.0", "b" => "~> 1.0"
571
571
  install_specs a
572
572
 
573
573
  a.activate
@@ -588,10 +588,10 @@ end
588
588
  # first resolve through a dependency that is later pruned.
589
589
 
590
590
  def test_self_activate_under
591
- a = util_spec 'a', '1.0', 'b' => '~> 1.0', 'c' => '= 1.0'
592
- b1 = util_spec 'b', '1.0'
593
- b1_1 = util_spec 'b', '1.1'
594
- c = util_spec 'c', '1.0', 'b' => '= 1.0'
591
+ a = util_spec "a", "1.0", "b" => "~> 1.0", "c" => "= 1.0"
592
+ b1 = util_spec "b", "1.0"
593
+ b1_1 = util_spec "b", "1.1"
594
+ c = util_spec "c", "1.0", "b" => "= 1.0"
595
595
 
596
596
  install_specs b1, b1_1, c, a
597
597
 
@@ -607,10 +607,10 @@ end
607
607
  # [C1] depends on nothing
608
608
 
609
609
  def test_self_activate_dropped
610
- a1 = util_spec 'a', '1', 'b' => nil
611
- b1 = util_spec 'b', '1', 'c' => nil
612
- b2 = util_spec 'b', '2'
613
- c1 = util_spec 'c', '1'
610
+ a1 = util_spec "a", "1", "b" => nil
611
+ b1 = util_spec "b", "1", "c" => nil
612
+ b2 = util_spec "b", "2"
613
+ c1 = util_spec "c", "1"
614
614
  install_specs c1, b1, b2, a1
615
615
 
616
616
  assert_activate %w[b-2 a-1], a1, "b"
@@ -627,11 +627,11 @@ end
627
627
  # resolve.
628
628
 
629
629
  def test_self_activate_raggi_the_edgecase_generator
630
- a = util_spec 'a', '1.0', 'b' => '>= 1.0', 'c' => '>= 1.0'
631
- b1 = util_spec 'b', '1.0'
632
- b1_0 = util_spec 'b', '1.1', 'z' => '>= 1.0'
633
- c = util_spec 'c', '1.0', 'b' => '= 1.0'
634
- z = util_spec 'z', '1'
630
+ a = util_spec "a", "1.0", "b" => ">= 1.0", "c" => ">= 1.0"
631
+ b1 = util_spec "b", "1.0"
632
+ b1_0 = util_spec "b", "1.1", "z" => ">= 1.0"
633
+ c = util_spec "c", "1.0", "b" => "= 1.0"
634
+ z = util_spec "z", "1"
635
635
 
636
636
  install_specs z, b1, b1_0, c, z
637
637
 
@@ -639,8 +639,8 @@ end
639
639
  end
640
640
 
641
641
  def test_self_activate_conflict
642
- install_specs util_spec 'b', '1.0'
643
- install_specs util_spec 'b', '2.0'
642
+ install_specs util_spec "b", "1.0"
643
+ install_specs util_spec "b", "2.0"
644
644
 
645
645
  gem "b", "= 1.0"
646
646
 
@@ -655,7 +655,7 @@ end
655
655
  install_specs a
656
656
  Gem::Specification.all = [a]
657
657
 
658
- assert_equal a, Gem::Specification.find_inactive_by_path('foo')
658
+ assert_equal a, Gem::Specification.find_inactive_by_path("foo")
659
659
  end
660
660
 
661
661
  def test_self_attribute_names
@@ -698,13 +698,13 @@ end
698
698
 
699
699
  def test_self__load_future
700
700
  spec = Gem::Specification.new
701
- spec.name = 'a'
702
- spec.version = '1'
701
+ spec.name = "a"
702
+ spec.version = "1"
703
703
  spec.specification_version = @current_version + 1
704
704
 
705
705
  load_spec = Marshal.load Marshal.dump(spec)
706
706
 
707
- assert_equal 'a', load_spec.name
707
+ assert_equal "a", load_spec.name
708
708
  assert_equal Gem::Version.new(1), load_spec.version
709
709
  assert_equal @current_version, load_spec.specification_version
710
710
  end
@@ -783,20 +783,20 @@ dependencies: []
783
783
  end
784
784
 
785
785
  def test_self_load_relative
786
- File.open 'a-2.gemspec', 'w' do |io|
786
+ File.open "a-2.gemspec", "w" do |io|
787
787
  io.write @a2.to_ruby_for_cache
788
788
  end
789
789
 
790
- spec = Gem::Specification.load 'a-2.gemspec'
790
+ spec = Gem::Specification.load "a-2.gemspec"
791
791
 
792
792
  @a2.files.clear
793
793
 
794
794
  assert_equal @a2, spec
795
795
 
796
- assert_equal File.join(@tempdir, 'a-2.gemspec'), spec.loaded_from
796
+ assert_equal File.join(@tempdir, "a-2.gemspec"), spec.loaded_from
797
797
  end
798
798
 
799
- if RUBY_ENGINE == 'ruby' and RUBY_VERSION < '2.7'
799
+ if RUBY_ENGINE == "ruby" && RUBY_VERSION < "2.7"
800
800
  def test_self_load_tainted
801
801
  full_path = @a2.spec_file
802
802
  write_file full_path do |io|
@@ -874,13 +874,13 @@ dependencies: []
874
874
  end
875
875
 
876
876
  def test_self_load_utf8_with_ascii_encoding
877
- with_internal_encoding('US-ASCII') do
877
+ with_internal_encoding("US-ASCII") do
878
878
  spec2 = @a2.dup
879
879
  bin = "\u5678".dup
880
880
  spec2.authors = [bin]
881
881
  full_path = spec2.spec_file
882
882
  write_file full_path do |io|
883
- io.write spec2.to_ruby_for_cache.force_encoding('BINARY').sub("\\u{5678}", bin.force_encoding('BINARY'))
883
+ io.write spec2.to_ruby_for_cache.force_encoding("BINARY").sub("\\u{5678}", bin.force_encoding("BINARY"))
884
884
  end
885
885
 
886
886
  spec = Gem::Specification.load full_path
@@ -895,10 +895,10 @@ dependencies: []
895
895
  spec = Gem::Deprecate.skip_during do
896
896
  eval LEGACY_RUBY_SPEC
897
897
  end
898
- assert_equal 'keyedlist', spec.name
899
- assert_equal '0.4.0', spec.version.to_s
898
+ assert_equal "keyedlist", spec.name
899
+ assert_equal "0.4.0", spec.version.to_s
900
900
  assert_kind_of Time, spec.date
901
- assert spec.required_ruby_version.satisfied_by?(Gem::Version.new('1'))
901
+ assert spec.required_ruby_version.satisfied_by?(Gem::Version.new("1"))
902
902
  assert_equal false, spec.has_unit_tests?
903
903
  end
904
904
 
@@ -933,9 +933,9 @@ dependencies: []
933
933
 
934
934
  def test_self_outdated
935
935
  spec_fetcher do |fetcher|
936
- fetcher.download 'a', 4
936
+ fetcher.download "a", 4
937
937
 
938
- fetcher.spec 'a', 3
938
+ fetcher.spec "a", 3
939
939
  end
940
940
 
941
941
  assert_equal %w[a], Gem::Specification.outdated
@@ -943,16 +943,16 @@ dependencies: []
943
943
 
944
944
  def test_self_outdated_and_latest_remotes
945
945
  spec_fetcher do |fetcher|
946
- fetcher.download 'a', 4
947
- fetcher.download 'b', 3
946
+ fetcher.download "a", 4
947
+ fetcher.download "b", 3
948
948
 
949
- fetcher.spec 'a', '3.a'
950
- fetcher.spec 'b', 2
949
+ fetcher.spec "a", "3.a"
950
+ fetcher.spec "b", 2
951
951
  end
952
952
 
953
953
  expected = [
954
- [Gem::Specification.stubs.find {|s| s.full_name == 'a-3.a' }, v(4)],
955
- [Gem::Specification.stubs.find {|s| s.full_name == 'b-2' }, v(3)],
954
+ [Gem::Specification.stubs.find {|s| s.full_name == "a-3.a" }, v(4)],
955
+ [Gem::Specification.stubs.find {|s| s.full_name == "b-2" }, v(3)],
956
956
  ]
957
957
 
958
958
  assert_equal expected, Gem::Specification.outdated_and_latest_version.to_a
@@ -961,18 +961,18 @@ dependencies: []
961
961
  def test_self_remove_spec
962
962
  install_specs @a1
963
963
 
964
- assert_includes Gem::Specification.all_names, 'a-1'
965
- assert_includes Gem::Specification.stubs.map {|s| s.full_name }, 'a-1'
964
+ assert_includes Gem::Specification.all_names, "a-1"
965
+ assert_includes Gem::Specification.stubs.map {|s| s.full_name }, "a-1"
966
966
 
967
967
  uninstall_gem @a1
968
968
  Gem::Specification.reset
969
969
 
970
- refute_includes Gem::Specification.all_names, 'a-1'
971
- refute_includes Gem::Specification.stubs.map {|s| s.full_name }, 'a-1'
970
+ refute_includes Gem::Specification.all_names, "a-1"
971
+ refute_includes Gem::Specification.stubs.map {|s| s.full_name }, "a-1"
972
972
  end
973
973
 
974
974
  def test_self_remove_spec_removed
975
- File.open @a1.spec_file, 'w' do |io|
975
+ File.open @a1.spec_file, "w" do |io|
976
976
  io.write @a1.to_ruby
977
977
  end
978
978
 
@@ -982,40 +982,40 @@ dependencies: []
982
982
 
983
983
  Gem::Specification.reset
984
984
 
985
- refute_includes Gem::Specification.all_names, 'a-1'
986
- refute_includes Gem::Specification.stubs.map {|s| s.full_name }, 'a-1'
985
+ refute_includes Gem::Specification.all_names, "a-1"
986
+ refute_includes Gem::Specification.stubs.map {|s| s.full_name }, "a-1"
987
987
  end
988
988
 
989
989
  def test_self_stubs_for_lazy_loading
990
990
  Gem.loaded_specs.clear
991
991
  Gem::Specification.class_variable_set(:@@stubs, nil)
992
992
 
993
- dir_standard_specs = File.join Gem.dir, 'specifications'
993
+ dir_standard_specs = File.join Gem.dir, "specifications"
994
994
 
995
- save_gemspec('a-1', '1', dir_standard_specs){|s| s.name = 'a' }
996
- save_gemspec('b-1', '1', dir_standard_specs){|s| s.name = 'b' }
995
+ save_gemspec("a-1", "1", dir_standard_specs) {|s| s.name = "a" }
996
+ save_gemspec("b-1", "1", dir_standard_specs) {|s| s.name = "b" }
997
997
 
998
- assert_equal ['a-1'], Gem::Specification.stubs_for('a').map {|s| s.full_name }
998
+ assert_equal ["a-1"], Gem::Specification.stubs_for("a").map {|s| s.full_name }
999
999
  assert_equal 1, Gem::Specification.class_variable_get(:@@stubs_by_name).length
1000
- assert_equal ['b-1'], Gem::Specification.stubs_for('b').map {|s| s.full_name }
1000
+ assert_equal ["b-1"], Gem::Specification.stubs_for("b").map {|s| s.full_name }
1001
1001
  assert_equal 2, Gem::Specification.class_variable_get(:@@stubs_by_name).length
1002
1002
 
1003
1003
  assert_equal(
1004
- Gem::Specification.stubs_for('a').map {|s| s.object_id },
1005
- Gem::Specification.stubs_for('a').map {|s| s.object_id }
1004
+ Gem::Specification.stubs_for("a").map {|s| s.object_id },
1005
+ Gem::Specification.stubs_for("a").map {|s| s.object_id }
1006
1006
  )
1007
1007
 
1008
- Gem.loaded_specs.delete 'a'
1009
- Gem.loaded_specs.delete 'b'
1008
+ Gem.loaded_specs.delete "a"
1009
+ Gem.loaded_specs.delete "b"
1010
1010
  Gem::Specification.class_variable_set(:@@stubs, nil)
1011
1011
  end
1012
1012
 
1013
1013
  def test_self_stubs_for_no_lazy_loading_after_all_specs_setup
1014
- Gem::Specification.all = [util_spec('a', '1')]
1014
+ Gem::Specification.all = [util_spec("a", "1")]
1015
1015
 
1016
- save_gemspec('b-1', '1', File.join(Gem.dir, 'specifications')){|s| s.name = 'b' }
1016
+ save_gemspec("b-1", "1", File.join(Gem.dir, "specifications")) {|s| s.name = "b" }
1017
1017
 
1018
- assert_equal [], Gem::Specification.stubs_for('b').map {|s| s.full_name }
1018
+ assert_equal [], Gem::Specification.stubs_for("b").map {|s| s.full_name }
1019
1019
  end
1020
1020
 
1021
1021
  def test_self_stubs_for_mult_platforms
@@ -1025,30 +1025,30 @@ dependencies: []
1025
1025
  orig_platform = Gem.platforms.dup
1026
1026
 
1027
1027
  # create user spec
1028
- user_spec_dir = File.join Gem.user_dir, 'specifications'
1028
+ user_spec_dir = File.join Gem.user_dir, "specifications"
1029
1029
  FileUtils.mkdir_p(user_spec_dir) unless Dir.exist? user_spec_dir
1030
1030
  # dirs doesn't include user ?
1031
1031
  Gem::Specification.dirs << user_spec_dir
1032
1032
 
1033
- gem = 'mingw'
1034
- v = '1.1.1'
1035
- platforms = ['x86-mingw32', 'x64-mingw32']
1033
+ gem = "mingw"
1034
+ v = "1.1.1"
1035
+ platforms = ["x86-mingw32", "x64-mingw32"]
1036
1036
 
1037
1037
  #create specs
1038
1038
  platforms.each do |plat|
1039
1039
  spec = Gem::Specification.new(gem, v) {|s| s.platform = plat }
1040
- File.open File.join(user_spec_dir, "#{gem}-#{v}-#{plat}.gemspec"), 'w' do |io|
1040
+ File.open File.join(user_spec_dir, "#{gem}-#{v}-#{plat}.gemspec"), "w" do |io|
1041
1041
  io.write spec.to_ruby
1042
1042
  end
1043
1043
  end
1044
1044
 
1045
1045
  platforms.each do |plat|
1046
1046
  cur_plat = Gem::Platform.new plat
1047
- Gem.platforms = ['ruby', cur_plat]
1047
+ Gem.platforms = ["ruby", cur_plat]
1048
1048
 
1049
1049
  Gem::Specification.class_variable_set :@@stubs, nil
1050
1050
  Gem::Specification.stubs if plat == platforms.last # test loading via stubs
1051
- t = Gem::Specification.stubs_for 'mingw'
1051
+ t = Gem::Specification.stubs_for "mingw"
1052
1052
 
1053
1053
  assert_equal 1, t.length
1054
1054
  assert_equal cur_plat, t.first.platform
@@ -1058,21 +1058,29 @@ dependencies: []
1058
1058
  end
1059
1059
 
1060
1060
  def test_self_stubs_returns_only_specified_named_specs
1061
- dir_standard_specs = File.join Gem.dir, 'specifications'
1061
+ dir_standard_specs = File.join Gem.dir, "specifications"
1062
1062
 
1063
- save_gemspec('a-1', '1', dir_standard_specs){|s| s.name = 'a' }
1064
- save_gemspec('a-2', '2', dir_standard_specs){|s| s.name = 'a' }
1065
- save_gemspec('a-a', '3', dir_standard_specs){|s| s.name = 'a-a' }
1063
+ save_gemspec("a-1", "1", dir_standard_specs) {|s| s.name = "a" }
1064
+ save_gemspec("a-2", "2", dir_standard_specs) {|s| s.name = "a" }
1065
+ save_gemspec("a-a", "3", dir_standard_specs) {|s| s.name = "a-a" }
1066
1066
 
1067
- assert_equal ['a-1', 'a-2'], Gem::Specification.stubs_for('a').map(&:full_name).sort
1067
+ assert_equal ["a-1", "a-2"], Gem::Specification.stubs_for("a").map(&:full_name).sort
1068
1068
  end
1069
1069
 
1070
1070
  def test_handles_private_null_type
1071
- path = File.expand_path "../data/null-type.gemspec.rz", __FILE__
1071
+ path = File.expand_path "data/pry-0.4.7.gemspec.rz", __dir__
1072
1072
 
1073
1073
  data = Marshal.load Gem::Util.inflate(Gem.read_binary(path))
1074
1074
 
1075
- assert_nil data.signing_key
1075
+ assert_instance_of Gem::Specification, data
1076
+ end
1077
+
1078
+ def test_handles_dependencies_with_syck_requirements_bug
1079
+ path = File.expand_path "data/excon-0.7.7.gemspec.rz", __dir__
1080
+
1081
+ data = Marshal.load Gem::Util.inflate(Gem.read_binary(path))
1082
+
1083
+ assert_instance_of Gem::Specification, data
1076
1084
  end
1077
1085
 
1078
1086
  def test_initialize
@@ -1094,9 +1102,9 @@ dependencies: []
1094
1102
  assert_equal [], spec.extensions
1095
1103
  assert_equal [], spec.requirements
1096
1104
  assert_equal [], spec.dependencies
1097
- assert_equal 'bin', spec.bindir
1098
- assert_equal '>= 0', spec.required_ruby_version.to_s
1099
- assert_equal '>= 0', spec.required_rubygems_version.to_s
1105
+ assert_equal "bin", spec.bindir
1106
+ assert_equal ">= 0", spec.required_ruby_version.to_s
1107
+ assert_equal ">= 0", spec.required_rubygems_version.to_s
1100
1108
  end
1101
1109
 
1102
1110
  def test_initialize_future
@@ -1118,18 +1126,18 @@ dependencies: []
1118
1126
  spec = Gem::Specification.new do |s|
1119
1127
  s.name = "blah"
1120
1128
  s.version = "1.3.5"
1121
- s.summary = 'summary'
1122
- s.description = 'description'
1123
- s.authors = 'author a', 'author b'
1124
- s.licenses = 'BSD-2-Clause'
1125
- s.files = 'lib/file.rb'
1126
- s.test_files = 'test/file.rb'
1127
- s.rdoc_options = '--foo'
1128
- s.extra_rdoc_files = 'README.txt'
1129
- s.executables = 'exec'
1130
- s.extensions = 'ext/extconf.rb'
1131
- s.requirements = 'requirement'
1132
- s.add_dependency 'some_gem'
1129
+ s.summary = "summary"
1130
+ s.description = "description"
1131
+ s.authors = "author a", "author b"
1132
+ s.licenses = "BSD-2-Clause"
1133
+ s.files = "lib/file.rb"
1134
+ s.test_files = "test/file.rb"
1135
+ s.rdoc_options = "--foo"
1136
+ s.extra_rdoc_files = "README.txt"
1137
+ s.executables = "exec"
1138
+ s.extensions = "ext/extconf.rb"
1139
+ s.requirements = "requirement"
1140
+ s.add_dependency "some_gem"
1133
1141
  end
1134
1142
 
1135
1143
  dup_spec = spec.dup
@@ -1143,84 +1151,93 @@ dependencies: []
1143
1151
  assert_equal Gem::Platform::RUBY, spec.platform
1144
1152
  assert_same spec.platform, dup_spec.platform
1145
1153
 
1146
- assert_equal 'summary', spec.summary
1154
+ assert_equal "summary", spec.summary
1147
1155
  assert_same spec.summary, dup_spec.summary
1148
1156
 
1149
1157
  assert_equal %w[README.txt bin/exec ext/extconf.rb lib/file.rb
1150
1158
  test/file.rb].sort,
1151
1159
  spec.files
1152
- refute_same spec.files, dup_spec.files, 'files'
1160
+ refute_same spec.files, dup_spec.files, "files"
1153
1161
 
1154
1162
  assert_equal %w[test/file.rb], spec.test_files
1155
- refute_same spec.test_files, dup_spec.test_files, 'test_files'
1163
+ refute_same spec.test_files, dup_spec.test_files, "test_files"
1156
1164
 
1157
1165
  assert_equal %w[--foo], spec.rdoc_options
1158
- refute_same spec.rdoc_options, dup_spec.rdoc_options, 'rdoc_options'
1166
+ refute_same spec.rdoc_options, dup_spec.rdoc_options, "rdoc_options"
1159
1167
 
1160
1168
  assert_equal %w[README.txt], spec.extra_rdoc_files
1161
1169
  refute_same spec.extra_rdoc_files, dup_spec.extra_rdoc_files,
1162
- 'extra_rdoc_files'
1170
+ "extra_rdoc_files"
1163
1171
 
1164
1172
  assert_equal %w[exec], spec.executables
1165
- refute_same spec.executables, dup_spec.executables, 'executables'
1173
+ refute_same spec.executables, dup_spec.executables, "executables"
1166
1174
 
1167
1175
  assert_equal %w[ext/extconf.rb], spec.extensions
1168
- refute_same spec.extensions, dup_spec.extensions, 'extensions'
1176
+ refute_same spec.extensions, dup_spec.extensions, "extensions"
1169
1177
 
1170
1178
  assert_equal %w[requirement], spec.requirements
1171
- refute_same spec.requirements, dup_spec.requirements, 'requirements'
1179
+ refute_same spec.requirements, dup_spec.requirements, "requirements"
1172
1180
 
1173
- assert_equal [Gem::Dependency.new('some_gem', Gem::Requirement.default)],
1181
+ assert_equal [Gem::Dependency.new("some_gem", Gem::Requirement.default)],
1174
1182
  spec.dependencies
1175
- refute_same spec.dependencies, dup_spec.dependencies, 'dependencies'
1183
+ refute_same spec.dependencies, dup_spec.dependencies, "dependencies"
1176
1184
 
1177
- assert_equal 'bin', spec.bindir
1185
+ assert_equal "bin", spec.bindir
1178
1186
  assert_same spec.bindir, dup_spec.bindir
1179
1187
 
1180
- assert_equal '>= 0', spec.required_ruby_version.to_s
1188
+ assert_equal ">= 0", spec.required_ruby_version.to_s
1181
1189
  assert_same spec.required_ruby_version, dup_spec.required_ruby_version
1182
1190
 
1183
- assert_equal '>= 0', spec.required_rubygems_version.to_s
1191
+ assert_equal ">= 0", spec.required_rubygems_version.to_s
1184
1192
  assert_same spec.required_rubygems_version,
1185
1193
  dup_spec.required_rubygems_version
1186
1194
  end
1187
1195
 
1188
1196
  def test_initialize_copy_broken
1189
1197
  spec = Gem::Specification.new do |s|
1190
- s.name = 'a'
1191
- s.version = '1'
1198
+ s.name = "a"
1199
+ s.version = "1"
1192
1200
  end
1193
1201
 
1194
1202
  spec.instance_variable_set :@licenses, (class << (Object.new);self;end)
1195
- spec.loaded_from = '/path/to/file'
1203
+ spec.loaded_from = "/path/to/file"
1196
1204
 
1197
1205
  e = assert_raise Gem::FormatException do
1198
1206
  spec.dup
1199
1207
  end
1200
1208
 
1201
- assert_equal 'a-1 has an invalid value for @licenses', e.message
1202
- assert_equal '/path/to/file', e.file_path
1209
+ assert_equal "a-1 has an invalid value for @licenses", e.message
1210
+ assert_equal "/path/to/file", e.file_path
1203
1211
  end
1204
1212
 
1205
1213
  def test_initialize_prerelease_version_before_name
1206
1214
  spec = Gem::Specification.new do |s|
1207
- s.version = '1.0.0.dev'
1208
- s.name = 'a'
1215
+ s.version = "1.0.0.dev"
1216
+ s.name = "a"
1209
1217
  end
1210
1218
 
1211
1219
  assert_equal "a", spec.name
1212
1220
  assert_equal "1.0.0.dev", spec.version.to_s
1213
1221
  end
1214
1222
 
1223
+ def test_initialize_nil_version
1224
+ expected = "nil versions are discouraged and will be deprecated in Rubygems 4\n"
1225
+ actual_stdout, actual_stderr = capture_output do
1226
+ Gem::Specification.new.version = nil
1227
+ end
1228
+ assert_empty actual_stdout
1229
+ assert_equal(expected, actual_stderr)
1230
+ end
1231
+
1215
1232
  def test__dump
1216
1233
  @a2.platform = Gem::Platform.local
1217
- @a2.instance_variable_set :@original_platform, 'old_platform'
1234
+ @a2.instance_variable_set :@original_platform, "old_platform"
1218
1235
 
1219
1236
  data = Marshal.dump @a2
1220
1237
 
1221
1238
  same_spec = Marshal.load data
1222
1239
 
1223
- assert_equal 'old_platform', same_spec.original_platform
1240
+ assert_equal "old_platform", same_spec.original_platform
1224
1241
  end
1225
1242
 
1226
1243
  def test_activate
@@ -1239,7 +1256,7 @@ dependencies: []
1239
1256
  end
1240
1257
 
1241
1258
  def test_add_dependency_from_existing_dependency
1242
- dep = Gem::Dependency.new("existing_dep", Gem::Requirement.new('> 1'), :runtime)
1259
+ dep = Gem::Dependency.new("existing_dep", Gem::Requirement.new("> 1"), :runtime)
1243
1260
  spec = Gem::Specification.new {|s| s.add_dependency dep }
1244
1261
  assert_equal dep, spec.dependencies.first
1245
1262
  end
@@ -1254,22 +1271,22 @@ dependencies: []
1254
1271
  end
1255
1272
 
1256
1273
  def test_author
1257
- assert_equal 'A User', @a1.author
1274
+ assert_equal "A User", @a1.author
1258
1275
  end
1259
1276
 
1260
1277
  def test_authors
1261
- assert_equal ['A User'], @a1.authors
1278
+ assert_equal ["A User"], @a1.authors
1262
1279
  end
1263
1280
 
1264
1281
  def test_bindir_equals
1265
- @a1.bindir = 'apps'
1282
+ @a1.bindir = "apps"
1266
1283
 
1267
- assert_equal 'apps', @a1.bindir
1284
+ assert_equal "apps", @a1.bindir
1268
1285
  end
1269
1286
 
1270
1287
  def test_bindir_equals_nil
1271
1288
  @a2.bindir = nil
1272
- @a2.executable = 'app'
1289
+ @a2.executable = "app"
1273
1290
 
1274
1291
  assert_nil @a2.bindir
1275
1292
  assert_equal %w[app lib/code.rb].sort, @a2.files
@@ -1305,14 +1322,14 @@ dependencies: []
1305
1322
 
1306
1323
  assert_empty @ext.build_args
1307
1324
 
1308
- File.open @ext.build_info_file, 'w' do |io|
1325
+ File.open @ext.build_info_file, "w" do |io|
1309
1326
  io.puts
1310
1327
  end
1311
1328
 
1312
1329
  assert_empty @ext.build_args
1313
1330
 
1314
- File.open @ext.build_info_file, 'w' do |io|
1315
- io.puts '--with-foo-dir=wherever'
1331
+ File.open @ext.build_info_file, "w" do |io|
1332
+ io.puts "--with-foo-dir=wherever"
1316
1333
  end
1317
1334
 
1318
1335
  assert_equal %w[--with-foo-dir=wherever], @ext.build_args
@@ -1322,13 +1339,13 @@ dependencies: []
1322
1339
  pend "extensions don't quite work on jruby" if Gem.java_platform?
1323
1340
  ext_spec
1324
1341
 
1325
- assert_path_not_exist @ext.extension_dir, 'sanity check'
1326
- refute_empty @ext.extensions, 'sanity check'
1342
+ assert_path_not_exist @ext.extension_dir, "sanity check"
1343
+ refute_empty @ext.extensions, "sanity check"
1327
1344
 
1328
1345
  extconf_rb = File.join @ext.gem_dir, @ext.extensions.first
1329
1346
  FileUtils.mkdir_p File.dirname extconf_rb
1330
1347
 
1331
- File.open extconf_rb, 'w' do |f|
1348
+ File.open extconf_rb, "w" do |f|
1332
1349
  f.write <<-'RUBY'
1333
1350
  File.open 'Makefile', 'w' do |f|
1334
1351
  f.puts "clean:\n\techo clean"
@@ -1344,13 +1361,13 @@ dependencies: []
1344
1361
  end
1345
1362
 
1346
1363
  def test_default_spec_stub_is_marked_default
1347
- default = new_default_spec 'default', 2
1364
+ default = new_default_spec "default", 2
1348
1365
  install_default_gems default
1349
1366
 
1350
- stub = Gem::Specification.stubs.find {|s| s.name == 'default' }
1367
+ stub = Gem::Specification.stubs.find {|s| s.name == "default" }
1351
1368
  assert_predicate stub, :default_gem?
1352
1369
 
1353
- stub = Gem::Specification.find_all_by_name('default').first
1370
+ stub = Gem::Specification.find_all_by_name("default").first
1354
1371
  assert_predicate stub, :default_gem?
1355
1372
  end
1356
1373
 
@@ -1358,28 +1375,28 @@ dependencies: []
1358
1375
  pend "extensions don't quite work on jruby" if Gem.java_platform?
1359
1376
  ext_spec
1360
1377
 
1361
- refute_empty @ext.extensions, 'sanity check'
1378
+ refute_empty @ext.extensions, "sanity check"
1362
1379
 
1363
1380
  gem_build_complete =
1364
- File.join @ext.extension_dir, 'gem.build_complete'
1381
+ File.join @ext.extension_dir, "gem.build_complete"
1365
1382
 
1366
1383
  FileUtils.mkdir_p @ext.extension_dir
1367
1384
  FileUtils.touch gem_build_complete
1368
1385
 
1369
1386
  @ext.build_extensions
1370
1387
 
1371
- gem_make_out = File.join @ext.extension_dir, 'gem_make.out'
1388
+ gem_make_out = File.join @ext.extension_dir, "gem_make.out"
1372
1389
  assert_path_not_exist gem_make_out
1373
1390
  end
1374
1391
 
1375
1392
  def test_build_extensions_default_gem
1376
- spec = new_default_spec 'default', 1
1377
- spec.extensions << 'extconf.rb'
1393
+ spec = new_default_spec "default", 1
1394
+ spec.extensions << "extconf.rb"
1378
1395
 
1379
1396
  extconf_rb = File.join spec.gem_dir, spec.extensions.first
1380
1397
  FileUtils.mkdir_p File.dirname extconf_rb
1381
1398
 
1382
- File.open extconf_rb, 'w' do |f|
1399
+ File.open extconf_rb, "w" do |f|
1383
1400
  f.write <<-'RUBY'
1384
1401
  File.open 'Makefile', 'w' do |f|
1385
1402
  f.puts "default:\n\techo built"
@@ -1397,7 +1414,7 @@ dependencies: []
1397
1414
  pend "extensions don't quite work on jruby" if Gem.java_platform?
1398
1415
  ext_spec
1399
1416
 
1400
- refute_empty @ext.extensions, 'sanity check'
1417
+ refute_empty @ext.extensions, "sanity check"
1401
1418
 
1402
1419
  assert_raise Gem::Ext::BuildError do
1403
1420
  @ext.build_extensions
@@ -1405,18 +1422,18 @@ dependencies: []
1405
1422
  end
1406
1423
 
1407
1424
  def test_build_extensions_extensions_dir_unwritable
1408
- pend 'chmod not supported' if Gem.win_platform?
1409
- pend 'skipped in root privilege' if Process.uid.zero?
1425
+ pend "chmod not supported" if Gem.win_platform?
1426
+ pend "skipped in root privilege" if Process.uid.zero?
1410
1427
 
1411
1428
  pend "extensions don't quite work on jruby" if Gem.java_platform?
1412
1429
  ext_spec
1413
1430
 
1414
- refute_empty @ext.extensions, 'sanity check'
1431
+ refute_empty @ext.extensions, "sanity check"
1415
1432
 
1416
1433
  extconf_rb = File.join @ext.gem_dir, @ext.extensions.first
1417
1434
  FileUtils.mkdir_p File.dirname extconf_rb
1418
1435
 
1419
- File.open extconf_rb, 'w' do |f|
1436
+ File.open extconf_rb, "w" do |f|
1420
1437
  f.write <<-'RUBY'
1421
1438
  File.open 'Makefile', 'w' do |f|
1422
1439
  f.puts "clean:\n\techo clean"
@@ -1426,30 +1443,30 @@ dependencies: []
1426
1443
  RUBY
1427
1444
  end
1428
1445
 
1429
- FileUtils.mkdir_p File.join @ext.base_dir, 'extensions'
1446
+ FileUtils.mkdir_p File.join @ext.base_dir, "extensions"
1430
1447
  FileUtils.chmod 0555, @ext.base_dir
1431
- FileUtils.chmod 0555, File.join(@ext.base_dir, 'extensions')
1448
+ FileUtils.chmod 0555, File.join(@ext.base_dir, "extensions")
1432
1449
 
1433
1450
  @ext.build_extensions
1434
1451
  assert_path_not_exist @ext.extension_dir
1435
1452
  ensure
1436
- unless ($DEBUG or win_platform? or Process.uid.zero? or Gem.java_platform?)
1437
- FileUtils.chmod 0755, File.join(@ext.base_dir, 'extensions')
1453
+ unless ($DEBUG || win_platform? || Process.uid.zero? || Gem.java_platform?)
1454
+ FileUtils.chmod 0755, File.join(@ext.base_dir, "extensions")
1438
1455
  FileUtils.chmod 0755, @ext.base_dir
1439
1456
  end
1440
1457
  end
1441
1458
 
1442
1459
  def test_build_extensions_no_extensions_dir_unwritable
1443
- pend 'chmod not supported' if Gem.win_platform?
1460
+ pend "chmod not supported" if Gem.win_platform?
1444
1461
  pend "extensions don't quite work on jruby" if Gem.java_platform?
1445
1462
  ext_spec
1446
1463
 
1447
- refute_empty @ext.extensions, 'sanity check'
1464
+ refute_empty @ext.extensions, "sanity check"
1448
1465
 
1449
1466
  extconf_rb = File.join @ext.gem_dir, @ext.extensions.first
1450
1467
  FileUtils.mkdir_p File.dirname extconf_rb
1451
1468
 
1452
- File.open extconf_rb, 'w' do |f|
1469
+ File.open extconf_rb, "w" do |f|
1453
1470
  f.write <<-'RUBY'
1454
1471
  File.open 'Makefile', 'w' do |f|
1455
1472
  f.puts "clean:\n\techo clean"
@@ -1459,20 +1476,20 @@ dependencies: []
1459
1476
  RUBY
1460
1477
  end
1461
1478
 
1462
- FileUtils.rm_r File.join @gemhome, 'extensions'
1479
+ FileUtils.rm_r File.join @gemhome, "extensions"
1463
1480
  FileUtils.chmod 0555, @gemhome
1464
1481
 
1465
1482
  @ext.build_extensions
1466
1483
 
1467
- gem_make_out = File.join @ext.extension_dir, 'gem_make.out'
1484
+ gem_make_out = File.join @ext.extension_dir, "gem_make.out"
1468
1485
  assert_path_not_exist gem_make_out
1469
1486
  ensure
1470
1487
  FileUtils.chmod 0755, @gemhome
1471
1488
  end
1472
1489
 
1473
1490
  def test_build_extensions_none
1474
- assert_path_not_exist @a1.extension_dir, 'sanity check'
1475
- assert_empty @a1.extensions, 'sanity check'
1491
+ assert_path_not_exist @a1.extension_dir, "sanity check"
1492
+ assert_empty @a1.extensions, "sanity check"
1476
1493
 
1477
1494
  @a1.build_extensions
1478
1495
 
@@ -1486,7 +1503,7 @@ dependencies: []
1486
1503
  extconf_rb = File.join @ext.gem_dir, @ext.extensions.first
1487
1504
  FileUtils.mkdir_p File.dirname extconf_rb
1488
1505
 
1489
- File.open extconf_rb, 'w' do |f|
1506
+ File.open extconf_rb, "w" do |f|
1490
1507
  f.write <<-'RUBY'
1491
1508
  File.open 'Makefile', 'w' do |f|
1492
1509
  f.puts "clean:\n\techo clean"
@@ -1496,22 +1513,22 @@ dependencies: []
1496
1513
  RUBY
1497
1514
  end
1498
1515
 
1499
- refute_empty @ext.extensions, 'sanity check'
1516
+ refute_empty @ext.extensions, "sanity check"
1500
1517
 
1501
- @ext.installed_by_version = v('2.2.0.preview.2')
1518
+ @ext.installed_by_version = v("2.2.0.preview.2")
1502
1519
 
1503
1520
  @ext.build_extensions
1504
1521
 
1505
- gem_make_out = File.join @ext.extension_dir, 'gem_make.out'
1522
+ gem_make_out = File.join @ext.extension_dir, "gem_make.out"
1506
1523
  assert_path_exist gem_make_out
1507
1524
  end
1508
1525
 
1509
1526
  def test_contains_requirable_file_eh
1510
- code_rb = File.join @a1.gem_dir, 'lib', 'code.rb'
1527
+ code_rb = File.join @a1.gem_dir, "lib", "code.rb"
1511
1528
  FileUtils.mkdir_p File.dirname code_rb
1512
1529
  FileUtils.touch code_rb
1513
1530
 
1514
- assert @a1.contains_requirable_file? 'code'
1531
+ assert @a1.contains_requirable_file? "code"
1515
1532
  end
1516
1533
 
1517
1534
  def test_contains_requirable_file_eh_extension
@@ -1519,7 +1536,7 @@ dependencies: []
1519
1536
  ext_spec
1520
1537
 
1521
1538
  _, err = capture_output do
1522
- refute @ext.contains_requirable_file? 'nonexistent'
1539
+ refute @ext.contains_requirable_file? "nonexistent"
1523
1540
  end
1524
1541
 
1525
1542
  expected = "Ignoring ext-1 because its extensions are not built. " +
@@ -1532,7 +1549,7 @@ dependencies: []
1532
1549
  ext_spec(platform: Gem::Platform.new("java"))
1533
1550
 
1534
1551
  _, err = capture_output do
1535
- refute @ext.contains_requirable_file? 'nonexistent'
1552
+ refute @ext.contains_requirable_file? "nonexistent"
1536
1553
  end
1537
1554
 
1538
1555
  assert_empty err
@@ -1548,13 +1565,13 @@ dependencies: []
1548
1565
  end
1549
1566
 
1550
1567
  def test_date_equals_string
1551
- @a1.date = '2003-09-17'
1568
+ @a1.date = "2003-09-17"
1552
1569
  assert_equal Time.utc(2003, 9, 17, 0,0,0), @a1.date
1553
1570
  end
1554
1571
 
1555
1572
  def test_date_equals_string_bad
1556
1573
  assert_raise Gem::InvalidSpecificationException do
1557
- @a1.date = '9/11/2003'
1574
+ @a1.date = "9/11/2003"
1558
1575
  end
1559
1576
  end
1560
1577
 
@@ -1601,7 +1618,7 @@ dependencies: []
1601
1618
 
1602
1619
  assert_empty @gem.dependent_gems
1603
1620
 
1604
- bonobo = util_spec 'bonobo', 1
1621
+ bonobo = util_spec "bonobo", 1
1605
1622
  install_gem bonobo
1606
1623
  install_gem @gem
1607
1624
 
@@ -1613,11 +1630,11 @@ dependencies: []
1613
1630
  end
1614
1631
 
1615
1632
  def test_doc_dir
1616
- assert_equal File.join(@gemhome, 'doc', 'a-1'), @a1.doc_dir
1633
+ assert_equal File.join(@gemhome, "doc", "a-1"), @a1.doc_dir
1617
1634
  end
1618
1635
 
1619
1636
  def test_doc_dir_type
1620
- assert_equal File.join(@gemhome, 'doc', 'a-1', 'ri'), @a1.doc_dir('ri')
1637
+ assert_equal File.join(@gemhome, "doc", "a-1", "ri"), @a1.doc_dir("ri")
1621
1638
  end
1622
1639
 
1623
1640
  def test_runtime_dependencies
@@ -1631,12 +1648,12 @@ dependencies: []
1631
1648
  end
1632
1649
 
1633
1650
  def test_description
1634
- assert_equal 'This is a test description', @a1.description
1651
+ assert_equal "This is a test description", @a1.description
1635
1652
  end
1636
1653
 
1637
1654
  def test_eql_eh
1638
- g1 = util_spec 'gem', 1
1639
- g2 = util_spec 'gem', 1
1655
+ g1 = util_spec "gem", 1
1656
+ g2 = util_spec "gem", 1
1640
1657
 
1641
1658
  assert_equal g1, g2
1642
1659
  assert_equal g1.hash, g2.hash
@@ -1645,47 +1662,47 @@ dependencies: []
1645
1662
 
1646
1663
  def test_eql_eh_extensions
1647
1664
  spec = @a1.dup
1648
- spec.extensions = 'xx'
1665
+ spec.extensions = "xx"
1649
1666
 
1650
1667
  refute_operator @a1, :eql?, spec
1651
1668
  refute_operator spec, :eql?, @a1
1652
1669
  end
1653
1670
 
1654
1671
  def test_executables
1655
- @a1.executable = 'app'
1672
+ @a1.executable = "app"
1656
1673
  assert_equal %w[app], @a1.executables
1657
1674
  end
1658
1675
 
1659
1676
  def test_executable_equals
1660
- @a2.executable = 'app'
1661
- assert_equal 'app', @a2.executable
1677
+ @a2.executable = "app"
1678
+ assert_equal "app", @a2.executable
1662
1679
  assert_equal %w[bin/app lib/code.rb].sort, @a2.files
1663
1680
  end
1664
1681
 
1665
1682
  def test_extensions
1666
- assert_equal ['ext/extconf.rb'], ext_spec.extensions
1683
+ assert_equal ["ext/extconf.rb"], ext_spec.extensions
1667
1684
  end
1668
1685
 
1669
1686
  def test_extension_dir
1670
- enable_shared, RbConfig::CONFIG['ENABLE_SHARED'] =
1671
- RbConfig::CONFIG['ENABLE_SHARED'], 'no'
1687
+ enable_shared, RbConfig::CONFIG["ENABLE_SHARED"] =
1688
+ RbConfig::CONFIG["ENABLE_SHARED"], "no"
1672
1689
 
1673
1690
  ext_spec
1674
1691
 
1675
1692
  refute_empty @ext.extensions
1676
1693
 
1677
1694
  expected =
1678
- File.join(@ext.base_dir, 'extensions', Gem::Platform.local.to_s,
1695
+ File.join(@ext.base_dir, "extensions", Gem::Platform.local.to_s,
1679
1696
  "#{Gem.ruby_api_version}-static", @ext.full_name)
1680
1697
 
1681
1698
  assert_equal expected, @ext.extension_dir
1682
1699
  ensure
1683
- RbConfig::CONFIG['ENABLE_SHARED'] = enable_shared
1700
+ RbConfig::CONFIG["ENABLE_SHARED"] = enable_shared
1684
1701
  end
1685
1702
 
1686
1703
  def test_extension_dir_override
1687
- enable_shared, RbConfig::CONFIG['ENABLE_SHARED'] =
1688
- RbConfig::CONFIG['ENABLE_SHARED'], 'no'
1704
+ enable_shared, RbConfig::CONFIG["ENABLE_SHARED"] =
1705
+ RbConfig::CONFIG["ENABLE_SHARED"], "no"
1689
1706
 
1690
1707
  class << Gem
1691
1708
  alias orig_default_ext_dir_for default_ext_dir_for
@@ -1693,7 +1710,7 @@ dependencies: []
1693
1710
  remove_method :default_ext_dir_for
1694
1711
 
1695
1712
  def Gem.default_ext_dir_for(base_dir)
1696
- 'elsewhere'
1713
+ "elsewhere"
1697
1714
  end
1698
1715
  end
1699
1716
 
@@ -1701,11 +1718,11 @@ dependencies: []
1701
1718
 
1702
1719
  refute_empty @ext.extensions
1703
1720
 
1704
- expected = File.join @tempdir, 'elsewhere', @ext.full_name
1721
+ expected = File.join @tempdir, "elsewhere", @ext.full_name
1705
1722
 
1706
1723
  assert_equal expected, @ext.extension_dir
1707
1724
  ensure
1708
- RbConfig::CONFIG['ENABLE_SHARED'] = enable_shared
1725
+ RbConfig::CONFIG["ENABLE_SHARED"] = enable_shared
1709
1726
 
1710
1727
  class << Gem
1711
1728
  remove_method :default_ext_dir_for
@@ -1795,9 +1812,9 @@ dependencies: []
1795
1812
  end
1796
1813
 
1797
1814
  def test_for_cache
1798
- @a2.add_runtime_dependency 'b', '1'
1815
+ @a2.add_runtime_dependency "b", "1"
1799
1816
  @a2.dependencies.first.instance_variable_set :@type, nil
1800
- @a2.required_rubygems_version = Gem::Requirement.new '> 0'
1817
+ @a2.required_rubygems_version = Gem::Requirement.new "> 0"
1801
1818
  @a2.test_files = %w[test/test_b.rb]
1802
1819
 
1803
1820
  refute_empty @a2.files
@@ -1813,11 +1830,11 @@ dependencies: []
1813
1830
  end
1814
1831
 
1815
1832
  def test_full_gem_path
1816
- assert_equal File.join(@gemhome, 'gems', @a1.full_name), @a1.full_gem_path
1833
+ assert_equal File.join(@gemhome, "gems", @a1.full_name), @a1.full_gem_path
1817
1834
 
1818
- @a1.original_platform = 'mswin32'
1835
+ @a1.original_platform = "mswin32"
1819
1836
 
1820
- assert_equal File.join(@gemhome, 'gems', @a1.original_name),
1837
+ assert_equal File.join(@gemhome, "gems", @a1.original_name),
1821
1838
  @a1.full_gem_path
1822
1839
  end
1823
1840
 
@@ -1830,40 +1847,40 @@ dependencies: []
1830
1847
  end
1831
1848
 
1832
1849
  def test_full_name
1833
- assert_equal 'a-1', @a1.full_name
1850
+ assert_equal "a-1", @a1.full_name
1834
1851
 
1835
1852
  @a1 = Gem::Specification.new "a", 1
1836
- @a1.platform = Gem::Platform.new ['universal', 'darwin', nil]
1837
- assert_equal 'a-1-universal-darwin', @a1.full_name
1853
+ @a1.platform = Gem::Platform.new ["universal", "darwin", nil]
1854
+ assert_equal "a-1-universal-darwin", @a1.full_name
1838
1855
 
1839
1856
  @a1 = Gem::Specification.new "a", 1
1840
- @a1.instance_variable_set :@new_platform, 'mswin32'
1841
- assert_equal 'a-1-mswin32', @a1.full_name, 'legacy'
1857
+ @a1.instance_variable_set :@new_platform, "mswin32"
1858
+ assert_equal "a-1-mswin32", @a1.full_name, "legacy"
1842
1859
 
1843
1860
  return if win_platform?
1844
1861
 
1845
1862
  @a1 = Gem::Specification.new "a", 1
1846
- @a1.platform = 'current'
1847
- assert_equal 'a-1-x86-darwin-8', @a1.full_name
1863
+ @a1.platform = "current"
1864
+ assert_equal "a-1-x86-darwin-8", @a1.full_name
1848
1865
  end
1849
1866
 
1850
1867
  def test_full_name_windows
1851
1868
  test_cases = {
1852
- 'i386-mswin32' => 'a-1-x86-mswin32-60',
1853
- 'i386-mswin32_80' => 'a-1-x86-mswin32-80',
1854
- 'i386-mingw32' => 'a-1-x86-mingw32',
1869
+ "i386-mswin32" => "a-1-x86-mswin32-60",
1870
+ "i386-mswin32_80" => "a-1-x86-mswin32-80",
1871
+ "i386-mingw32" => "a-1-x86-mingw32",
1855
1872
  }
1856
1873
 
1857
1874
  test_cases.each do |arch, expected|
1858
1875
  @a1 = Gem::Specification.new "a", 1
1859
1876
  util_set_arch arch
1860
- @a1.platform = 'current'
1877
+ @a1.platform = "current"
1861
1878
  assert_equal expected, @a1.full_name
1862
1879
  end
1863
1880
  end
1864
1881
 
1865
1882
  def test_gem_build_complete_path
1866
- expected = File.join @a1.extension_dir, 'gem.build_complete'
1883
+ expected = File.join @a1.extension_dir, "gem.build_complete"
1867
1884
  assert_equal expected, @a1.gem_build_complete_path
1868
1885
  end
1869
1886
 
@@ -1907,23 +1924,23 @@ dependencies: []
1907
1924
  end
1908
1925
 
1909
1926
  def test_license
1910
- assert_equal 'MIT', @a1.license
1927
+ assert_equal "MIT", @a1.license
1911
1928
  end
1912
1929
 
1913
1930
  def test_licenses
1914
- assert_equal ['MIT'], @a1.licenses
1931
+ assert_equal ["MIT"], @a1.licenses
1915
1932
  end
1916
1933
 
1917
1934
  def test_name
1918
- assert_equal 'a', @a1.name
1935
+ assert_equal "a", @a1.name
1919
1936
  end
1920
1937
 
1921
1938
  def test_original_name
1922
- assert_equal 'a-1', @a1.full_name
1939
+ assert_equal "a-1", @a1.full_name
1923
1940
 
1924
- @a1.platform = 'i386-linux'
1925
- @a1.instance_variable_set :@original_platform, 'i386-linux'
1926
- assert_equal 'a-1-i386-linux', @a1.original_name
1941
+ @a1.platform = "i386-linux"
1942
+ @a1.instance_variable_set :@original_platform, "i386-linux"
1943
+ assert_equal "a-1-i386-linux", @a1.original_name
1927
1944
  end
1928
1945
 
1929
1946
  def test_platform
@@ -1952,10 +1969,10 @@ dependencies: []
1952
1969
  assert_equal Gem::Platform::RUBY, @a1.platform
1953
1970
 
1954
1971
  test_cases = {
1955
- 'i386-mswin32' => ['x86', 'mswin32', '60'],
1956
- 'i386-mswin32_80' => ['x86', 'mswin32', '80'],
1957
- 'i386-mingw32' => ['x86', 'mingw32', nil ],
1958
- 'x86-darwin8' => ['x86', 'darwin', '8' ],
1972
+ "i386-mswin32" => ["x86", "mswin32", "60"],
1973
+ "i386-mswin32_80" => ["x86", "mswin32", "80"],
1974
+ "i386-mingw32" => ["x86", "mingw32", nil ],
1975
+ "x86-darwin8" => ["x86", "darwin", "8" ],
1959
1976
  }
1960
1977
 
1961
1978
  test_cases.each do |arch, expected|
@@ -1972,29 +1989,29 @@ dependencies: []
1972
1989
  end
1973
1990
 
1974
1991
  def test_platform_equals_legacy
1975
- @a1.platform = 'mswin32'
1976
- assert_equal Gem::Platform.new('x86-mswin32'), @a1.platform
1992
+ @a1.platform = "mswin32"
1993
+ assert_equal Gem::Platform.new("x86-mswin32"), @a1.platform
1977
1994
 
1978
- @a1.platform = 'i586-linux'
1979
- assert_equal Gem::Platform.new('x86-linux'), @a1.platform
1995
+ @a1.platform = "i586-linux"
1996
+ assert_equal Gem::Platform.new("x86-linux"), @a1.platform
1980
1997
 
1981
- @a1.platform = 'powerpc-darwin'
1982
- assert_equal Gem::Platform.new('ppc-darwin'), @a1.platform
1998
+ @a1.platform = "powerpc-darwin"
1999
+ assert_equal Gem::Platform.new("ppc-darwin"), @a1.platform
1983
2000
  end
1984
2001
 
1985
2002
  def test_prerelease_spec_adds_required_rubygems_version
1986
- @prerelease = util_spec('tardis', '2.2.0.a')
1987
- refute @prerelease.required_rubygems_version.satisfied_by?(Gem::Version.new('1.3.1'))
1988
- assert @prerelease.required_rubygems_version.satisfied_by?(Gem::Version.new('1.4.0'))
2003
+ @prerelease = util_spec("tardis", "2.2.0.a")
2004
+ refute @prerelease.required_rubygems_version.satisfied_by?(Gem::Version.new("1.3.1"))
2005
+ assert @prerelease.required_rubygems_version.satisfied_by?(Gem::Version.new("1.4.0"))
1989
2006
  end
1990
2007
 
1991
2008
  def test_require_paths
1992
- enable_shared 'no' do
2009
+ enable_shared "no" do
1993
2010
  ext_spec
1994
2011
 
1995
- @ext.require_paths = 'lib'
2012
+ @ext.require_paths = "lib"
1996
2013
 
1997
- assert_equal [@ext.extension_dir, 'lib'], @ext.require_paths
2014
+ assert_equal [@ext.extension_dir, "lib"], @ext.require_paths
1998
2015
  end
1999
2016
  end
2000
2017
 
@@ -2006,15 +2023,15 @@ dependencies: []
2006
2023
  end
2007
2024
 
2008
2025
  def Gem.default_ext_dir_for(base_dir)
2009
- '/foo'
2026
+ "/foo"
2010
2027
  end
2011
2028
 
2012
- enable_shared 'no' do
2029
+ enable_shared "no" do
2013
2030
  ext_spec
2014
2031
 
2015
- @ext.require_paths = 'lib'
2032
+ @ext.require_paths = "lib"
2016
2033
 
2017
- assert_equal [File.expand_path('/foo/ext-1'), 'lib'], @ext.require_paths
2034
+ assert_equal [File.expand_path("/foo/ext-1"), "lib"], @ext.require_paths
2018
2035
  end
2019
2036
  ensure
2020
2037
  class << Gem
@@ -2032,7 +2049,7 @@ dependencies: []
2032
2049
  ext_spec
2033
2050
 
2034
2051
  @ext.require_paths = %w[lib ext foo]
2035
- @ext.extensions << 'bar/baz'
2052
+ @ext.extensions << "bar/baz"
2036
2053
 
2037
2054
  expected = %w[
2038
2055
  lib
@@ -2047,10 +2064,10 @@ dependencies: []
2047
2064
  def test_full_require_paths
2048
2065
  ext_spec
2049
2066
 
2050
- @ext.require_paths = 'lib'
2067
+ @ext.require_paths = "lib"
2051
2068
 
2052
2069
  expected = [
2053
- File.join(@gemhome, 'gems', @ext.original_name, 'lib'),
2070
+ File.join(@gemhome, "gems", @ext.original_name, "lib"),
2054
2071
  @ext.extension_dir,
2055
2072
  ]
2056
2073
 
@@ -2060,10 +2077,10 @@ dependencies: []
2060
2077
  def test_to_fullpath
2061
2078
  ext_spec
2062
2079
 
2063
- @ext.require_paths = 'lib'
2080
+ @ext.require_paths = "lib"
2064
2081
 
2065
- dir = File.join(@gemhome, 'gems', @ext.original_name, 'lib')
2066
- expected_rb = File.join(dir, 'code.rb')
2082
+ dir = File.join(@gemhome, "gems", @ext.original_name, "lib")
2083
+ expected_rb = File.join(dir, "code.rb")
2067
2084
  FileUtils.mkdir_p dir
2068
2085
  FileUtils.touch expected_rb
2069
2086
 
@@ -2097,10 +2114,10 @@ dependencies: []
2097
2114
  def test_fullpath_return_rb_extension_file_when_exist_the_same_name_file
2098
2115
  ext_spec
2099
2116
 
2100
- @ext.require_paths = 'lib'
2117
+ @ext.require_paths = "lib"
2101
2118
 
2102
- dir = File.join(@gemhome, 'gems', @ext.original_name, 'lib')
2103
- expected_rb = File.join(dir, 'code.rb')
2119
+ dir = File.join(@gemhome, "gems", @ext.original_name, "lib")
2120
+ expected_rb = File.join(dir, "code.rb")
2104
2121
  FileUtils.mkdir_p dir
2105
2122
  FileUtils.touch expected_rb
2106
2123
 
@@ -2152,12 +2169,12 @@ dependencies: []
2152
2169
  end
2153
2170
 
2154
2171
  def test_requirements
2155
- assert_equal ['A working computer'], @a1.requirements
2172
+ assert_equal ["A working computer"], @a1.requirements
2156
2173
  end
2157
2174
 
2158
2175
  def test_allowed_push_host
2159
- assert_nil @a1.metadata['allowed_push_host']
2160
- assert_equal 'https://privategemserver.com', @a3.metadata['allowed_push_host']
2176
+ assert_nil @a1.metadata["allowed_push_host"]
2177
+ assert_equal "https://privategemserver.com", @a3.metadata["allowed_push_host"]
2161
2178
  end
2162
2179
 
2163
2180
  def test_runtime_dependencies_legacy
@@ -2173,8 +2190,8 @@ dependencies: []
2173
2190
  end
2174
2191
 
2175
2192
  def test_spaceship_name
2176
- s1 = util_spec 'a', '1'
2177
- s2 = util_spec 'b', '1'
2193
+ s1 = util_spec "a", "1"
2194
+ s2 = util_spec "b", "1"
2178
2195
 
2179
2196
  assert_equal(-1, (s1 <=> s2))
2180
2197
  assert_equal(0, (s1 <=> s1))
@@ -2182,9 +2199,9 @@ dependencies: []
2182
2199
  end
2183
2200
 
2184
2201
  def test_spaceship_platform
2185
- s1 = util_spec 'a', '1'
2186
- s2 = util_spec 'a', '1' do |s|
2187
- s.platform = Gem::Platform.new 'x86-my_platform1'
2202
+ s1 = util_spec "a", "1"
2203
+ s2 = util_spec "a", "1" do |s|
2204
+ s.platform = Gem::Platform.new "x86-my_platform1"
2188
2205
  end
2189
2206
 
2190
2207
  assert_equal(-1, (s1 <=> s2))
@@ -2193,8 +2210,8 @@ dependencies: []
2193
2210
  end
2194
2211
 
2195
2212
  def test_spaceship_version
2196
- s1 = util_spec 'a', '1'
2197
- s2 = util_spec 'a', '2'
2213
+ s1 = util_spec "a", "1"
2214
+ s2 = util_spec "a", "2"
2198
2215
 
2199
2216
  assert_equal(-1, (s1 <=> s2))
2200
2217
  assert_equal(0, (s1 <=> s1))
@@ -2202,25 +2219,25 @@ dependencies: []
2202
2219
  end
2203
2220
 
2204
2221
  def test_spec_file
2205
- assert_equal File.join(@gemhome, 'specifications', 'a-1.gemspec'),
2222
+ assert_equal File.join(@gemhome, "specifications", "a-1.gemspec"),
2206
2223
  @a1.spec_file
2207
2224
  end
2208
2225
 
2209
2226
  def test_spec_name
2210
- assert_equal 'a-1.gemspec', @a1.spec_name
2227
+ assert_equal "a-1.gemspec", @a1.spec_name
2211
2228
  end
2212
2229
 
2213
2230
  def test_summary
2214
- assert_equal 'this is a summary', @a1.summary
2231
+ assert_equal "this is a summary", @a1.summary
2215
2232
  end
2216
2233
 
2217
2234
  def test_test_files
2218
- @a1.test_file = 'test/suite.rb'
2219
- assert_equal ['test/suite.rb'], @a1.test_files
2235
+ @a1.test_file = "test/suite.rb"
2236
+ assert_equal ["test/suite.rb"], @a1.test_files
2220
2237
  end
2221
2238
 
2222
2239
  def test_runtime_predicate_true
2223
- @a2.add_runtime_dependency 'b', '1'
2240
+ @a2.add_runtime_dependency "b", "1"
2224
2241
  assert_predicate @a2.dependencies.first, :runtime?
2225
2242
 
2226
2243
  @a2.dependencies.first.instance_variable_set :@type, nil
@@ -2228,15 +2245,15 @@ dependencies: []
2228
2245
  end
2229
2246
 
2230
2247
  def test_runtime_predicate_false
2231
- @a2.add_development_dependency 'b', '1'
2248
+ @a2.add_development_dependency "b", "1"
2232
2249
  refute_predicate @a2.dependencies.first, :runtime?
2233
2250
  end
2234
2251
 
2235
2252
  def test_to_ruby
2236
- @a2.add_runtime_dependency 'b', '1'
2253
+ @a2.add_runtime_dependency "b", "1"
2237
2254
  @a2.dependencies.first.instance_variable_set :@type, nil
2238
- @a2.required_rubygems_version = Gem::Requirement.new '> 0'
2239
- @a2.require_paths << 'other'
2255
+ @a2.required_rubygems_version = Gem::Requirement.new "> 0"
2256
+ @a2.require_paths << "other"
2240
2257
 
2241
2258
  ruby_code = @a2.to_ruby
2242
2259
 
@@ -2259,15 +2276,9 @@ Gem::Specification.new do |s|
2259
2276
  s.rubygems_version = "#{Gem::VERSION}".freeze
2260
2277
  s.summary = "this is a summary".freeze
2261
2278
 
2262
- if s.respond_to? :specification_version then
2263
- s.specification_version = #{Gem::Specification::CURRENT_SPECIFICATION_VERSION}
2264
- end
2279
+ s.specification_version = #{Gem::Specification::CURRENT_SPECIFICATION_VERSION}
2265
2280
 
2266
- if s.respond_to? :add_runtime_dependency then
2267
- s.add_runtime_dependency(%q<b>.freeze, [\"= 1\"])
2268
- else
2269
- s.add_dependency(%q<b>.freeze, [\"= 1\"])
2270
- end
2281
+ s.add_runtime_dependency(%q<b>.freeze, [\"= 1\"])
2271
2282
  end
2272
2283
  SPEC
2273
2284
 
@@ -2279,8 +2290,8 @@ end
2279
2290
  end
2280
2291
 
2281
2292
  def test_to_ruby_with_rsa_key
2282
- require 'rubygems/openssl'
2283
- pend 'openssl is missing' unless defined?(OpenSSL::PKey::RSA)
2293
+ require "rubygems/openssl"
2294
+ pend "openssl is missing" unless defined?(OpenSSL::PKey::RSA)
2284
2295
 
2285
2296
  rsa_key = OpenSSL::PKey::RSA.new(2048)
2286
2297
  @a2.signing_key = rsa_key
@@ -2311,9 +2322,9 @@ end
2311
2322
  end
2312
2323
 
2313
2324
  def test_to_ruby_for_cache
2314
- @a2.add_runtime_dependency 'b', '1'
2325
+ @a2.add_runtime_dependency "b", "1"
2315
2326
  @a2.dependencies.first.instance_variable_set :@type, nil
2316
- @a2.required_rubygems_version = Gem::Requirement.new '> 0'
2327
+ @a2.required_rubygems_version = Gem::Requirement.new "> 0"
2317
2328
  @a2.installed_by_version = Gem.rubygems_version
2318
2329
 
2319
2330
  # cached specs do not have spec.files populated:
@@ -2339,15 +2350,9 @@ Gem::Specification.new do |s|
2339
2350
 
2340
2351
  s.installed_by_version = "#{Gem::VERSION}" if s.respond_to? :installed_by_version
2341
2352
 
2342
- if s.respond_to? :specification_version then
2343
- s.specification_version = #{Gem::Specification::CURRENT_SPECIFICATION_VERSION}
2344
- end
2353
+ s.specification_version = #{Gem::Specification::CURRENT_SPECIFICATION_VERSION}
2345
2354
 
2346
- if s.respond_to? :add_runtime_dependency then
2347
- s.add_runtime_dependency(%q<b>.freeze, [\"= 1\"])
2348
- else
2349
- s.add_dependency(%q<b>.freeze, [\"= 1\"])
2350
- end
2355
+ s.add_runtime_dependency(%q<b>.freeze, [\"= 1\"])
2351
2356
  end
2352
2357
  SPEC
2353
2358
 
@@ -2398,19 +2403,11 @@ Gem::Specification.new do |s|
2398
2403
  s.summary = "this is a summary".freeze
2399
2404
  s.test_files = ["test/suite.rb".freeze]
2400
2405
 
2401
- if s.respond_to? :specification_version then
2402
- s.specification_version = 4
2403
- end
2406
+ s.specification_version = 4
2404
2407
 
2405
- if s.respond_to? :add_runtime_dependency then
2406
- s.add_runtime_dependency(%q<rake>.freeze, [\"> 0.4\"])
2407
- s.add_runtime_dependency(%q<jabber4r>.freeze, [\"> 0.0.0\"])
2408
- s.add_runtime_dependency(%q<pqa>.freeze, [\"> 0.4\", \"<= 0.6\"])
2409
- else
2410
- s.add_dependency(%q<rake>.freeze, [\"> 0.4\"])
2411
- s.add_dependency(%q<jabber4r>.freeze, [\"> 0.0.0\"])
2412
- s.add_dependency(%q<pqa>.freeze, [\"> 0.4\", \"<= 0.6\"])
2413
- end
2408
+ s.add_runtime_dependency(%q<rake>.freeze, [\"> 0.4\"])
2409
+ s.add_runtime_dependency(%q<jabber4r>.freeze, [\"> 0.0.0\"])
2410
+ s.add_runtime_dependency(%q<pqa>.freeze, [\"> 0.4\", \"<= 0.6\"])
2414
2411
  end
2415
2412
  SPEC
2416
2413
 
@@ -2422,8 +2419,8 @@ end
2422
2419
  end
2423
2420
 
2424
2421
  def test_to_ruby_keeps_requirements_as_originally_specified
2425
- spec = util_spec 'a', '1' do |s|
2426
- s.add_dependency 'b', ['~> 1.0', '>= 1.0.0']
2422
+ spec = util_spec "a", "1" do |s|
2423
+ s.add_dependency "b", ["~> 1.0", ">= 1.0.0"]
2427
2424
  end
2428
2425
 
2429
2426
  assert_includes spec.to_ruby, '"~> 1.0", ">= 1.0.0"'
@@ -2452,13 +2449,13 @@ end
2452
2449
 
2453
2450
  def test_to_ruby_platform
2454
2451
  @a2.platform = Gem::Platform.local
2455
- @a2.instance_variable_set :@original_platform, 'old_platform'
2452
+ @a2.instance_variable_set :@original_platform, "old_platform"
2456
2453
 
2457
2454
  ruby_code = @a2.to_ruby
2458
2455
 
2459
2456
  same_spec = eval ruby_code
2460
2457
 
2461
- assert_equal 'old_platform', same_spec.original_platform
2458
+ assert_equal "old_platform", same_spec.original_platform
2462
2459
  end
2463
2460
 
2464
2461
  def test_to_yaml
@@ -2483,21 +2480,21 @@ end
2483
2480
  end
2484
2481
 
2485
2482
  def test_to_yaml_platform_empty_string
2486
- @a1.instance_variable_set :@original_platform, ''
2483
+ @a1.instance_variable_set :@original_platform, ""
2487
2484
 
2488
2485
  assert_match %r{^platform: ruby$}, @a1.to_yaml
2489
2486
  end
2490
2487
 
2491
2488
  def test_to_yaml_platform_legacy
2492
- @a1.platform = 'powerpc-darwin7.9.0'
2493
- @a1.instance_variable_set :@original_platform, 'powerpc-darwin7.9.0'
2489
+ @a1.platform = "powerpc-darwin7.9.0"
2490
+ @a1.instance_variable_set :@original_platform, "powerpc-darwin7.9.0"
2494
2491
 
2495
2492
  yaml_str = @a1.to_yaml
2496
2493
 
2497
2494
  same_spec = load_yaml yaml_str
2498
2495
 
2499
- assert_equal Gem::Platform.new('powerpc-darwin7'), same_spec.platform
2500
- assert_equal 'powerpc-darwin7.9.0', same_spec.original_platform
2496
+ assert_equal Gem::Platform.new("powerpc-darwin7"), same_spec.platform
2497
+ assert_equal "powerpc-darwin7.9.0", same_spec.original_platform
2501
2498
  end
2502
2499
 
2503
2500
  def test_to_yaml_platform_nil
@@ -2514,7 +2511,7 @@ end
2514
2511
  end
2515
2512
  end
2516
2513
 
2517
- def x(s); s.gsub(/xxx/, ''); end
2514
+ def x(s); s.gsub(/xxx/, ""); end
2518
2515
  def w; x "WARxxxNING"; end
2519
2516
  def t; x "TOxxxDO"; end
2520
2517
  def f; x "FxxxIXME"; end
@@ -2529,7 +2526,7 @@ end
2529
2526
  @a1.validate
2530
2527
  end
2531
2528
 
2532
- assert_match "#{w}: no author specified\n", @ui.error, 'error'
2529
+ assert_match "#{w}: no author specified\n", @ui.error, "error"
2533
2530
 
2534
2531
  @a1.authors = [Object.new]
2535
2532
 
@@ -2563,14 +2560,14 @@ end
2563
2560
  util_setup_validate
2564
2561
 
2565
2562
  Dir.chdir @tempdir do
2566
- @a1.autorequire = 'code'
2563
+ @a1.autorequire = "code"
2567
2564
 
2568
2565
  use_ui @ui do
2569
2566
  @a1.validate
2570
2567
  end
2571
2568
 
2572
2569
  assert_match "#{w}: deprecated autorequire specified\n",
2573
- @ui.error, 'error'
2570
+ @ui.error, "error"
2574
2571
  end
2575
2572
  end
2576
2573
 
@@ -2578,19 +2575,19 @@ end
2578
2575
  util_setup_validate
2579
2576
 
2580
2577
  Dir.chdir @tempdir do
2581
- @a1.add_runtime_dependency 'b', '>= 1.0.rc1'
2582
- @a1.add_development_dependency 'c', '>= 2.0.rc2'
2583
- @a1.add_runtime_dependency 'd', '~> 1.2.3'
2584
- @a1.add_runtime_dependency 'e', '~> 1.2.3.4'
2585
- @a1.add_runtime_dependency 'g', '~> 1.2.3', '>= 1.2.3.4'
2586
- @a1.add_runtime_dependency 'h', '>= 1.2.3', '<= 2'
2587
- @a1.add_runtime_dependency 'i', '>= 1.2'
2588
- @a1.add_runtime_dependency 'j', '>= 1.2.3'
2589
- @a1.add_runtime_dependency 'k', '> 1.2'
2590
- @a1.add_runtime_dependency 'l', '> 1.2.3'
2591
- @a1.add_runtime_dependency 'm', '~> 2.1.0'
2592
- @a1.add_runtime_dependency 'n', '~> 0.1.0'
2593
- @a1.add_runtime_dependency 'o'
2578
+ @a1.add_runtime_dependency "b", ">= 1.0.rc1"
2579
+ @a1.add_development_dependency "c", ">= 2.0.rc2"
2580
+ @a1.add_runtime_dependency "d", "~> 1.2.3"
2581
+ @a1.add_runtime_dependency "e", "~> 1.2.3.4"
2582
+ @a1.add_runtime_dependency "g", "~> 1.2.3", ">= 1.2.3.4"
2583
+ @a1.add_runtime_dependency "h", ">= 1.2.3", "<= 2"
2584
+ @a1.add_runtime_dependency "i", ">= 1.2"
2585
+ @a1.add_runtime_dependency "j", ">= 1.2.3"
2586
+ @a1.add_runtime_dependency "k", "> 1.2"
2587
+ @a1.add_runtime_dependency "l", "> 1.2.3"
2588
+ @a1.add_runtime_dependency "m", "~> 2.1.0"
2589
+ @a1.add_runtime_dependency "n", "~> 0.1.0"
2590
+ @a1.add_runtime_dependency "o"
2594
2591
 
2595
2592
  use_ui @ui do
2596
2593
  @a1.validate
@@ -2616,7 +2613,7 @@ end
2616
2613
  #{w}: See https://guides.rubygems.org/specification-reference/ for help
2617
2614
  EXPECTED
2618
2615
 
2619
- assert_equal expected, @ui.error, 'warning'
2616
+ assert_equal expected, @ui.error, "warning"
2620
2617
  end
2621
2618
  end
2622
2619
 
@@ -2624,10 +2621,10 @@ end
2624
2621
  util_setup_validate
2625
2622
 
2626
2623
  Dir.chdir @tempdir do
2627
- @a1.add_runtime_dependency 'b', '~> 1.2'
2628
- @a1.add_runtime_dependency 'b', '>= 1.2.3'
2629
- @a1.add_development_dependency 'c', '~> 1.2'
2630
- @a1.add_development_dependency 'c', '>= 1.2.3'
2624
+ @a1.add_runtime_dependency "b", "~> 1.2"
2625
+ @a1.add_runtime_dependency "b", ">= 1.2.3"
2626
+ @a1.add_development_dependency "c", "~> 1.2"
2627
+ @a1.add_development_dependency "c", ">= 1.2.3"
2631
2628
 
2632
2629
  use_ui @ui do
2633
2630
  e = assert_raise Gem::InvalidSpecificationException do
@@ -2654,14 +2651,14 @@ duplicate dependency on c (>= 1.2.3, development), (~> 1.2) use:
2654
2651
  util_setup_validate
2655
2652
 
2656
2653
  Dir.chdir @tempdir do
2657
- @a1.add_runtime_dependency 'b', '~> 1.2'
2658
- @a1.add_development_dependency 'b', '= 1.2.3'
2654
+ @a1.add_runtime_dependency "b", "~> 1.2"
2655
+ @a1.add_development_dependency "b", "= 1.2.3"
2659
2656
 
2660
2657
  use_ui @ui do
2661
2658
  @a1.validate
2662
2659
  end
2663
2660
 
2664
- assert_equal '', @ui.error, 'warning'
2661
+ assert_equal "", @ui.error, "warning"
2665
2662
  end
2666
2663
  end
2667
2664
 
@@ -2669,14 +2666,31 @@ duplicate dependency on c (>= 1.2.3, development), (~> 1.2) use:
2669
2666
  util_setup_validate
2670
2667
 
2671
2668
  Dir.chdir @tempdir do
2672
- @a1.version = '1.0.0.beta.1'
2673
- @a1.add_runtime_dependency 'b', '~> 1.2.0.beta.1'
2669
+ @a1.version = "1.0.0.beta.1"
2670
+ @a1.add_runtime_dependency "b", "~> 1.2.0.beta.1"
2671
+
2672
+ use_ui @ui do
2673
+ @a1.validate
2674
+ end
2675
+
2676
+ assert_equal "", @ui.error, "warning"
2677
+ end
2678
+ end
2679
+
2680
+ def test_validate_self_referencing_dependencies
2681
+ util_setup_validate
2682
+
2683
+ Dir.chdir @tempdir do
2684
+ @a1.add_runtime_dependency @a1.name, "1"
2674
2685
 
2675
2686
  use_ui @ui do
2676
2687
  @a1.validate
2677
2688
  end
2678
2689
 
2679
- assert_equal '', @ui.error, 'warning'
2690
+ assert_equal <<-EXPECTED, @ui.error
2691
+ #{w}: Self referencing dependency is unnecessary and strongly discouraged.
2692
+ #{w}: See https://guides.rubygems.org/specification-reference/ for help
2693
+ EXPECTED
2680
2694
  end
2681
2695
  end
2682
2696
 
@@ -2684,8 +2698,8 @@ duplicate dependency on c (>= 1.2.3, development), (~> 1.2) use:
2684
2698
  util_setup_validate
2685
2699
 
2686
2700
  Dir.chdir @tempdir do
2687
- @a1.extensions = ['Rakefile']
2688
- File.write File.join(@tempdir, 'Rakefile'), ''
2701
+ @a1.extensions = ["Rakefile"]
2702
+ File.write File.join(@tempdir, "Rakefile"), ""
2689
2703
 
2690
2704
  use_ui @ui do
2691
2705
  @a1.validate
@@ -2699,9 +2713,9 @@ duplicate dependency on c (>= 1.2.3, development), (~> 1.2) use:
2699
2713
  util_setup_validate
2700
2714
 
2701
2715
  Dir.chdir @tempdir do
2702
- @a1.extensions = ['Rakefile']
2703
- @a1.add_runtime_dependency 'rake'
2704
- File.write File.join(@tempdir, 'Rakefile'), ''
2716
+ @a1.extensions = ["Rakefile"]
2717
+ @a1.add_runtime_dependency "rake"
2718
+ File.write File.join(@tempdir, "Rakefile"), ""
2705
2719
 
2706
2720
  use_ui @ui do
2707
2721
  @a1.validate
@@ -2711,11 +2725,44 @@ duplicate dependency on c (>= 1.2.3, development), (~> 1.2) use:
2711
2725
  end
2712
2726
  end
2713
2727
 
2728
+ def test_validate_rust_extension_have_missing_cargo_toml_error
2729
+ util_setup_validate
2730
+
2731
+ Dir.chdir @tempdir do
2732
+ @a1.extensions = ["Cargo.toml"]
2733
+ File.write File.join(@tempdir, "Cargo.toml"), ""
2734
+
2735
+ e = assert_raise Gem::InvalidSpecificationException do
2736
+ use_ui @ui do
2737
+ @a1.validate
2738
+ end
2739
+ end
2740
+
2741
+ assert_match(/but Cargo.lock is not part of the gem files/, e.message)
2742
+ end
2743
+ end
2744
+
2745
+ def test_validate_rust_extension_have_no_missing_cargo_toml_error
2746
+ util_setup_validate
2747
+
2748
+ Dir.chdir @tempdir do
2749
+ @a1.extensions = ["Cargo.toml"]
2750
+ @a1.files << "Cargo.toml"
2751
+ @a1.files << "Cargo.lock"
2752
+ File.write File.join(@tempdir, "Cargo.toml"), ""
2753
+ File.write File.join(@tempdir, "Cargo.lock"), ""
2754
+
2755
+ use_ui @ui do
2756
+ @a1.validate
2757
+ end
2758
+ end
2759
+ end
2760
+
2714
2761
  def test_validate_description
2715
2762
  util_setup_validate
2716
2763
 
2717
2764
  Dir.chdir @tempdir do
2718
- @a1.description = ''
2765
+ @a1.description = ""
2719
2766
 
2720
2767
  use_ui @ui do
2721
2768
  @a1.validate
@@ -2805,7 +2852,7 @@ duplicate dependency on c (>= 1.2.3, development), (~> 1.2) use:
2805
2852
  Gem::Specification.new.validate
2806
2853
  end
2807
2854
 
2808
- assert_equal 'missing value for attribute name', e.message
2855
+ assert_equal "missing value for attribute name", e.message
2809
2856
  end
2810
2857
 
2811
2858
  def test_validate_error
@@ -2815,15 +2862,15 @@ duplicate dependency on c (>= 1.2.3, development), (~> 1.2) use:
2815
2862
  end
2816
2863
  end
2817
2864
 
2818
- assert_match 'See https://guides.rubygems.org/specification-reference/ for help', @ui.error
2865
+ assert_match "See https://guides.rubygems.org/specification-reference/ for help", @ui.error
2819
2866
  end
2820
2867
 
2821
2868
  def test_validate_executables
2822
2869
  util_setup_validate
2823
2870
 
2824
- FileUtils.mkdir_p File.join(@tempdir, 'bin')
2825
- File.write File.join(@tempdir, 'bin', 'exec'), ''
2826
- FileUtils.mkdir_p File.join(@tempdir, 'exec')
2871
+ FileUtils.mkdir_p File.join(@tempdir, "bin")
2872
+ File.write File.join(@tempdir, "bin", "exec"), ""
2873
+ FileUtils.mkdir_p File.join(@tempdir, "exec")
2827
2874
 
2828
2875
  use_ui @ui do
2829
2876
  Dir.chdir @tempdir do
@@ -2833,13 +2880,13 @@ duplicate dependency on c (>= 1.2.3, development), (~> 1.2) use:
2833
2880
 
2834
2881
  assert_equal %w[exec], @a1.executables
2835
2882
 
2836
- assert_equal '', @ui.output, 'output'
2837
- assert_match "#{w}: bin/exec is missing #! line\n", @ui.error, 'error'
2883
+ assert_equal "", @ui.output, "output"
2884
+ assert_match "#{w}: bin/exec is missing #! line\n", @ui.error, "error"
2838
2885
  end
2839
2886
 
2840
2887
  def test_validate_empty_require_paths
2841
2888
  if win_platform?
2842
- pend 'test_validate_empty_require_paths skipped on MS Windows (symlink)'
2889
+ pend "test_validate_empty_require_paths skipped on MS Windows (symlink)"
2843
2890
  else
2844
2891
  util_setup_validate
2845
2892
 
@@ -2848,26 +2895,26 @@ duplicate dependency on c (>= 1.2.3, development), (~> 1.2) use:
2848
2895
  @a1.validate
2849
2896
  end
2850
2897
 
2851
- assert_equal 'specification must have at least one require_path',
2898
+ assert_equal "specification must have at least one require_path",
2852
2899
  e.message
2853
2900
  end
2854
2901
  end
2855
2902
 
2856
2903
  def test_validate_files
2857
- pend 'test_validate_files skipped on MS Windows (symlink)' if win_platform?
2904
+ pend "test_validate_files skipped on MS Windows (symlink)" if win_platform?
2858
2905
  util_setup_validate
2859
2906
 
2860
- @a1.files += ['lib', 'lib2']
2861
- @a1.extensions << 'ext/a/extconf.rb'
2907
+ @a1.files += ["lib", "lib2"]
2908
+ @a1.extensions << "ext/a/extconf.rb"
2862
2909
 
2863
2910
  Dir.chdir @tempdir do
2864
- FileUtils.ln_s 'lib/code.rb', 'lib2' unless vc_windows?
2911
+ FileUtils.ln_s "lib/code.rb", "lib2" unless vc_windows?
2865
2912
 
2866
2913
  use_ui @ui do
2867
2914
  @a1.validate
2868
2915
  end
2869
2916
 
2870
- assert_match 'WARNING: lib2 is a symlink, which is not supported on all platforms', @ui.error
2917
+ assert_match "WARNING: lib2 is a symlink, which is not supported on all platforms", @ui.error
2871
2918
  end
2872
2919
 
2873
2920
  assert_equal %w[bin/exec ext/a/extconf.rb lib/code.rb lib2 test/suite.rb].sort,
@@ -2973,19 +3020,19 @@ Please report a bug if this causes problems.
2973
3020
  @a1.validate
2974
3021
  end
2975
3022
 
2976
- assert_match "#{w}: no homepage specified\n", @ui.error, 'error'
3023
+ assert_match "#{w}: no homepage specified\n", @ui.error, "error"
2977
3024
 
2978
3025
  @ui = Gem::MockGemUi.new
2979
3026
 
2980
- @a1.homepage = ''
3027
+ @a1.homepage = ""
2981
3028
 
2982
3029
  use_ui @ui do
2983
3030
  @a1.validate
2984
3031
  end
2985
3032
 
2986
- assert_match "#{w}: no homepage specified\n", @ui.error, 'error'
3033
+ assert_match "#{w}: no homepage specified\n", @ui.error, "error"
2987
3034
 
2988
- @a1.homepage = 'over at my cool site'
3035
+ @a1.homepage = "over at my cool site"
2989
3036
 
2990
3037
  e = assert_raise Gem::InvalidSpecificationException do
2991
3038
  @a1.validate
@@ -2993,7 +3040,7 @@ Please report a bug if this causes problems.
2993
3040
 
2994
3041
  assert_equal '"over at my cool site" is not a valid HTTP URI', e.message
2995
3042
 
2996
- @a1.homepage = 'ftp://rubygems.org'
3043
+ @a1.homepage = "ftp://rubygems.org"
2997
3044
 
2998
3045
  e = assert_raise Gem::InvalidSpecificationException do
2999
3046
  @a1.validate
@@ -3001,12 +3048,11 @@ Please report a bug if this causes problems.
3001
3048
 
3002
3049
  assert_equal '"ftp://rubygems.org" is not a valid HTTP URI', e.message
3003
3050
 
3004
- @a1.homepage = 'https://rubygems.org/'
3051
+ @a1.homepage = "https://rubygems.org/"
3005
3052
  assert_equal true, @a1.validate
3006
3053
 
3007
- @a1.homepage = 'https://rubygems.org'
3054
+ @a1.homepage = "https://rubygems.org"
3008
3055
  assert_equal true, @a1.validate
3009
-
3010
3056
  end
3011
3057
  end
3012
3058
 
@@ -3043,7 +3089,7 @@ http://spdx.org/licenses or 'Nonstandard' for a nonstandard license.
3043
3089
  util_setup_validate
3044
3090
 
3045
3091
  use_ui @ui do
3046
- @a1.rubyforge_project = 'invalid-attribute'
3092
+ @a1.rubyforge_project = "invalid-attribute"
3047
3093
  @a1.validate
3048
3094
  end
3049
3095
 
@@ -3054,7 +3100,7 @@ http://spdx.org/licenses or 'Nonstandard' for a nonstandard license.
3054
3100
  util_setup_validate
3055
3101
 
3056
3102
  use_ui @ui do
3057
- @a1.licenses = ['BSD']
3103
+ @a1.licenses = ["BSD"]
3058
3104
  @a1.validate
3059
3105
  end
3060
3106
 
@@ -3068,7 +3114,7 @@ http://spdx.org/licenses or 'Nonstandard' for a nonstandard license.
3068
3114
  util_setup_validate
3069
3115
 
3070
3116
  use_ui @ui do
3071
- @a1.licenses = ['LicenseRef-LICENSE.md']
3117
+ @a1.licenses = ["LicenseRef-LICENSE.md"]
3072
3118
  @a1.validate
3073
3119
  end
3074
3120
 
@@ -3079,7 +3125,7 @@ http://spdx.org/licenses or 'Nonstandard' for a nonstandard license.
3079
3125
  util_setup_validate
3080
3126
 
3081
3127
  use_ui @ui do
3082
- @a1.licenses = ['GPL-2.0+']
3128
+ @a1.licenses = ["GPL-2.0+"]
3083
3129
  @a1.validate
3084
3130
  end
3085
3131
 
@@ -3090,7 +3136,7 @@ http://spdx.org/licenses or 'Nonstandard' for a nonstandard license.
3090
3136
  util_setup_validate
3091
3137
 
3092
3138
  use_ui @ui do
3093
- @a1.licenses = ['GPL-2.0-or-later']
3139
+ @a1.licenses = ["GPL-2.0-or-later"]
3094
3140
  @a1.validate
3095
3141
  end
3096
3142
 
@@ -3101,7 +3147,7 @@ http://spdx.org/licenses or 'Nonstandard' for a nonstandard license.
3101
3147
  util_setup_validate
3102
3148
 
3103
3149
  use_ui @ui do
3104
- @a1.licenses = ['GPL-2.0+ WITH Autoconf-exception-2.0']
3150
+ @a1.licenses = ["GPL-2.0+ WITH Autoconf-exception-2.0"]
3105
3151
  @a1.validate
3106
3152
  end
3107
3153
 
@@ -3112,7 +3158,7 @@ http://spdx.org/licenses or 'Nonstandard' for a nonstandard license.
3112
3158
  util_setup_validate
3113
3159
 
3114
3160
  use_ui @ui do
3115
- @a1.licenses = ['GPL-2.0+ FOO', 'GPL-2.0 FOO']
3161
+ @a1.licenses = ["GPL-2.0+ FOO", "GPL-2.0 FOO"]
3116
3162
  @a1.validate
3117
3163
  end
3118
3164
 
@@ -3130,7 +3176,7 @@ http://spdx.org/licenses or 'Nonstandard' for a nonstandard license.
3130
3176
  util_setup_validate
3131
3177
 
3132
3178
  use_ui @ui do
3133
- @a1.licenses = ['GPL-2.0+ WITH Autocofn-exception-2.0']
3179
+ @a1.licenses = ["GPL-2.0+ WITH Autocofn-exception-2.0"]
3134
3180
  @a1.validate
3135
3181
  end
3136
3182
 
@@ -3144,7 +3190,7 @@ http://spdx.org/licenses or 'Nonstandard' for a nonstandard license.
3144
3190
  util_setup_validate
3145
3191
 
3146
3192
  use_ui @ui do
3147
- @a1.licenses = ['ruby']
3193
+ @a1.licenses = ["ruby"]
3148
3194
  @a1.validate
3149
3195
  end
3150
3196
 
@@ -3254,13 +3300,13 @@ Did you mean 'Ruby'?
3254
3300
  end
3255
3301
 
3256
3302
  def test_validate_permissions
3257
- pend 'chmod not supported' if Gem.win_platform?
3303
+ pend "chmod not supported" if Gem.win_platform?
3258
3304
 
3259
3305
  util_setup_validate
3260
3306
 
3261
3307
  Dir.chdir @tempdir do
3262
- File.chmod 0640, File.join('lib', 'code.rb')
3263
- File.chmod 0640, File.join('bin', 'exec')
3308
+ File.chmod 0640, File.join("lib", "code.rb")
3309
+ File.chmod 0640, File.join("bin", "exec")
3264
3310
 
3265
3311
  use_ui @ui do
3266
3312
  @a1.validate
@@ -3273,12 +3319,12 @@ Did you mean 'Ruby'?
3273
3319
  end
3274
3320
 
3275
3321
  def test_validate_permissions_of_missing_file_non_packaging
3276
- pend 'chmod not supported' if Gem.win_platform?
3322
+ pend "chmod not supported" if Gem.win_platform?
3277
3323
 
3278
3324
  util_setup_validate
3279
3325
 
3280
3326
  Dir.chdir @tempdir do
3281
- File.delete File.join('lib', 'code.rb')
3327
+ File.delete File.join("lib", "code.rb")
3282
3328
 
3283
3329
  use_ui @ui do
3284
3330
  assert @a1.validate(false)
@@ -3290,13 +3336,13 @@ Did you mean 'Ruby'?
3290
3336
  util_setup_validate
3291
3337
 
3292
3338
  Dir.chdir @tempdir do
3293
- @a1.platform = 'mswin32'
3339
+ @a1.platform = "mswin32"
3294
3340
  assert @a1.validate
3295
3341
 
3296
- @a1.platform = 'i586-linux'
3342
+ @a1.platform = "i586-linux"
3297
3343
  assert @a1.validate
3298
3344
 
3299
- @a1.platform = 'powerpc-darwin'
3345
+ @a1.platform = "powerpc-darwin"
3300
3346
  assert @a1.validate
3301
3347
  end
3302
3348
  end
@@ -3317,7 +3363,7 @@ Did you mean 'Ruby'?
3317
3363
  util_setup_validate
3318
3364
 
3319
3365
  Dir.chdir @tempdir do
3320
- @a1.specification_version = '1.0'
3366
+ @a1.specification_version = "1.0"
3321
3367
 
3322
3368
  e = assert_raise Gem::InvalidSpecificationException do
3323
3369
  use_ui @ui do
@@ -3325,7 +3371,7 @@ Did you mean 'Ruby'?
3325
3371
  end
3326
3372
  end
3327
3373
 
3328
- err = 'specification_version must be an Integer (did you mean version?)'
3374
+ err = "specification_version must be an Integer (did you mean version?)"
3329
3375
  assert_equal err, e.message
3330
3376
  end
3331
3377
  end
@@ -3334,13 +3380,13 @@ Did you mean 'Ruby'?
3334
3380
  util_setup_validate
3335
3381
 
3336
3382
  Dir.chdir @tempdir do
3337
- @a1.summary = ''
3383
+ @a1.summary = ""
3338
3384
 
3339
3385
  use_ui @ui do
3340
3386
  @a1.validate
3341
3387
  end
3342
3388
 
3343
- assert_match "#{w}: no summary specified\n", @ui.error, 'error'
3389
+ assert_match "#{w}: no summary specified\n", @ui.error, "error"
3344
3390
 
3345
3391
  @a1.summary = "#{f} (describe your package)"
3346
3392
 
@@ -3368,11 +3414,11 @@ Did you mean 'Ruby'?
3368
3414
  @a1.validate
3369
3415
  end
3370
3416
 
3371
- assert_match 'See https://guides.rubygems.org/specification-reference/ for help', @ui.error
3417
+ assert_match "See https://guides.rubygems.org/specification-reference/ for help", @ui.error
3372
3418
  end
3373
3419
 
3374
3420
  def test_version
3375
- assert_equal Gem::Version.new('1'), @a1.version
3421
+ assert_equal Gem::Version.new("1"), @a1.version
3376
3422
  end
3377
3423
 
3378
3424
  def test_version_change_reset_full_name
@@ -3418,22 +3464,22 @@ Did you mean 'Ruby'?
3418
3464
 
3419
3465
  def test_latest_specs
3420
3466
  spec_fetcher do |fetcher|
3421
- fetcher.spec 'a', 1 do |s|
3422
- s.platform = Gem::Platform.new 'x86-my_platform1'
3467
+ fetcher.spec "a", 1 do |s|
3468
+ s.platform = Gem::Platform.new "x86-my_platform1"
3423
3469
  end
3424
3470
 
3425
- fetcher.spec 'a', 2
3471
+ fetcher.spec "a", 2
3426
3472
 
3427
- fetcher.spec 'a', 2 do |s|
3428
- s.platform = Gem::Platform.new 'x86-my_platform1'
3473
+ fetcher.spec "a", 2 do |s|
3474
+ s.platform = Gem::Platform.new "x86-my_platform1"
3429
3475
  end
3430
3476
 
3431
- fetcher.spec 'a', 2 do |s|
3432
- s.platform = Gem::Platform.new 'x86-other_platform1'
3477
+ fetcher.spec "a", 2 do |s|
3478
+ s.platform = Gem::Platform.new "x86-other_platform1"
3433
3479
  end
3434
3480
 
3435
- fetcher.spec 'a', 3 do |s|
3436
- s.platform = Gem::Platform.new 'x86-other_platform1'
3481
+ fetcher.spec "a", 3 do |s|
3482
+ s.platform = Gem::Platform.new "x86-other_platform1"
3437
3483
  end
3438
3484
  end
3439
3485
 
@@ -3450,13 +3496,13 @@ Did you mean 'Ruby'?
3450
3496
  util_setup_validate
3451
3497
 
3452
3498
  Dir.chdir @tempdir do
3453
- @m1 = quick_gem 'm', '1' do |s|
3499
+ @m1 = quick_gem "m", "1" do |s|
3454
3500
  s.files = %w[lib/code.rb]
3455
3501
  s.metadata = {
3456
- "one" => "two",
3457
- "home" => "three",
3502
+ "one" => "two",
3503
+ "home" => "three",
3458
3504
  "homepage_uri" => "https://example.com/user/repo",
3459
- "funding_uri" => "https://example.com/donate",
3505
+ "funding_uri" => "https://example.com/donate",
3460
3506
  }
3461
3507
  end
3462
3508
 
@@ -3470,7 +3516,7 @@ Did you mean 'Ruby'?
3470
3516
  util_setup_validate
3471
3517
 
3472
3518
  Dir.chdir @tempdir do
3473
- @m2 = quick_gem 'm', '2' do |s|
3519
+ @m2 = quick_gem "m", "2" do |s|
3474
3520
  s.files = %w[lib/code.rb]
3475
3521
  s.metadata = { 1 => "fail" }
3476
3522
  end
@@ -3487,7 +3533,7 @@ Did you mean 'Ruby'?
3487
3533
  util_setup_validate
3488
3534
 
3489
3535
  Dir.chdir @tempdir do
3490
- @m2 = quick_gem 'm', '2' do |s|
3536
+ @m2 = quick_gem "m", "2" do |s|
3491
3537
  s.files = %w[lib/code.rb]
3492
3538
  s.metadata = { ("x" * 129) => "fail" }
3493
3539
  end
@@ -3504,9 +3550,9 @@ Did you mean 'Ruby'?
3504
3550
  util_setup_validate
3505
3551
 
3506
3552
  Dir.chdir @tempdir do
3507
- @m2 = quick_gem 'm', '2' do |s|
3553
+ @m2 = quick_gem "m", "2" do |s|
3508
3554
  s.files = %w[lib/code.rb]
3509
- s.metadata = { 'fail' => [] }
3555
+ s.metadata = { "fail" => [] }
3510
3556
  end
3511
3557
 
3512
3558
  e = assert_raise Gem::InvalidSpecificationException do
@@ -3521,9 +3567,9 @@ Did you mean 'Ruby'?
3521
3567
  util_setup_validate
3522
3568
 
3523
3569
  Dir.chdir @tempdir do
3524
- @m2 = quick_gem 'm', '2' do |s|
3570
+ @m2 = quick_gem "m", "2" do |s|
3525
3571
  s.files = %w[lib/code.rb]
3526
- s.metadata = { 'fail' => ("x" * 1025) }
3572
+ s.metadata = { "fail" => ("x" * 1025) }
3527
3573
  end
3528
3574
 
3529
3575
  e = assert_raise Gem::InvalidSpecificationException do
@@ -3538,9 +3584,9 @@ Did you mean 'Ruby'?
3538
3584
  util_setup_validate
3539
3585
 
3540
3586
  Dir.chdir @tempdir do
3541
- @m2 = quick_gem 'm', '2' do |s|
3587
+ @m2 = quick_gem "m", "2" do |s|
3542
3588
  s.files = %w[lib/code.rb]
3543
- s.metadata = { 'homepage_uri' => 'http:/example.com' }
3589
+ s.metadata = { "homepage_uri" => "http:/example.com" }
3544
3590
  end
3545
3591
 
3546
3592
  e = assert_raise Gem::InvalidSpecificationException do
@@ -3552,9 +3598,9 @@ Did you mean 'Ruby'?
3552
3598
  end
3553
3599
 
3554
3600
  def test_metadata_specs
3555
- @m1 = quick_gem 'm', '1' do |s|
3601
+ @m1 = quick_gem "m", "1" do |s|
3556
3602
  s.files = %w[lib/code.rb]
3557
- s.metadata = { 'one' => "two", 'two' => "three" }
3603
+ s.metadata = { "one" => "two", "two" => "three" }
3558
3604
  end
3559
3605
 
3560
3606
  valid_ruby_spec = <<-EOF
@@ -3591,7 +3637,7 @@ end
3591
3637
  extconf_rb = File.join @ext.gem_dir, @ext.extensions.first
3592
3638
  FileUtils.mkdir_p File.dirname extconf_rb
3593
3639
 
3594
- File.open extconf_rb, 'w' do |f|
3640
+ File.open extconf_rb, "w" do |f|
3595
3641
  f.write <<-'RUBY'
3596
3642
  File.open 'Makefile', 'w' do |f|
3597
3643
  f.puts "clean:\n\techo clean"
@@ -3607,8 +3653,8 @@ end
3607
3653
  end
3608
3654
 
3609
3655
  def test_missing_extensions_eh_default_gem
3610
- spec = new_default_spec 'default', 1
3611
- spec.extensions << 'extconf.rb'
3656
+ spec = new_default_spec "default", 1
3657
+ spec.extensions << "extconf.rb"
3612
3658
 
3613
3659
  refute spec.missing_extensions?
3614
3660
  end
@@ -3618,7 +3664,7 @@ end
3618
3664
  end
3619
3665
 
3620
3666
  def test_find_all_by_full_name
3621
- pl = Gem::Platform.new 'i386-linux'
3667
+ pl = Gem::Platform.new "i386-linux"
3622
3668
 
3623
3669
  a1 = util_spec "a", "1"
3624
3670
  a1_pre = util_spec "a", "1.0.0.pre.1"
@@ -3669,6 +3715,8 @@ end
3669
3715
 
3670
3716
  install_specs b
3671
3717
 
3718
+ Gem::Specification.reset
3719
+
3672
3720
  assert Gem::Specification.find_by_name "b"
3673
3721
 
3674
3722
  assert_raise Gem::MissingSpecVersionError do
@@ -3678,14 +3726,31 @@ end
3678
3726
  assert Gem::Specification.find_by_name "b", ">1"
3679
3727
  end
3680
3728
 
3729
+ def test_find_by_full_name
3730
+ pl = Gem::Platform.new "x86_64-linux"
3731
+
3732
+ a = util_spec "a", "1"
3733
+ install_specs a
3734
+
3735
+ a_pl = util_spec("a", "1") {|s| s.platform = pl }
3736
+ install_specs a_pl
3737
+
3738
+ assert_equal a, Gem::Specification.find_by_full_name("a-1")
3739
+ assert_equal a_pl, Gem::Specification.find_by_full_name("a-1-x86_64-linux")
3740
+
3741
+ assert_nil Gem::Specification.find_by_full_name("a-2")
3742
+ assert_nil Gem::Specification.find_by_full_name("b-1")
3743
+ assert_nil Gem::Specification.find_by_full_name("a-1-arm64-linux")
3744
+ end
3745
+
3681
3746
  def test_find_by_path
3682
3747
  a = util_spec "foo", "1", nil, "lib/foo.rb"
3683
3748
 
3684
3749
  install_specs a
3685
3750
 
3686
- assert_equal a, Gem::Specification.find_by_path('foo')
3751
+ assert_equal a, Gem::Specification.find_by_path("foo")
3687
3752
  a.activate
3688
- assert_equal a, Gem::Specification.find_by_path('foo')
3753
+ assert_equal a, Gem::Specification.find_by_path("foo")
3689
3754
  end
3690
3755
 
3691
3756
  def test_find_inactive_by_path
@@ -3693,9 +3758,9 @@ end
3693
3758
 
3694
3759
  install_specs a
3695
3760
 
3696
- assert_equal a, Gem::Specification.find_inactive_by_path('foo')
3761
+ assert_equal a, Gem::Specification.find_inactive_by_path("foo")
3697
3762
  a.activate
3698
- assert_nil Gem::Specification.find_inactive_by_path('foo')
3763
+ assert_nil Gem::Specification.find_inactive_by_path("foo")
3699
3764
  end
3700
3765
 
3701
3766
  def test_load_default_gem