rubygems-update 2.6.0 → 3.4.22

Sign up to get free protection for your applications and to get access to all the features.
Files changed (804) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +5802 -0
  3. data/CODE_OF_CONDUCT.md +76 -35
  4. data/CONTRIBUTING.md +231 -0
  5. data/MAINTAINERS.txt +8 -0
  6. data/Manifest.txt +441 -42
  7. data/POLICIES.md +135 -0
  8. data/README.md +114 -0
  9. data/UPGRADING.md +15 -0
  10. data/bundler/CHANGELOG.md +4666 -0
  11. data/bundler/LICENSE.md +22 -0
  12. data/bundler/README.md +58 -0
  13. data/bundler/UPGRADING.md +222 -0
  14. data/bundler/bundler.gemspec +44 -0
  15. data/bundler/exe/bundle +38 -0
  16. data/bundler/exe/bundler +4 -0
  17. data/bundler/lib/bundler/.document +1 -0
  18. data/bundler/lib/bundler/build_metadata.rb +45 -0
  19. data/bundler/lib/bundler/capistrano.rb +22 -0
  20. data/bundler/lib/bundler/cli/add.rb +47 -0
  21. data/bundler/lib/bundler/cli/binstubs.rb +57 -0
  22. data/bundler/lib/bundler/cli/cache.rb +43 -0
  23. data/bundler/lib/bundler/cli/check.rb +40 -0
  24. data/bundler/lib/bundler/cli/clean.rb +25 -0
  25. data/bundler/lib/bundler/cli/common.rb +130 -0
  26. data/bundler/lib/bundler/cli/config.rb +203 -0
  27. data/bundler/lib/bundler/cli/console.rb +43 -0
  28. data/bundler/lib/bundler/cli/doctor.rb +157 -0
  29. data/bundler/lib/bundler/cli/exec.rb +88 -0
  30. data/bundler/lib/bundler/cli/fund.rb +36 -0
  31. data/bundler/lib/bundler/cli/gem.rb +466 -0
  32. data/bundler/lib/bundler/cli/info.rb +94 -0
  33. data/bundler/lib/bundler/cli/init.rb +51 -0
  34. data/bundler/lib/bundler/cli/inject.rb +60 -0
  35. data/bundler/lib/bundler/cli/install.rb +189 -0
  36. data/bundler/lib/bundler/cli/issue.rb +41 -0
  37. data/bundler/lib/bundler/cli/list.rb +66 -0
  38. data/bundler/lib/bundler/cli/lock.rb +73 -0
  39. data/bundler/lib/bundler/cli/open.rb +29 -0
  40. data/bundler/lib/bundler/cli/outdated.rb +297 -0
  41. data/bundler/lib/bundler/cli/platform.rb +48 -0
  42. data/bundler/lib/bundler/cli/plugin.rb +41 -0
  43. data/bundler/lib/bundler/cli/pristine.rb +52 -0
  44. data/bundler/lib/bundler/cli/remove.rb +17 -0
  45. data/bundler/lib/bundler/cli/show.rb +75 -0
  46. data/bundler/lib/bundler/cli/update.rb +123 -0
  47. data/bundler/lib/bundler/cli/viz.rb +31 -0
  48. data/bundler/lib/bundler/cli.rb +894 -0
  49. data/bundler/lib/bundler/compact_index_client/cache.rb +101 -0
  50. data/bundler/lib/bundler/compact_index_client/gem_parser.rb +28 -0
  51. data/bundler/lib/bundler/compact_index_client/updater.rb +117 -0
  52. data/bundler/lib/bundler/compact_index_client.rb +119 -0
  53. data/bundler/lib/bundler/constants.rb +7 -0
  54. data/bundler/lib/bundler/current_ruby.rb +108 -0
  55. data/bundler/lib/bundler/definition.rb +978 -0
  56. data/bundler/lib/bundler/dependency.rb +97 -0
  57. data/bundler/lib/bundler/deployment.rb +69 -0
  58. data/bundler/lib/bundler/deprecate.rb +44 -0
  59. data/bundler/lib/bundler/digest.rb +71 -0
  60. data/bundler/lib/bundler/dsl.rb +583 -0
  61. data/bundler/lib/bundler/endpoint_specification.rb +143 -0
  62. data/bundler/lib/bundler/env.rb +150 -0
  63. data/bundler/lib/bundler/environment_preserver.rb +86 -0
  64. data/bundler/lib/bundler/errors.rb +190 -0
  65. data/bundler/lib/bundler/feature_flag.rb +53 -0
  66. data/bundler/lib/bundler/fetcher/base.rb +50 -0
  67. data/bundler/lib/bundler/fetcher/compact_index.rb +129 -0
  68. data/bundler/lib/bundler/fetcher/dependency.rb +78 -0
  69. data/bundler/lib/bundler/fetcher/downloader.rb +89 -0
  70. data/bundler/lib/bundler/fetcher/index.rb +25 -0
  71. data/bundler/lib/bundler/fetcher.rb +321 -0
  72. data/bundler/lib/bundler/force_platform.rb +18 -0
  73. data/bundler/lib/bundler/friendly_errors.rb +126 -0
  74. data/bundler/lib/bundler/gem_helper.rb +237 -0
  75. data/bundler/lib/bundler/gem_helpers.rb +124 -0
  76. data/bundler/lib/bundler/gem_tasks.rb +7 -0
  77. data/bundler/lib/bundler/gem_version_promoter.rb +145 -0
  78. data/bundler/lib/bundler/graph.rb +152 -0
  79. data/bundler/lib/bundler/index.rb +206 -0
  80. data/bundler/lib/bundler/injector.rb +287 -0
  81. data/bundler/lib/bundler/inline.rb +73 -0
  82. data/bundler/lib/bundler/installer/gem_installer.rb +84 -0
  83. data/bundler/lib/bundler/installer/parallel_installer.rb +194 -0
  84. data/bundler/lib/bundler/installer/standalone.rb +117 -0
  85. data/bundler/lib/bundler/installer.rb +267 -0
  86. data/bundler/lib/bundler/lazy_specification.rb +163 -0
  87. data/bundler/lib/bundler/lockfile_generator.rb +95 -0
  88. data/bundler/lib/bundler/lockfile_parser.rb +218 -0
  89. data/bundler/lib/bundler/man/.document +1 -0
  90. data/bundler/lib/bundler/man/bundle-add.1 +82 -0
  91. data/bundler/lib/bundler/man/bundle-add.1.ronn +58 -0
  92. data/bundler/lib/bundler/man/bundle-binstubs.1 +42 -0
  93. data/bundler/lib/bundler/man/bundle-binstubs.1.ronn +41 -0
  94. data/bundler/lib/bundler/man/bundle-cache.1 +61 -0
  95. data/bundler/lib/bundler/man/bundle-cache.1.ronn +79 -0
  96. data/bundler/lib/bundler/man/bundle-check.1 +31 -0
  97. data/bundler/lib/bundler/man/bundle-check.1.ronn +26 -0
  98. data/bundler/lib/bundler/man/bundle-clean.1 +24 -0
  99. data/bundler/lib/bundler/man/bundle-clean.1.ronn +18 -0
  100. data/bundler/lib/bundler/man/bundle-config.1 +512 -0
  101. data/bundler/lib/bundler/man/bundle-config.1.ronn +405 -0
  102. data/bundler/lib/bundler/man/bundle-console.1 +53 -0
  103. data/bundler/lib/bundler/man/bundle-console.1.ronn +44 -0
  104. data/bundler/lib/bundler/man/bundle-doctor.1 +44 -0
  105. data/bundler/lib/bundler/man/bundle-doctor.1.ronn +33 -0
  106. data/bundler/lib/bundler/man/bundle-exec.1 +165 -0
  107. data/bundler/lib/bundler/man/bundle-exec.1.ronn +151 -0
  108. data/bundler/lib/bundler/man/bundle-gem.1 +105 -0
  109. data/bundler/lib/bundler/man/bundle-gem.1.ronn +117 -0
  110. data/bundler/lib/bundler/man/bundle-help.1 +13 -0
  111. data/bundler/lib/bundler/man/bundle-help.1.ronn +12 -0
  112. data/bundler/lib/bundler/man/bundle-info.1 +20 -0
  113. data/bundler/lib/bundler/man/bundle-info.1.ronn +17 -0
  114. data/bundler/lib/bundler/man/bundle-init.1 +29 -0
  115. data/bundler/lib/bundler/man/bundle-init.1.ronn +31 -0
  116. data/bundler/lib/bundler/man/bundle-inject.1 +36 -0
  117. data/bundler/lib/bundler/man/bundle-inject.1.ronn +24 -0
  118. data/bundler/lib/bundler/man/bundle-install.1 +313 -0
  119. data/bundler/lib/bundler/man/bundle-install.1.ronn +382 -0
  120. data/bundler/lib/bundler/man/bundle-list.1 +50 -0
  121. data/bundler/lib/bundler/man/bundle-list.1.ronn +33 -0
  122. data/bundler/lib/bundler/man/bundle-lock.1 +84 -0
  123. data/bundler/lib/bundler/man/bundle-lock.1.ronn +94 -0
  124. data/bundler/lib/bundler/man/bundle-open.1 +52 -0
  125. data/bundler/lib/bundler/man/bundle-open.1.ronn +27 -0
  126. data/bundler/lib/bundler/man/bundle-outdated.1 +152 -0
  127. data/bundler/lib/bundler/man/bundle-outdated.1.ronn +105 -0
  128. data/bundler/lib/bundler/man/bundle-platform.1 +71 -0
  129. data/bundler/lib/bundler/man/bundle-platform.1.ronn +49 -0
  130. data/bundler/lib/bundler/man/bundle-plugin.1 +81 -0
  131. data/bundler/lib/bundler/man/bundle-plugin.1.ronn +59 -0
  132. data/bundler/lib/bundler/man/bundle-pristine.1 +34 -0
  133. data/bundler/lib/bundler/man/bundle-pristine.1.ronn +34 -0
  134. data/bundler/lib/bundler/man/bundle-remove.1 +31 -0
  135. data/bundler/lib/bundler/man/bundle-remove.1.ronn +23 -0
  136. data/bundler/lib/bundler/man/bundle-show.1 +23 -0
  137. data/bundler/lib/bundler/man/bundle-show.1.ronn +21 -0
  138. data/bundler/lib/bundler/man/bundle-update.1 +394 -0
  139. data/bundler/lib/bundler/man/bundle-update.1.ronn +351 -0
  140. data/bundler/lib/bundler/man/bundle-version.1 +35 -0
  141. data/bundler/lib/bundler/man/bundle-version.1.ronn +24 -0
  142. data/bundler/lib/bundler/man/bundle-viz.1 +42 -0
  143. data/bundler/lib/bundler/man/bundle-viz.1.ronn +32 -0
  144. data/bundler/lib/bundler/man/bundle.1 +141 -0
  145. data/bundler/lib/bundler/man/bundle.1.ronn +116 -0
  146. data/bundler/lib/bundler/man/gemfile.5 +747 -0
  147. data/bundler/lib/bundler/man/gemfile.5.ronn +548 -0
  148. data/bundler/lib/bundler/man/index.txt +29 -0
  149. data/bundler/lib/bundler/match_metadata.rb +13 -0
  150. data/bundler/lib/bundler/match_platform.rb +23 -0
  151. data/bundler/lib/bundler/match_remote_metadata.rb +29 -0
  152. data/bundler/lib/bundler/mirror.rb +221 -0
  153. data/bundler/lib/bundler/plugin/api/source.rb +320 -0
  154. data/bundler/lib/bundler/plugin/api.rb +81 -0
  155. data/bundler/lib/bundler/plugin/dsl.rb +53 -0
  156. data/bundler/lib/bundler/plugin/events.rb +61 -0
  157. data/bundler/lib/bundler/plugin/index.rb +193 -0
  158. data/bundler/lib/bundler/plugin/installer/git.rb +34 -0
  159. data/bundler/lib/bundler/plugin/installer/rubygems.rb +19 -0
  160. data/bundler/lib/bundler/plugin/installer.rb +112 -0
  161. data/bundler/lib/bundler/plugin/source_list.rb +31 -0
  162. data/bundler/lib/bundler/plugin.rb +359 -0
  163. data/bundler/lib/bundler/process_lock.rb +24 -0
  164. data/bundler/lib/bundler/remote_specification.rb +117 -0
  165. data/bundler/lib/bundler/resolver/base.rb +107 -0
  166. data/bundler/lib/bundler/resolver/candidate.rb +94 -0
  167. data/bundler/lib/bundler/resolver/incompatibility.rb +15 -0
  168. data/bundler/lib/bundler/resolver/package.rb +77 -0
  169. data/bundler/lib/bundler/resolver/root.rb +25 -0
  170. data/bundler/lib/bundler/resolver/spec_group.rb +82 -0
  171. data/bundler/lib/bundler/resolver.rb +462 -0
  172. data/bundler/lib/bundler/retry.rb +66 -0
  173. data/bundler/lib/bundler/ruby_dsl.rb +45 -0
  174. data/bundler/lib/bundler/ruby_version.rb +131 -0
  175. data/bundler/lib/bundler/rubygems_ext.rb +354 -0
  176. data/bundler/lib/bundler/rubygems_gem_installer.rb +187 -0
  177. data/bundler/lib/bundler/rubygems_integration.rb +562 -0
  178. data/bundler/lib/bundler/runtime.rb +307 -0
  179. data/bundler/lib/bundler/safe_marshal.rb +31 -0
  180. data/bundler/lib/bundler/self_manager.rb +170 -0
  181. data/bundler/lib/bundler/settings/validator.rb +102 -0
  182. data/bundler/lib/bundler/settings.rb +568 -0
  183. data/bundler/lib/bundler/setup.rb +30 -0
  184. data/bundler/lib/bundler/shared_helpers.rb +358 -0
  185. data/bundler/lib/bundler/similarity_detector.rb +63 -0
  186. data/bundler/lib/bundler/source/gemspec.rb +18 -0
  187. data/bundler/lib/bundler/source/git/git_proxy.rb +455 -0
  188. data/bundler/lib/bundler/source/git.rb +379 -0
  189. data/bundler/lib/bundler/source/metadata.rb +62 -0
  190. data/bundler/lib/bundler/source/path/installer.rb +53 -0
  191. data/bundler/lib/bundler/source/path.rb +260 -0
  192. data/bundler/lib/bundler/source/rubygems/remote.rb +68 -0
  193. data/bundler/lib/bundler/source/rubygems.rb +509 -0
  194. data/bundler/lib/bundler/source/rubygems_aggregate.rb +68 -0
  195. data/bundler/lib/bundler/source.rb +114 -0
  196. data/bundler/lib/bundler/source_list.rb +227 -0
  197. data/bundler/lib/bundler/source_map.rb +71 -0
  198. data/bundler/lib/bundler/spec_set.rb +219 -0
  199. data/bundler/lib/bundler/stub_specification.rb +118 -0
  200. data/bundler/lib/bundler/templates/.document +1 -0
  201. data/bundler/lib/bundler/templates/Executable +27 -0
  202. data/bundler/lib/bundler/templates/Executable.bundler +109 -0
  203. data/bundler/lib/bundler/templates/Executable.standalone +14 -0
  204. data/bundler/lib/bundler/templates/Gemfile +5 -0
  205. data/bundler/lib/bundler/templates/newgem/CHANGELOG.md.tt +5 -0
  206. data/bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +84 -0
  207. data/bundler/lib/bundler/templates/newgem/Cargo.toml.tt +7 -0
  208. data/bundler/lib/bundler/templates/newgem/Gemfile.tt +26 -0
  209. data/bundler/lib/bundler/templates/newgem/LICENSE.txt.tt +21 -0
  210. data/bundler/lib/bundler/templates/newgem/README.md.tt +45 -0
  211. data/bundler/lib/bundler/templates/newgem/Rakefile.tt +71 -0
  212. data/bundler/lib/bundler/templates/newgem/bin/console.tt +11 -0
  213. data/bundler/lib/bundler/templates/newgem/bin/setup.tt +8 -0
  214. data/bundler/lib/bundler/templates/newgem/circleci/config.yml.tt +25 -0
  215. data/bundler/lib/bundler/templates/newgem/exe/newgem.tt +3 -0
  216. data/bundler/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +15 -0
  217. data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf-c.rb.tt +10 -0
  218. data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt +6 -0
  219. data/bundler/lib/bundler/templates/newgem/ext/newgem/newgem.c.tt +9 -0
  220. data/bundler/lib/bundler/templates/newgem/ext/newgem/newgem.h.tt +6 -0
  221. data/bundler/lib/bundler/templates/newgem/ext/newgem/src/lib.rs.tt +12 -0
  222. data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +37 -0
  223. data/bundler/lib/bundler/templates/newgem/gitignore.tt +23 -0
  224. data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +18 -0
  225. data/bundler/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +9 -0
  226. data/bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt +15 -0
  227. data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +51 -0
  228. data/bundler/lib/bundler/templates/newgem/rspec.tt +3 -0
  229. data/bundler/lib/bundler/templates/newgem/rubocop.yml.tt +13 -0
  230. data/bundler/lib/bundler/templates/newgem/sig/newgem.rbs.tt +8 -0
  231. data/bundler/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +11 -0
  232. data/bundler/lib/bundler/templates/newgem/spec/spec_helper.rb.tt +15 -0
  233. data/bundler/lib/bundler/templates/newgem/standard.yml.tt +3 -0
  234. data/bundler/lib/bundler/templates/newgem/test/minitest/test_helper.rb.tt +6 -0
  235. data/bundler/lib/bundler/templates/newgem/test/minitest/test_newgem.rb.tt +13 -0
  236. data/bundler/lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt +15 -0
  237. data/bundler/lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt +6 -0
  238. data/bundler/lib/bundler/ui/rg_proxy.rb +19 -0
  239. data/bundler/lib/bundler/ui/shell.rb +165 -0
  240. data/bundler/lib/bundler/ui/silent.rb +85 -0
  241. data/bundler/lib/bundler/ui.rb +9 -0
  242. data/bundler/lib/bundler/uri_credentials_filter.rb +43 -0
  243. data/bundler/lib/bundler/uri_normalizer.rb +23 -0
  244. data/bundler/lib/bundler/vendor/.document +1 -0
  245. data/bundler/lib/bundler/vendor/connection_pool/LICENSE +20 -0
  246. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +174 -0
  247. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +3 -0
  248. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +56 -0
  249. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +128 -0
  250. data/bundler/lib/bundler/vendor/fileutils/LICENSE.txt +22 -0
  251. data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +2706 -0
  252. data/bundler/lib/bundler/vendor/net-http-persistent/README.rdoc +82 -0
  253. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +41 -0
  254. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +65 -0
  255. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +79 -0
  256. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +1073 -0
  257. data/bundler/lib/bundler/vendor/pub_grub/LICENSE.txt +21 -0
  258. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/assignment.rb +20 -0
  259. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb +189 -0
  260. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/failure_writer.rb +182 -0
  261. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb +150 -0
  262. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/package.rb +43 -0
  263. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/partial_solution.rb +121 -0
  264. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb +45 -0
  265. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/solve_failure.rb +19 -0
  266. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb +60 -0
  267. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/term.rb +105 -0
  268. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb +3 -0
  269. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb +129 -0
  270. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb +411 -0
  271. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb +248 -0
  272. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_union.rb +178 -0
  273. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub.rb +31 -0
  274. data/bundler/lib/bundler/vendor/thor/LICENSE.md +20 -0
  275. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_file.rb +105 -0
  276. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +61 -0
  277. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/directory.rb +108 -0
  278. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/empty_directory.rb +143 -0
  279. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +373 -0
  280. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +130 -0
  281. data/bundler/lib/bundler/vendor/thor/lib/thor/actions.rb +340 -0
  282. data/bundler/lib/bundler/vendor/thor/lib/thor/base.rb +825 -0
  283. data/bundler/lib/bundler/vendor/thor/lib/thor/command.rb +151 -0
  284. data/bundler/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +107 -0
  285. data/bundler/lib/bundler/vendor/thor/lib/thor/error.rb +106 -0
  286. data/bundler/lib/bundler/vendor/thor/lib/thor/group.rb +281 -0
  287. data/bundler/lib/bundler/vendor/thor/lib/thor/invocation.rb +178 -0
  288. data/bundler/lib/bundler/vendor/thor/lib/thor/line_editor/basic.rb +37 -0
  289. data/bundler/lib/bundler/vendor/thor/lib/thor/line_editor/readline.rb +88 -0
  290. data/bundler/lib/bundler/vendor/thor/lib/thor/line_editor.rb +17 -0
  291. data/bundler/lib/bundler/vendor/thor/lib/thor/nested_context.rb +29 -0
  292. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/argument.rb +89 -0
  293. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb +195 -0
  294. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/option.rb +178 -0
  295. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/options.rb +293 -0
  296. data/bundler/lib/bundler/vendor/thor/lib/thor/parser.rb +4 -0
  297. data/bundler/lib/bundler/vendor/thor/lib/thor/rake_compat.rb +72 -0
  298. data/bundler/lib/bundler/vendor/thor/lib/thor/runner.rb +335 -0
  299. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +388 -0
  300. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/color.rb +115 -0
  301. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/column_printer.rb +29 -0
  302. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/html.rb +84 -0
  303. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/lcs_diff.rb +49 -0
  304. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/table_printer.rb +134 -0
  305. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/terminal.rb +42 -0
  306. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/wrapped_printer.rb +38 -0
  307. data/bundler/lib/bundler/vendor/thor/lib/thor/shell.rb +81 -0
  308. data/bundler/lib/bundler/vendor/thor/lib/thor/util.rb +285 -0
  309. data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +3 -0
  310. data/bundler/lib/bundler/vendor/thor/lib/thor.rb +663 -0
  311. data/bundler/lib/bundler/vendor/tsort/LICENSE.txt +22 -0
  312. data/bundler/lib/bundler/vendor/tsort/lib/tsort.rb +452 -0
  313. data/bundler/lib/bundler/vendor/uri/LICENSE.txt +22 -0
  314. data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +729 -0
  315. data/bundler/lib/bundler/vendor/uri/lib/uri/file.rb +100 -0
  316. data/bundler/lib/bundler/vendor/uri/lib/uri/ftp.rb +267 -0
  317. data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +1587 -0
  318. data/bundler/lib/bundler/vendor/uri/lib/uri/http.rb +125 -0
  319. data/bundler/lib/bundler/vendor/uri/lib/uri/https.rb +23 -0
  320. data/bundler/lib/bundler/vendor/uri/lib/uri/ldap.rb +261 -0
  321. data/bundler/lib/bundler/vendor/uri/lib/uri/ldaps.rb +22 -0
  322. data/bundler/lib/bundler/vendor/uri/lib/uri/mailto.rb +293 -0
  323. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +539 -0
  324. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +119 -0
  325. data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +6 -0
  326. data/bundler/lib/bundler/vendor/uri/lib/uri/ws.rb +83 -0
  327. data/bundler/lib/bundler/vendor/uri/lib/uri/wss.rb +23 -0
  328. data/bundler/lib/bundler/vendor/uri/lib/uri.rb +104 -0
  329. data/bundler/lib/bundler/vendored_fileutils.rb +4 -0
  330. data/bundler/lib/bundler/vendored_persistent.rb +15 -0
  331. data/bundler/lib/bundler/vendored_pub_grub.rb +4 -0
  332. data/bundler/lib/bundler/vendored_thor.rb +8 -0
  333. data/bundler/lib/bundler/vendored_tsort.rb +4 -0
  334. data/bundler/lib/bundler/vendored_uri.rb +4 -0
  335. data/bundler/lib/bundler/version.rb +13 -0
  336. data/bundler/lib/bundler/vlad.rb +17 -0
  337. data/bundler/lib/bundler/worker.rb +117 -0
  338. data/bundler/lib/bundler/yaml_serializer.rb +93 -0
  339. data/bundler/lib/bundler.rb +654 -0
  340. data/{test/rubygems/bogussources.rb → exe/gem} +5 -2
  341. data/exe/update_rubygems +38 -0
  342. data/hide_lib_for_update/note.txt +0 -4
  343. data/lib/rubygems/available_set.rb +9 -9
  344. data/lib/rubygems/basic_specification.rb +56 -37
  345. data/lib/rubygems/bundler_version_finder.rb +77 -0
  346. data/lib/rubygems/command.rb +142 -67
  347. data/lib/rubygems/command_manager.rb +61 -25
  348. data/lib/rubygems/commands/build_command.rb +88 -17
  349. data/lib/rubygems/commands/cert_command.rb +131 -82
  350. data/lib/rubygems/commands/check_command.rb +27 -24
  351. data/lib/rubygems/commands/cleanup_command.rb +56 -37
  352. data/lib/rubygems/commands/contents_command.rb +33 -35
  353. data/lib/rubygems/commands/dependency_command.rb +52 -63
  354. data/lib/rubygems/commands/environment_command.rb +31 -13
  355. data/lib/rubygems/commands/exec_command.rb +249 -0
  356. data/lib/rubygems/commands/fetch_command.rb +36 -19
  357. data/lib/rubygems/commands/generate_index_command.rb +21 -20
  358. data/lib/rubygems/commands/help_command.rb +21 -21
  359. data/lib/rubygems/commands/info_command.rb +38 -0
  360. data/lib/rubygems/commands/install_command.rb +65 -133
  361. data/lib/rubygems/commands/list_command.rb +10 -9
  362. data/lib/rubygems/commands/lock_command.rb +11 -13
  363. data/lib/rubygems/commands/mirror_command.rb +4 -4
  364. data/lib/rubygems/commands/open_command.rb +28 -26
  365. data/lib/rubygems/commands/outdated_command.rb +6 -6
  366. data/lib/rubygems/commands/owner_command.rb +50 -26
  367. data/lib/rubygems/commands/pristine_command.rb +96 -66
  368. data/lib/rubygems/commands/push_command.rb +52 -45
  369. data/lib/rubygems/commands/query_command.rb +22 -328
  370. data/lib/rubygems/commands/rdoc_command.rb +31 -31
  371. data/lib/rubygems/commands/search_command.rb +9 -9
  372. data/lib/rubygems/commands/server_command.rb +15 -76
  373. data/lib/rubygems/commands/setup_command.rb +375 -188
  374. data/lib/rubygems/commands/signin_command.rb +34 -0
  375. data/lib/rubygems/commands/signout_command.rb +32 -0
  376. data/lib/rubygems/commands/sources_command.rb +51 -35
  377. data/lib/rubygems/commands/specification_command.rb +39 -29
  378. data/lib/rubygems/commands/stale_command.rb +5 -4
  379. data/lib/rubygems/commands/uninstall_command.rb +94 -59
  380. data/lib/rubygems/commands/unpack_command.rb +43 -52
  381. data/lib/rubygems/commands/update_command.rb +154 -96
  382. data/lib/rubygems/commands/which_command.rb +13 -16
  383. data/lib/rubygems/commands/yank_command.rb +27 -31
  384. data/lib/rubygems/compatibility.rb +8 -26
  385. data/lib/rubygems/config_file.rb +214 -119
  386. data/lib/rubygems/core_ext/kernel_gem.rb +10 -14
  387. data/lib/rubygems/core_ext/kernel_require.rb +119 -88
  388. data/lib/rubygems/core_ext/kernel_warn.rb +49 -0
  389. data/lib/rubygems/core_ext/tcpsocket_init.rb +54 -0
  390. data/lib/rubygems/defaults.rb +174 -56
  391. data/lib/rubygems/dependency.rb +66 -51
  392. data/lib/rubygems/dependency_installer.rb +70 -225
  393. data/lib/rubygems/dependency_list.rb +32 -33
  394. data/lib/rubygems/deprecate.rb +112 -17
  395. data/lib/rubygems/doctor.rb +30 -30
  396. data/lib/rubygems/errors.rb +51 -9
  397. data/lib/rubygems/exceptions.rb +64 -35
  398. data/lib/rubygems/ext/build_error.rb +3 -1
  399. data/lib/rubygems/ext/builder.rb +96 -75
  400. data/lib/rubygems/ext/cargo_builder/link_flag_converter.rb +27 -0
  401. data/lib/rubygems/ext/cargo_builder.rb +360 -0
  402. data/lib/rubygems/ext/cmake_builder.rb +6 -7
  403. data/lib/rubygems/ext/configure_builder.rb +6 -9
  404. data/lib/rubygems/ext/ext_conf_builder.rb +41 -60
  405. data/lib/rubygems/ext/rake_builder.rb +18 -21
  406. data/lib/rubygems/ext.rb +8 -7
  407. data/lib/rubygems/gem_runner.rb +22 -24
  408. data/lib/rubygems/gemcutter_utilities/webauthn_listener/response.rb +163 -0
  409. data/lib/rubygems/gemcutter_utilities/webauthn_listener.rb +105 -0
  410. data/lib/rubygems/gemcutter_utilities/webauthn_poller.rb +78 -0
  411. data/lib/rubygems/gemcutter_utilities.rb +244 -40
  412. data/lib/rubygems/indexer.rb +49 -55
  413. data/lib/rubygems/install_default_message.rb +3 -3
  414. data/lib/rubygems/install_message.rb +3 -3
  415. data/lib/rubygems/install_update_options.rb +103 -96
  416. data/lib/rubygems/installer.rb +370 -214
  417. data/lib/rubygems/installer_uninstaller_utils.rb +29 -0
  418. data/lib/rubygems/local_remote_options.rb +27 -27
  419. data/lib/rubygems/mock_gem_ui.rb +6 -9
  420. data/lib/rubygems/name_tuple.rb +16 -19
  421. data/lib/rubygems/openssl.rb +7 -0
  422. data/lib/rubygems/optparse/.document +1 -0
  423. data/lib/rubygems/optparse/COPYING +56 -0
  424. data/lib/rubygems/optparse/lib/optionparser.rb +2 -0
  425. data/lib/rubygems/optparse/lib/optparse/ac.rb +54 -0
  426. data/lib/rubygems/optparse/lib/optparse/date.rb +18 -0
  427. data/lib/rubygems/optparse/lib/optparse/kwargs.rb +22 -0
  428. data/lib/rubygems/optparse/lib/optparse/shellwords.rb +7 -0
  429. data/lib/rubygems/optparse/lib/optparse/time.rb +11 -0
  430. data/lib/rubygems/optparse/lib/optparse/uri.rb +7 -0
  431. data/lib/rubygems/optparse/lib/optparse/version.rb +71 -0
  432. data/lib/rubygems/optparse/lib/optparse.rb +2308 -0
  433. data/lib/rubygems/optparse.rb +3 -0
  434. data/lib/rubygems/package/digest_io.rb +5 -7
  435. data/lib/rubygems/package/file_source.rb +6 -8
  436. data/lib/rubygems/package/io_source.rb +6 -4
  437. data/lib/rubygems/package/old.rb +18 -27
  438. data/lib/rubygems/package/source.rb +1 -1
  439. data/lib/rubygems/package/tar_header.rb +86 -71
  440. data/lib/rubygems/package/tar_reader/entry.rb +113 -20
  441. data/lib/rubygems/package/tar_reader.rb +13 -37
  442. data/lib/rubygems/package/tar_writer.rb +28 -44
  443. data/lib/rubygems/package.rb +234 -135
  444. data/lib/rubygems/package_task.rb +6 -12
  445. data/lib/rubygems/path_support.rb +18 -12
  446. data/lib/rubygems/platform.rb +123 -77
  447. data/lib/rubygems/psych_tree.rb +3 -2
  448. data/lib/rubygems/query_utils.rb +351 -0
  449. data/lib/rubygems/rdoc.rb +4 -326
  450. data/lib/rubygems/remote_fetcher.rb +89 -171
  451. data/lib/rubygems/request/connection_pools.rb +30 -23
  452. data/lib/rubygems/request/http_pool.rb +6 -7
  453. data/lib/rubygems/request/https_pool.rb +2 -3
  454. data/lib/rubygems/request.rb +88 -41
  455. data/lib/rubygems/request_set/gem_dependency_api.rb +171 -176
  456. data/lib/rubygems/request_set/lockfile/parser.rb +39 -49
  457. data/lib/rubygems/request_set/lockfile/tokenizer.rb +15 -13
  458. data/lib/rubygems/request_set/lockfile.rb +34 -32
  459. data/lib/rubygems/request_set.rb +115 -71
  460. data/lib/rubygems/requirement.rb +72 -63
  461. data/lib/rubygems/resolver/activation_request.rb +35 -60
  462. data/lib/rubygems/resolver/api_set/gem_parser.rb +20 -0
  463. data/lib/rubygems/resolver/api_set.rb +40 -32
  464. data/lib/rubygems/resolver/api_specification.rb +37 -18
  465. data/lib/rubygems/resolver/best_set.rb +15 -17
  466. data/lib/rubygems/resolver/composed_set.rb +9 -11
  467. data/lib/rubygems/resolver/conflict.rb +18 -24
  468. data/lib/rubygems/resolver/current_set.rb +2 -4
  469. data/lib/rubygems/resolver/dependency_request.rb +8 -9
  470. data/lib/rubygems/resolver/git_set.rb +8 -10
  471. data/lib/rubygems/resolver/git_specification.rb +11 -13
  472. data/lib/rubygems/resolver/index_set.rb +10 -12
  473. data/lib/rubygems/resolver/index_specification.rb +42 -11
  474. data/lib/rubygems/resolver/installed_specification.rb +9 -11
  475. data/lib/rubygems/resolver/installer_set.rb +93 -46
  476. data/lib/rubygems/resolver/local_specification.rb +5 -7
  477. data/lib/rubygems/resolver/lock_set.rb +13 -15
  478. data/lib/rubygems/resolver/lock_specification.rb +13 -15
  479. data/lib/rubygems/resolver/molinillo/LICENSE +9 -0
  480. data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/resolution_state.rb +57 -0
  481. data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb +88 -0
  482. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/action.rb +36 -0
  483. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +66 -0
  484. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +62 -0
  485. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +63 -0
  486. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +61 -0
  487. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb +126 -0
  488. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/set_payload.rb +46 -0
  489. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/tag.rb +36 -0
  490. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/vertex.rb +164 -0
  491. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +110 -146
  492. data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +83 -9
  493. data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +2 -1
  494. data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/specification_provider.rb +13 -1
  495. data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/ui.rb +3 -1
  496. data/lib/rubygems/resolver/molinillo/lib/molinillo/resolution.rb +552 -172
  497. data/lib/rubygems/resolver/molinillo/lib/molinillo/resolver.rb +3 -2
  498. data/lib/rubygems/resolver/molinillo/lib/molinillo/state.rb +12 -6
  499. data/lib/rubygems/resolver/molinillo/lib/molinillo.rb +6 -5
  500. data/lib/rubygems/resolver/molinillo.rb +2 -1
  501. data/lib/rubygems/resolver/requirement_list.rb +2 -2
  502. data/lib/rubygems/resolver/set.rb +3 -5
  503. data/lib/rubygems/resolver/source_set.rb +6 -7
  504. data/lib/rubygems/resolver/spec_specification.rb +16 -4
  505. data/lib/rubygems/resolver/specification.rb +25 -10
  506. data/lib/rubygems/resolver/stats.rb +1 -0
  507. data/lib/rubygems/resolver/vendor_set.rb +6 -8
  508. data/lib/rubygems/resolver/vendor_specification.rb +6 -8
  509. data/lib/rubygems/resolver.rb +120 -64
  510. data/lib/rubygems/s3_uri_signer.rb +177 -0
  511. data/lib/rubygems/safe_yaml.rb +59 -0
  512. data/lib/rubygems/security/policies.rb +49 -49
  513. data/lib/rubygems/security/policy.rb +44 -47
  514. data/lib/rubygems/security/signer.rb +86 -29
  515. data/lib/rubygems/security/trust_dir.rb +21 -23
  516. data/lib/rubygems/security.rb +111 -78
  517. data/lib/rubygems/security_option.rb +43 -0
  518. data/lib/rubygems/shellwords.rb +3 -0
  519. data/lib/rubygems/source/git.rb +40 -40
  520. data/lib/rubygems/source/installed.rb +5 -7
  521. data/lib/rubygems/source/local.rb +30 -30
  522. data/lib/rubygems/source/lock.rb +9 -7
  523. data/lib/rubygems/source/specific_file.rb +7 -8
  524. data/lib/rubygems/source/vendor.rb +3 -5
  525. data/lib/rubygems/source.rb +73 -63
  526. data/lib/rubygems/source_list.rb +14 -18
  527. data/lib/rubygems/spec_fetcher.rb +66 -78
  528. data/lib/rubygems/specification.rb +823 -1092
  529. data/lib/rubygems/specification_policy.rb +508 -0
  530. data/lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA.pem +21 -0
  531. data/lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem +21 -0
  532. data/lib/rubygems/stub_specification.rb +52 -53
  533. data/lib/rubygems/text.rb +40 -27
  534. data/lib/rubygems/tsort/.document +1 -0
  535. data/lib/rubygems/tsort/LICENSE.txt +22 -0
  536. data/lib/rubygems/tsort/lib/tsort.rb +452 -0
  537. data/lib/rubygems/tsort.rb +3 -0
  538. data/lib/rubygems/uninstaller.rb +149 -84
  539. data/lib/rubygems/unknown_command_spell_checker.rb +21 -0
  540. data/lib/rubygems/update_suggestion.rb +69 -0
  541. data/lib/rubygems/uri.rb +126 -0
  542. data/lib/rubygems/uri_formatter.rb +3 -6
  543. data/lib/rubygems/user_interaction.rb +95 -143
  544. data/lib/rubygems/util/licenses.rb +679 -314
  545. data/lib/rubygems/util/list.rb +2 -1
  546. data/lib/rubygems/util.rb +58 -73
  547. data/lib/rubygems/validator.rb +23 -47
  548. data/lib/rubygems/version.rb +92 -48
  549. data/lib/rubygems/version_option.rb +20 -9
  550. data/lib/rubygems/yaml_serializer.rb +93 -0
  551. data/lib/rubygems.rb +434 -346
  552. data/rubygems-update.gemspec +38 -0
  553. data/setup.rb +13 -27
  554. data/test/rubygems/alternate_cert.pem +15 -14
  555. data/test/rubygems/alternate_cert_32.pem +16 -15
  556. data/test/rubygems/alternate_key.pem +25 -25
  557. data/test/rubygems/bad_rake.rb +1 -0
  558. data/test/rubygems/bundler_test_gem.rb +424 -0
  559. data/test/rubygems/ca_cert.pem +74 -65
  560. data/test/rubygems/child_cert.pem +16 -15
  561. data/test/rubygems/child_cert_32.pem +16 -15
  562. data/test/rubygems/child_key.pem +25 -25
  563. data/test/rubygems/client.pem +103 -45
  564. data/test/rubygems/data/excon-0.7.7.gemspec.rz +0 -0
  565. data/test/rubygems/data/null-required-ruby-version.gemspec.rz +0 -0
  566. data/test/rubygems/data/null-required-rubygems-version.gemspec.rz +0 -0
  567. data/test/rubygems/data/pry-0.4.7.gemspec.rz +0 -0
  568. data/test/rubygems/encrypted_private_key.pem +26 -26
  569. data/test/rubygems/expired_cert.pem +15 -14
  570. data/test/rubygems/fake_certlib/openssl.rb +1 -0
  571. data/test/rubygems/future_cert.pem +15 -14
  572. data/test/rubygems/future_cert_32.pem +15 -14
  573. data/test/rubygems/good_rake.rb +1 -0
  574. data/test/rubygems/grandchild_cert.pem +16 -15
  575. data/test/rubygems/grandchild_cert_32.pem +16 -15
  576. data/test/rubygems/grandchild_key.pem +25 -25
  577. data/{lib/rubygems/test_case.rb → test/rubygems/helper.rb} +643 -490
  578. data/{lib → test}/rubygems/installer_test_case.rb +118 -64
  579. data/test/rubygems/invalid_issuer_cert.pem +17 -15
  580. data/test/rubygems/invalid_issuer_cert_32.pem +17 -15
  581. data/test/rubygems/invalid_key.pem +25 -25
  582. data/test/rubygems/invalid_signer_cert.pem +16 -15
  583. data/test/rubygems/invalid_signer_cert_32.pem +16 -15
  584. data/test/rubygems/invalidchild_cert.pem +16 -15
  585. data/test/rubygems/invalidchild_cert_32.pem +16 -15
  586. data/test/rubygems/invalidchild_key.pem +25 -25
  587. data/test/rubygems/multifactor_auth_utilities.rb +111 -0
  588. data/{lib → test}/rubygems/package/tar_test_case.rb +54 -26
  589. data/test/rubygems/packages/Bluebie-legs-0.6.2.gem +0 -0
  590. data/test/rubygems/packages/ascii_binder-0.1.10.1.gem +0 -0
  591. data/test/rubygems/packages/ill-formatted-platform-1.0.0.10.gem +0 -0
  592. data/test/rubygems/plugin/exception/rubygems_plugin.rb +2 -1
  593. data/test/rubygems/plugin/load/rubygems_plugin.rb +1 -0
  594. data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +2 -1
  595. data/test/rubygems/private3072_key.pem +40 -0
  596. data/test/rubygems/private_ec_key.pem +9 -0
  597. data/test/rubygems/private_key.pem +25 -25
  598. data/test/rubygems/public3072_cert.pem +25 -0
  599. data/test/rubygems/public_cert.pem +17 -15
  600. data/test/rubygems/public_cert_32.pem +16 -15
  601. data/test/rubygems/public_key.pem +7 -7
  602. data/test/rubygems/rubygems/commands/crash_command.rb +1 -2
  603. data/test/rubygems/rubygems_plugin.rb +7 -5
  604. data/test/rubygems/simple_gem.rb +1 -0
  605. data/test/rubygems/specifications/bar-0.0.2.gemspec +1 -1
  606. data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +14 -0
  607. data/test/rubygems/ssl_cert.pem +78 -17
  608. data/test/rubygems/ssl_key.pem +25 -13
  609. data/test/rubygems/test_bundled_ca.rb +45 -43
  610. data/test/rubygems/test_config.rb +13 -9
  611. data/test/rubygems/test_deprecate.rb +91 -10
  612. data/test/rubygems/test_exit.rb +17 -0
  613. data/test/rubygems/test_gem.rb +917 -797
  614. data/test/rubygems/test_gem_available_set.rb +25 -25
  615. data/test/rubygems/test_gem_bundler_version_finder.rb +127 -0
  616. data/test/rubygems/test_gem_command.rb +195 -40
  617. data/test/rubygems/test_gem_command_manager.rb +182 -46
  618. data/test/rubygems/test_gem_commands_build_command.rb +646 -28
  619. data/test/rubygems/test_gem_commands_cert_command.rb +321 -126
  620. data/test/rubygems/test_gem_commands_check_command.rb +11 -12
  621. data/test/rubygems/test_gem_commands_cleanup_command.rb +147 -52
  622. data/test/rubygems/test_gem_commands_contents_command.rb +75 -44
  623. data/test/rubygems/test_gem_commands_dependency_command.rb +61 -63
  624. data/test/rubygems/test_gem_commands_environment_command.rb +62 -47
  625. data/test/rubygems/test_gem_commands_exec_command.rb +857 -0
  626. data/test/rubygems/test_gem_commands_fetch_command.rb +164 -33
  627. data/test/rubygems/test_gem_commands_generate_index_command.rb +39 -9
  628. data/test/rubygems/test_gem_commands_help_command.rb +36 -17
  629. data/test/rubygems/test_gem_commands_info_command.rb +70 -0
  630. data/test/rubygems/test_gem_commands_install_command.rb +736 -150
  631. data/test/rubygems/test_gem_commands_list_command.rb +6 -7
  632. data/test/rubygems/test_gem_commands_lock_command.rb +12 -14
  633. data/test/rubygems/test_gem_commands_mirror.rb +4 -4
  634. data/test/rubygems/test_gem_commands_open_command.rb +47 -16
  635. data/test/rubygems/test_gem_commands_outdated_command.rb +25 -8
  636. data/test/rubygems/test_gem_commands_owner_command.rb +368 -70
  637. data/test/rubygems/test_gem_commands_pristine_command.rb +318 -101
  638. data/test/rubygems/test_gem_commands_push_command.rb +331 -58
  639. data/test/rubygems/test_gem_commands_query_command.rb +329 -128
  640. data/test/rubygems/test_gem_commands_search_command.rb +3 -5
  641. data/test/rubygems/test_gem_commands_server_command.rb +7 -47
  642. data/test/rubygems/test_gem_commands_setup_command.rb +404 -66
  643. data/test/rubygems/test_gem_commands_signin_command.rb +259 -0
  644. data/test/rubygems/test_gem_commands_signout_command.rb +30 -0
  645. data/test/rubygems/test_gem_commands_sources_command.rb +316 -31
  646. data/test/rubygems/test_gem_commands_specification_command.rb +82 -56
  647. data/test/rubygems/test_gem_commands_stale_command.rb +9 -9
  648. data/test/rubygems/test_gem_commands_uninstall_command.rb +347 -88
  649. data/test/rubygems/test_gem_commands_unpack_command.rb +49 -34
  650. data/test/rubygems/test_gem_commands_update_command.rb +429 -107
  651. data/test/rubygems/test_gem_commands_which_command.rb +13 -15
  652. data/test/rubygems/test_gem_commands_yank_command.rb +227 -28
  653. data/test/rubygems/test_gem_config_file.rb +168 -108
  654. data/test/rubygems/test_gem_dependency.rb +112 -76
  655. data/test/rubygems/test_gem_dependency_installer.rb +346 -391
  656. data/test/rubygems/test_gem_dependency_list.rb +68 -63
  657. data/test/rubygems/test_gem_dependency_resolution_error.rb +6 -8
  658. data/test/rubygems/test_gem_doctor.rb +75 -49
  659. data/test/rubygems/test_gem_ext_builder.rb +121 -125
  660. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/.gitignore +1 -0
  661. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +10 -0
  662. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.lock +249 -0
  663. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.toml +10 -0
  664. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/src/lib.rs +27 -0
  665. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/lib/custom_name.rb +3 -0
  666. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/.gitignore +1 -0
  667. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +249 -0
  668. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +10 -0
  669. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/rust_ruby_example.gemspec +10 -0
  670. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs +51 -0
  671. data/test/rubygems/test_gem_ext_cargo_builder.rb +167 -0
  672. data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +34 -0
  673. data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +60 -0
  674. data/test/rubygems/test_gem_ext_cmake_builder.rb +33 -36
  675. data/test/rubygems/test_gem_ext_configure_builder.rb +25 -32
  676. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +94 -76
  677. data/test/rubygems/test_gem_ext_rake_builder.rb +79 -31
  678. data/test/rubygems/test_gem_gem_runner.rb +59 -9
  679. data/test/rubygems/test_gem_gemcutter_utilities.rb +210 -84
  680. data/test/rubygems/test_gem_impossible_dependencies_error.rb +5 -7
  681. data/test/rubygems/test_gem_indexer.rb +121 -107
  682. data/test/rubygems/test_gem_install_update_options.rb +65 -54
  683. data/test/rubygems/test_gem_installer.rb +1517 -557
  684. data/test/rubygems/test_gem_local_remote_options.rb +14 -15
  685. data/test/rubygems/test_gem_name_tuple.rb +5 -7
  686. data/test/rubygems/test_gem_package.rb +673 -243
  687. data/test/rubygems/test_gem_package_old.rb +58 -57
  688. data/test/rubygems/test_gem_package_tar_header.rb +129 -50
  689. data/test/rubygems/test_gem_package_tar_reader.rb +71 -11
  690. data/test/rubygems/test_gem_package_tar_reader_entry.rb +229 -21
  691. data/test/rubygems/test_gem_package_tar_writer.rb +168 -101
  692. data/test/rubygems/test_gem_package_task.rb +59 -25
  693. data/test/rubygems/test_gem_path_support.rb +49 -31
  694. data/test/rubygems/test_gem_platform.rb +393 -204
  695. data/test/rubygems/test_gem_rdoc.rb +23 -156
  696. data/test/rubygems/test_gem_remote_fetcher.rb +580 -404
  697. data/test/rubygems/test_gem_request.rb +270 -86
  698. data/test/rubygems/test_gem_request_connection_pools.rb +57 -35
  699. data/test/rubygems/test_gem_request_set.rb +192 -115
  700. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +300 -278
  701. data/test/rubygems/test_gem_request_set_lockfile.rb +95 -96
  702. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +73 -78
  703. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +138 -137
  704. data/test/rubygems/test_gem_requirement.rb +175 -57
  705. data/test/rubygems/test_gem_resolver.rb +257 -113
  706. data/test/rubygems/test_gem_resolver_activation_request.rb +10 -41
  707. data/test/rubygems/test_gem_resolver_api_set.rb +80 -79
  708. data/test/rubygems/test_gem_resolver_api_specification.rb +64 -42
  709. data/test/rubygems/test_gem_resolver_best_set.rb +44 -23
  710. data/test/rubygems/test_gem_resolver_composed_set.rb +2 -4
  711. data/test/rubygems/test_gem_resolver_conflict.rb +13 -19
  712. data/test/rubygems/test_gem_resolver_dependency_request.rb +16 -18
  713. data/test/rubygems/test_gem_resolver_git_set.rb +23 -25
  714. data/test/rubygems/test_gem_resolver_git_specification.rb +23 -23
  715. data/test/rubygems/test_gem_resolver_index_set.rb +15 -17
  716. data/test/rubygems/test_gem_resolver_index_specification.rb +22 -19
  717. data/test/rubygems/test_gem_resolver_installed_specification.rb +6 -9
  718. data/test/rubygems/test_gem_resolver_installer_set.rb +110 -48
  719. data/test/rubygems/test_gem_resolver_local_specification.rb +8 -10
  720. data/test/rubygems/test_gem_resolver_lock_set.rb +16 -18
  721. data/test/rubygems/test_gem_resolver_lock_specification.rb +18 -20
  722. data/test/rubygems/test_gem_resolver_requirement_list.rb +2 -4
  723. data/test/rubygems/test_gem_resolver_specification.rb +10 -12
  724. data/test/rubygems/test_gem_resolver_vendor_set.rb +10 -12
  725. data/test/rubygems/test_gem_resolver_vendor_specification.rb +11 -13
  726. data/test/rubygems/test_gem_security.rb +116 -82
  727. data/test/rubygems/test_gem_security_policy.rb +128 -134
  728. data/test/rubygems/test_gem_security_signer.rb +58 -49
  729. data/test/rubygems/test_gem_security_trust_dir.rb +19 -21
  730. data/test/rubygems/test_gem_silent_ui.rb +48 -42
  731. data/test/rubygems/test_gem_source.rb +73 -61
  732. data/test/rubygems/test_gem_source_fetch_problem.rb +23 -6
  733. data/test/rubygems/test_gem_source_git.rb +79 -78
  734. data/test/rubygems/test_gem_source_installed.rb +17 -19
  735. data/test/rubygems/test_gem_source_list.rb +6 -5
  736. data/test/rubygems/test_gem_source_local.rb +16 -16
  737. data/test/rubygems/test_gem_source_lock.rb +32 -34
  738. data/test/rubygems/test_gem_source_specific_file.rb +19 -19
  739. data/test/rubygems/test_gem_source_subpath_problem.rb +50 -0
  740. data/test/rubygems/test_gem_source_vendor.rb +14 -16
  741. data/test/rubygems/test_gem_spec_fetcher.rb +89 -62
  742. data/test/rubygems/test_gem_specification.rb +1441 -1104
  743. data/test/rubygems/test_gem_stream_ui.rb +71 -55
  744. data/test/rubygems/test_gem_stub_specification.rb +102 -41
  745. data/test/rubygems/test_gem_text.rb +27 -1
  746. data/test/rubygems/test_gem_uninstaller.rb +289 -99
  747. data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +4 -6
  748. data/test/rubygems/test_gem_update_suggestion.rb +209 -0
  749. data/test/rubygems/test_gem_uri.rb +41 -0
  750. data/test/rubygems/test_gem_uri_formatter.rb +15 -17
  751. data/test/rubygems/test_gem_util.rb +68 -17
  752. data/test/rubygems/test_gem_validator.rb +12 -16
  753. data/test/rubygems/test_gem_version.rb +123 -40
  754. data/test/rubygems/test_gem_version_option.rb +30 -17
  755. data/test/rubygems/test_kernel.rb +75 -37
  756. data/test/rubygems/test_project_sanity.rb +49 -0
  757. data/test/rubygems/test_remote_fetch_error.rb +20 -0
  758. data/test/rubygems/test_require.rb +527 -117
  759. data/test/rubygems/test_rubygems.rb +76 -0
  760. data/test/rubygems/test_webauthn_listener.rb +143 -0
  761. data/test/rubygems/test_webauthn_listener_response.rb +93 -0
  762. data/test/rubygems/test_webauthn_poller.rb +124 -0
  763. data/{lib/rubygems/test_utilities.rb → test/rubygems/utilities.rb} +135 -83
  764. data/test/rubygems/wrong_key_cert.pem +16 -15
  765. data/test/rubygems/wrong_key_cert_32.pem +16 -15
  766. data/test/test_changelog_generator.rb +17 -0
  767. metadata +513 -189
  768. data/.autotest +0 -71
  769. data/.document +0 -5
  770. data/.travis.yml +0 -46
  771. data/CONTRIBUTING.rdoc +0 -129
  772. data/CVE-2013-4287.txt +0 -35
  773. data/CVE-2013-4363.txt +0 -45
  774. data/CVE-2015-3900.txt +0 -40
  775. data/History.txt +0 -3094
  776. data/MAINTAINERS.md +0 -5
  777. data/POLICIES.rdoc +0 -61
  778. data/README.rdoc +0 -54
  779. data/Rakefile +0 -449
  780. data/UPGRADING.rdoc +0 -92
  781. data/appveyor.yml +0 -36
  782. data/bin/gem +0 -25
  783. data/bin/update_rubygems +0 -37
  784. data/lib/gauntlet_rubygems.rb +0 -51
  785. data/lib/rubygems/psych_additions.rb +0 -10
  786. data/lib/rubygems/server.rb +0 -869
  787. data/lib/rubygems/source_local.rb +0 -6
  788. data/lib/rubygems/source_specific_file.rb +0 -5
  789. data/lib/rubygems/ssl_certs/AddTrustExternalCARoot-2048.pem +0 -25
  790. data/lib/rubygems/ssl_certs/AddTrustExternalCARoot.pem +0 -32
  791. data/lib/rubygems/ssl_certs/Class3PublicPrimaryCertificationAuthority.pem +0 -14
  792. data/lib/rubygems/ssl_certs/DigiCertHighAssuranceEVRootCA.pem +0 -23
  793. data/lib/rubygems/ssl_certs/EntrustnetSecureServerCertificationAuthority.pem +0 -28
  794. data/lib/rubygems/ssl_certs/GeoTrustGlobalCA.pem +0 -20
  795. data/lib/rubygems/syck_hack.rb +0 -77
  796. data/lib/ubygems.rb +0 -11
  797. data/test/rubygems/data/null-type.gemspec.rz +0 -0
  798. data/test/rubygems/fix_openssl_warnings.rb +0 -13
  799. data/test/rubygems/test_gem_server.rb +0 -409
  800. data/util/CL2notes +0 -56
  801. data/util/create_certs.rb +0 -157
  802. data/util/create_encrypted_key.rb +0 -17
  803. data/util/generate_spdx_license_list.rb +0 -51
  804. data/util/update_bundled_ca_certificates.rb +0 -118
@@ -1,16 +1,16 @@
1
1
  # frozen_string_literal: true
2
- require 'rubygems/test_case'
3
- require 'rubygems/dependency_installer'
4
- require 'rubygems/security'
5
2
 
6
- class TestGemDependencyInstaller < Gem::TestCase
3
+ require_relative "helper"
4
+ require "rubygems/dependency_installer"
5
+ require "rubygems/security"
7
6
 
7
+ class TestGemDependencyInstaller < Gem::TestCase
8
8
  def setup
9
9
  super
10
10
  common_installer_setup
11
11
 
12
- @gems_dir = File.join @tempdir, 'gems'
13
- @cache_dir = File.join @gemhome, 'cache'
12
+ @gems_dir = File.join @tempdir, "gems"
13
+ @cache_dir = File.join @gemhome, "cache"
14
14
 
15
15
  FileUtils.mkdir @gems_dir
16
16
 
@@ -26,78 +26,26 @@ class TestGemDependencyInstaller < Gem::TestCase
26
26
  end
27
27
 
28
28
  def util_setup_gems
29
- @a1, @a1_gem = util_gem 'a', '1' do |s| s.executables << 'a_bin' end
30
- @a1_pre, @a1_pre_gem = util_gem 'a', '1.a'
31
- @b1, @b1_gem = util_gem 'b', '1' do |s|
32
- s.add_dependency 'a'
33
- s.add_development_dependency 'aa'
29
+ @a1, @a1_gem = util_gem "a", "1" do |s|
30
+ s.executables << "a_bin"
34
31
  end
35
32
 
36
- @c1, @c1_gem = util_gem 'c', '1' do |s|
37
- s.add_development_dependency 'b'
38
- end
33
+ @a1_pre, @a1_pre_gem = util_gem "a", "1.a"
39
34
 
40
- @d1, @d1_gem = util_gem 'd', '1' do |s|
41
- s.add_development_dependency 'c'
35
+ @b1, @b1_gem = util_gem "b", "1" do |s|
36
+ s.add_dependency "a"
37
+ s.add_development_dependency "aa"
42
38
  end
43
39
 
44
- util_clear_gems
45
- util_reset_gems
46
- end
47
-
48
- def test_available_set_for_name
49
- util_setup_gems
50
- p1a, = util_gem 'a', '10.a'
51
- util_setup_spec_fetcher p1a, @a1, @a1_pre
52
-
53
- inst = Gem::DependencyInstaller.new
54
-
55
- available = inst.available_set_for 'a', Gem::Requirement.default
56
-
57
- assert_equal %w[a-1], available.set.map { |s| s.spec.full_name }
58
- end
59
-
60
- def test_available_set_for_name_prerelease
61
- util_setup_gems
62
- p1a, = util_gem 'a', '10.a'
63
- util_setup_spec_fetcher p1a, @a1, @a1_pre
64
-
65
- inst = Gem::DependencyInstaller.new :prerelease => true
66
-
67
- available = inst.available_set_for 'a', Gem::Requirement.default
68
-
69
- assert_equal %w[a-10.a],
70
- available.sorted.map { |s| s.spec.full_name }
71
- end
72
-
73
- def test_available_set_for_dep
74
- util_setup_gems
75
- p1a, = util_gem 'a', '10.a'
76
- util_setup_spec_fetcher p1a, @a1, @a1_pre
77
-
78
- inst = Gem::DependencyInstaller.new
79
-
80
- dep = Gem::Dependency.new 'a', Gem::Requirement.default
81
-
82
- available = inst.available_set_for dep, Gem::Requirement.default
83
-
84
- assert_equal %w[a-1], available.set.map { |s| s.spec.full_name }
85
- end
86
-
87
- def test_available_set_for_dep_prerelease
88
- util_setup_gems
89
- p1a, = util_gem 'a', '10.a'
90
- util_setup_spec_fetcher p1a, @a1, @a1_pre
91
-
92
- inst = Gem::DependencyInstaller.new :prerelease => true
93
-
94
- dep = Gem::Dependency.new 'a', Gem::Requirement.default
95
- dep.prerelease = true
40
+ @c1, @c1_gem = util_gem "c", "1" do |s|
41
+ s.add_development_dependency "b"
42
+ end
96
43
 
97
- available = inst.available_set_for dep, Gem::Requirement.default
44
+ @d1, @d1_gem = util_gem "d", "1" do |s|
45
+ s.add_development_dependency "c"
46
+ end
98
47
 
99
- assert_equal %w[a-10.a],
100
- available.sorted.map { |s| s.spec.full_name }
48
+ util_setup_spec_fetcher(@a1, @a1_pre, @b1, @d1)
101
49
  end
102
50
 
103
51
  def test_install
@@ -108,7 +56,7 @@ class TestGemDependencyInstaller < Gem::TestCase
108
56
 
109
57
  Dir.chdir @tempdir do
110
58
  inst = Gem::DependencyInstaller.new
111
- inst.install 'a'
59
+ inst.install "a"
112
60
  end
113
61
 
114
62
  assert_equal %w[a-1], Gem::Specification.map(&:full_name)
@@ -118,14 +66,13 @@ class TestGemDependencyInstaller < Gem::TestCase
118
66
  def test_install_prerelease
119
67
  util_setup_gems
120
68
 
121
- p1a, gem = util_gem 'a', '10.a'
69
+ p1a, gem = util_gem "a", "10.a"
122
70
 
123
71
  util_setup_spec_fetcher(p1a, @a1, @a1_pre)
124
- util_clear_gems
125
72
 
126
73
  p1a_data = Gem.read_binary(gem)
127
74
 
128
- @fetcher.data['http://gems.example.com/gems/a-10.a.gem'] = p1a_data
75
+ @fetcher.data["http://gems.example.com/gems/a-10.a.gem"] = p1a_data
129
76
 
130
77
  dep = Gem::Dependency.new "a"
131
78
  inst = Gem::DependencyInstaller.new :prerelease => true
@@ -137,18 +84,18 @@ class TestGemDependencyInstaller < Gem::TestCase
137
84
 
138
85
  def test_install_prerelease_bug_990
139
86
  spec_fetcher do |fetcher|
140
- fetcher.gem 'a', '1.b' do |s|
141
- s.add_dependency 'b', '~> 1.a'
87
+ fetcher.gem "a", "1.b" do |s|
88
+ s.add_dependency "b", "~> 1.a"
142
89
  end
143
90
 
144
- fetcher.gem 'b', '1.b' do |s|
145
- s.add_dependency 'c', '>= 1'
91
+ fetcher.gem "b", "1.b" do |s|
92
+ s.add_dependency "c", ">= 1"
146
93
  end
147
94
 
148
- fetcher.gem 'c', '1.1.b'
95
+ fetcher.gem "c", "1.1.b"
149
96
  end
150
97
 
151
- dep = Gem::Dependency.new 'a'
98
+ dep = Gem::Dependency.new "a"
152
99
 
153
100
  inst = Gem::DependencyInstaller.new :prerelease => true
154
101
  inst.install dep
@@ -157,18 +104,17 @@ class TestGemDependencyInstaller < Gem::TestCase
157
104
  end
158
105
 
159
106
  def test_install_when_only_prerelease
160
- p1a, gem = util_gem 'p', '1.a'
107
+ p1a, gem = util_gem "p", "1.a"
161
108
 
162
109
  util_setup_spec_fetcher(p1a)
163
- util_clear_gems
164
110
 
165
111
  p1a_data = Gem.read_binary(gem)
166
112
 
167
- @fetcher.data['http://gems.example.com/gems/p-1.a.gem'] = p1a_data
113
+ @fetcher.data["http://gems.example.com/gems/p-1.a.gem"] = p1a_data
168
114
 
169
115
  dep = Gem::Dependency.new "p"
170
116
  inst = Gem::DependencyInstaller.new
171
- assert_raises Gem::UnsatisfiableDependencyError do
117
+ assert_raise Gem::UnsatisfiableDependencyError do
172
118
  inst.install dep
173
119
  end
174
120
 
@@ -180,11 +126,10 @@ class TestGemDependencyInstaller < Gem::TestCase
180
126
  util_setup_gems
181
127
 
182
128
  util_setup_spec_fetcher(@a1, @a1_pre)
183
- util_clear_gems
184
129
 
185
130
  p1a_data = Gem.read_binary(@a1_gem)
186
131
 
187
- @fetcher.data['http://gems.example.com/gems/a-1.gem'] = p1a_data
132
+ @fetcher.data["http://gems.example.com/gems/a-1.gem"] = p1a_data
188
133
 
189
134
  dep = Gem::Dependency.new "a"
190
135
  inst = Gem::DependencyInstaller.new :prerelease => true
@@ -197,32 +142,30 @@ class TestGemDependencyInstaller < Gem::TestCase
197
142
  def test_install_all_dependencies
198
143
  util_setup_gems
199
144
 
200
- _, e1_gem = util_gem 'e', '1' do |s|
201
- s.add_dependency 'b'
145
+ _, e1_gem = util_gem "e", "1" do |s|
146
+ s.add_dependency "b"
202
147
  end
203
148
 
204
- util_clear_gems
205
-
206
149
  FileUtils.mv @a1_gem, @tempdir
207
150
  FileUtils.mv @b1_gem, @tempdir
208
- FileUtils.mv e1_gem, @tempdir
151
+ FileUtils.mv e1_gem, @tempdir
209
152
 
210
153
  inst = nil
211
154
 
212
155
  Dir.chdir @tempdir do
213
156
  inst = Gem::DependencyInstaller.new :ignore_dependencies => true
214
- inst.install 'b'
157
+ inst.install "b"
215
158
  end
216
159
 
217
- assert_equal %w[b-1], inst.installed_gems.map { |s| s.full_name },
218
- 'sanity check'
160
+ assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name },
161
+ "sanity check"
219
162
 
220
163
  Dir.chdir @tempdir do
221
164
  inst = Gem::DependencyInstaller.new
222
- inst.install 'e'
165
+ inst.install "e"
223
166
  end
224
167
 
225
- assert_equal %w[a-1 e-1], inst.installed_gems.map { |s| s.full_name }
168
+ assert_equal %w[a-1 e-1], inst.installed_gems.map {|s| s.full_name }
226
169
  end
227
170
 
228
171
  def test_install_cache_dir
@@ -236,10 +179,10 @@ class TestGemDependencyInstaller < Gem::TestCase
236
179
 
237
180
  Dir.chdir dir do
238
181
  inst = Gem::DependencyInstaller.new :cache_dir => @tempdir
239
- inst.install 'b'
182
+ inst.install "b"
240
183
  end
241
184
 
242
- assert_equal %w[a-1 b-1], inst.installed_gems.map { |s| s.full_name }
185
+ assert_equal %w[a-1 b-1], inst.installed_gems.map {|s| s.full_name }
243
186
 
244
187
  assert File.exist? File.join(@gemhome, "cache", @a1.file_name)
245
188
  assert File.exist? File.join(@gemhome, "cache", @b1.file_name)
@@ -248,9 +191,9 @@ class TestGemDependencyInstaller < Gem::TestCase
248
191
  def test_install_dependencies_satisfied
249
192
  util_setup_gems
250
193
 
251
- a2, a2_gem = util_gem 'a', '2'
194
+ a2, a2_gem = util_gem "a", "2"
252
195
 
253
- FileUtils.rm_rf File.join(@gemhome, 'gems')
196
+ FileUtils.rm_rf File.join(@gemhome, "gems")
254
197
 
255
198
  Gem::Specification.reset
256
199
 
@@ -261,21 +204,21 @@ class TestGemDependencyInstaller < Gem::TestCase
261
204
 
262
205
  Dir.chdir @tempdir do
263
206
  inst = Gem::DependencyInstaller.new
264
- inst.install 'a', req("= 2")
207
+ inst.install "a", req("= 2")
265
208
  end
266
209
 
267
- assert_equal %w[a-2], inst.installed_gems.map { |s| s.full_name },
268
- 'sanity check'
210
+ assert_equal %w[a-2], inst.installed_gems.map {|s| s.full_name },
211
+ "sanity check"
269
212
 
270
213
  FileUtils.rm File.join(@tempdir, a2.file_name)
271
214
 
272
215
  Dir.chdir @tempdir do
273
216
  inst = Gem::DependencyInstaller.new
274
- inst.install 'b'
217
+ inst.install "b"
275
218
  end
276
219
 
277
220
  assert_equal %w[a-2 b-1], Gem::Specification.map(&:full_name)
278
- assert_equal %w[b-1], inst.installed_gems.map { |s| s.full_name }
221
+ assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name }
279
222
  end
280
223
 
281
224
  # This asserts that if a gem's dependency is satisfied by an
@@ -284,22 +227,22 @@ class TestGemDependencyInstaller < Gem::TestCase
284
227
  def test_install_doesnt_upgrade_installed_dependencies
285
228
  util_setup_gems
286
229
 
287
- a2, a2_gem = util_gem 'a', '2'
288
- a3, a3_gem = util_gem 'a', '3'
230
+ a2, a2_gem = util_gem "a", "2"
231
+ a3, a3_gem = util_gem "a", "3"
289
232
 
290
233
  util_setup_spec_fetcher @a1, a3, @b1
291
234
 
292
- FileUtils.rm_rf File.join(@gemhome, 'gems')
235
+ FileUtils.rm_rf File.join(@gemhome, "gems")
293
236
 
294
237
  Gem::Specification.reset
295
238
 
296
239
  FileUtils.mv @a1_gem, @tempdir
297
240
  FileUtils.mv a2_gem, @tempdir # not in index
298
241
  FileUtils.mv @b1_gem, @tempdir
299
- FileUtils.mv a3_gem, @tempdir
242
+ FileUtils.mv a3_gem, @tempdir
300
243
 
301
244
  Dir.chdir @tempdir do
302
- Gem::DependencyInstaller.new.install 'a', req("= 2")
245
+ Gem::DependencyInstaller.new.install "a", req("= 2")
303
246
  end
304
247
 
305
248
  FileUtils.rm File.join(@tempdir, a2.file_name)
@@ -308,11 +251,11 @@ class TestGemDependencyInstaller < Gem::TestCase
308
251
 
309
252
  Dir.chdir @tempdir do
310
253
  inst = Gem::DependencyInstaller.new
311
- inst.install 'b'
254
+ inst.install "b"
312
255
  end
313
256
 
314
257
  assert_equal %w[a-2 b-1], Gem::Specification.map(&:full_name)
315
- assert_equal %w[b-1], inst.installed_gems.map { |s| s.full_name }
258
+ assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name }
316
259
  end
317
260
 
318
261
  def test_install_dependency
@@ -332,20 +275,18 @@ class TestGemDependencyInstaller < Gem::TestCase
332
275
 
333
276
  Dir.chdir @tempdir do
334
277
  inst = Gem::DependencyInstaller.new(:build_docs_in_background => false)
335
- inst.install 'b'
278
+ inst.install "b"
336
279
  end
337
280
 
338
- assert_equal %w[a-1 b-1], inst.installed_gems.map { |s| s.full_name }
281
+ assert_equal %w[a-1 b-1], inst.installed_gems.map {|s| s.full_name }
339
282
 
340
- assert done_installing_ran, 'post installs hook was not run'
283
+ assert done_installing_ran, "post installs hook was not run"
341
284
  end
342
285
 
343
286
  def test_install_dependency_development
344
287
  util_setup_gems
345
288
 
346
- @aa1, @aa1_gem = util_gem 'aa', '1'
347
-
348
- util_reset_gems
289
+ @aa1, @aa1_gem = util_gem "aa", "1"
349
290
 
350
291
  FileUtils.mv @a1_gem, @tempdir
351
292
  FileUtils.mv @aa1_gem, @tempdir
@@ -354,18 +295,16 @@ class TestGemDependencyInstaller < Gem::TestCase
354
295
 
355
296
  Dir.chdir @tempdir do
356
297
  inst = Gem::DependencyInstaller.new(:development => true)
357
- inst.install 'b'
298
+ inst.install "b"
358
299
  end
359
300
 
360
- assert_equal %w[a-1 aa-1 b-1], inst.installed_gems.map { |s| s.full_name }
301
+ assert_equal %w[a-1 aa-1 b-1], inst.installed_gems.map {|s| s.full_name }
361
302
  end
362
303
 
363
304
  def test_install_dependency_development_deep
364
305
  util_setup_gems
365
306
 
366
- @aa1, @aa1_gem = util_gem 'aa', '1'
367
-
368
- util_reset_gems
307
+ @aa1, @aa1_gem = util_gem "aa", "1"
369
308
 
370
309
  FileUtils.mv @a1_gem, @tempdir
371
310
  FileUtils.mv @aa1_gem, @tempdir
@@ -376,18 +315,16 @@ class TestGemDependencyInstaller < Gem::TestCase
376
315
 
377
316
  Dir.chdir @tempdir do
378
317
  inst = Gem::DependencyInstaller.new(:development => true)
379
- inst.install 'd'
318
+ inst.install "d"
380
319
  end
381
320
 
382
- assert_equal %w[a-1 aa-1 b-1 c-1 d-1], inst.installed_gems.map { |s| s.full_name }
321
+ assert_equal %w[a-1 aa-1 b-1 c-1 d-1], inst.installed_gems.map {|s| s.full_name }
383
322
  end
384
323
 
385
324
  def test_install_dependency_development_shallow
386
325
  util_setup_gems
387
326
 
388
- @aa1, @aa1_gem = util_gem 'aa', '1'
389
-
390
- util_reset_gems
327
+ @aa1, @aa1_gem = util_gem "aa", "1"
391
328
 
392
329
  FileUtils.mv @a1_gem, @tempdir
393
330
  FileUtils.mv @aa1_gem, @tempdir
@@ -398,10 +335,10 @@ class TestGemDependencyInstaller < Gem::TestCase
398
335
 
399
336
  Dir.chdir @tempdir do
400
337
  inst = Gem::DependencyInstaller.new(:development => true, :dev_shallow => true)
401
- inst.install 'd'
338
+ inst.install "d"
402
339
  end
403
340
 
404
- assert_equal %w[c-1 d-1], inst.installed_gems.map { |s| s.full_name }
341
+ assert_equal %w[c-1 d-1], inst.installed_gems.map {|s| s.full_name }
405
342
  end
406
343
 
407
344
  def test_install_dependency_existing
@@ -414,29 +351,29 @@ class TestGemDependencyInstaller < Gem::TestCase
414
351
 
415
352
  Dir.chdir @tempdir do
416
353
  inst = Gem::DependencyInstaller.new
417
- inst.install 'b'
354
+ inst.install "b"
418
355
  end
419
356
 
420
- assert_equal %w[b-1], inst.installed_gems.map { |s| s.full_name }
357
+ assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name }
421
358
  end
422
359
 
423
360
  def test_install_dependency_existing_extension
424
- extconf_rb = File.join @gemhome, 'gems', 'e-1', 'extconf.rb'
361
+ extconf_rb = File.join @gemhome, "gems", "e-1", "extconf.rb"
425
362
  FileUtils.mkdir_p File.dirname extconf_rb
426
363
 
427
- open extconf_rb, 'w' do |io|
364
+ File.open extconf_rb, "w" do |io|
428
365
  io.write <<-EXTCONF_RB
429
366
  require 'mkmf'
430
367
  create_makefile 'e'
431
368
  EXTCONF_RB
432
369
  end
433
370
 
434
- e1 = new_spec 'e', '1', nil, 'extconf.rb' do |s|
435
- s.extensions << 'extconf.rb'
371
+ e1 = util_spec "e", "1", nil, "extconf.rb" do |s|
372
+ s.extensions << "extconf.rb"
436
373
  end
437
- e1_gem = File.join @tempdir, 'gems', "#{e1.full_name}.gem"
374
+ e1_gem = e1.cache_file
438
375
 
439
- _, f1_gem = util_gem 'f', '1', 'e' => nil
376
+ _, f1_gem = util_gem "f", "1", "e" => nil
440
377
 
441
378
  Gem::Installer.at(e1_gem).install
442
379
  FileUtils.rm_r e1.extension_dir
@@ -445,20 +382,24 @@ class TestGemDependencyInstaller < Gem::TestCase
445
382
  FileUtils.mv f1_gem, @tempdir
446
383
  inst = nil
447
384
 
448
- Dir.chdir @tempdir do
385
+ pwd = Dir.getwd
386
+ Dir.chdir @tempdir
387
+ begin
449
388
  inst = Gem::DependencyInstaller.new
450
- inst.install 'f'
389
+ inst.install "f"
390
+ ensure
391
+ Dir.chdir pwd
451
392
  end
452
393
 
453
- assert_equal %w[f-1], inst.installed_gems.map { |s| s.full_name }
394
+ assert_equal %w[f-1], inst.installed_gems.map {|s| s.full_name }
454
395
 
455
- assert_path_exists e1.extension_dir
396
+ assert_path_exist e1.extension_dir
456
397
  end
457
398
 
458
399
  def test_install_dependency_old
459
- _, e1_gem = util_gem 'e', '1'
460
- _, f1_gem = util_gem 'f', '1', 'e' => nil
461
- _, f2_gem = util_gem 'f', '2'
400
+ _, e1_gem = util_gem "e", "1"
401
+ _, f1_gem = util_gem "f", "1", "e" => nil
402
+ _, f2_gem = util_gem "f", "2"
462
403
 
463
404
  FileUtils.mv e1_gem, @tempdir
464
405
  FileUtils.mv f1_gem, @tempdir
@@ -467,10 +408,10 @@ class TestGemDependencyInstaller < Gem::TestCase
467
408
 
468
409
  Dir.chdir @tempdir do
469
410
  inst = Gem::DependencyInstaller.new
470
- inst.install 'f'
411
+ inst.install "f"
471
412
  end
472
413
 
473
- assert_equal %w[f-2], inst.installed_gems.map { |s| s.full_name }
414
+ assert_equal %w[f-2], inst.installed_gems.map {|s| s.full_name }
474
415
  end
475
416
 
476
417
  def test_install_local
@@ -481,10 +422,10 @@ class TestGemDependencyInstaller < Gem::TestCase
481
422
 
482
423
  Dir.chdir @tempdir do
483
424
  inst = Gem::DependencyInstaller.new :domain => :local
484
- inst.install 'a-1.gem'
425
+ inst.install "a-1.gem"
485
426
  end
486
427
 
487
- assert_equal %w[a-1], inst.installed_gems.map { |s| s.full_name }
428
+ assert_equal %w[a-1], inst.installed_gems.map {|s| s.full_name }
488
429
  end
489
430
 
490
431
  def test_install_local_prerelease
@@ -495,10 +436,10 @@ class TestGemDependencyInstaller < Gem::TestCase
495
436
 
496
437
  Dir.chdir @tempdir do
497
438
  inst = Gem::DependencyInstaller.new :domain => :local
498
- inst.install 'a-1.a.gem'
439
+ inst.install "a-1.a.gem"
499
440
  end
500
441
 
501
- assert_equal %w[a-1.a], inst.installed_gems.map { |s| s.full_name }
442
+ assert_equal %w[a-1.a], inst.installed_gems.map {|s| s.full_name }
502
443
  end
503
444
 
504
445
  def test_install_local_dependency
@@ -511,10 +452,10 @@ class TestGemDependencyInstaller < Gem::TestCase
511
452
 
512
453
  Dir.chdir @tempdir do
513
454
  inst = Gem::DependencyInstaller.new :domain => :local
514
- inst.install 'b-1.gem'
455
+ inst.install "b-1.gem"
515
456
  end
516
457
 
517
- assert_equal %w[a-1 b-1], inst.installed_gems.map { |s| s.full_name }
458
+ assert_equal %w[a-1 b-1], inst.installed_gems.map {|s| s.full_name }
518
459
  end
519
460
 
520
461
  def test_install_local_dependency_installed
@@ -526,13 +467,47 @@ class TestGemDependencyInstaller < Gem::TestCase
526
467
  inst = nil
527
468
 
528
469
  Dir.chdir @tempdir do
529
- Gem::Installer.at('a-1.gem').install
470
+ Gem::Installer.at("a-1.gem").install
530
471
 
531
472
  inst = Gem::DependencyInstaller.new :domain => :local
532
- inst.install 'b-1.gem'
473
+ inst.install "b-1.gem"
474
+ end
475
+
476
+ assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name }
477
+ end
478
+
479
+ def test_install_local_dependency_no_network_for_target_gem
480
+ a1, a1_gem = util_gem "a", "1"
481
+ _, b1_gem = util_gem "b", "1" do |s|
482
+ s.add_dependency "a"
483
+ end
484
+
485
+ util_setup_spec_fetcher(a1)
486
+
487
+ a1_data = Gem.read_binary(a1_gem)
488
+ @fetcher.data["http://gems.example.com/gems/a-1.gem"] = a1_data
489
+
490
+ # compact index is available
491
+ compact_index_response = Net::HTTPResponse.new "1.1", 200, "OK"
492
+ compact_index_response.uri = URI("http://gems.example.com")
493
+ @fetcher.data["http://gems.example.com/"] = compact_index_response
494
+
495
+ # but private local gem not present there
496
+ @fetcher.data["http://gems.example.com/info/b"] =
497
+ proc do
498
+ raise "should not happen"
499
+ end
500
+
501
+ FileUtils.mv b1_gem, @tempdir
502
+
503
+ inst = nil
504
+
505
+ Dir.chdir @tempdir do
506
+ inst = Gem::DependencyInstaller.new
507
+ inst.install "b-1.gem"
533
508
  end
534
509
 
535
- assert_equal %w[b-1], inst.installed_gems.map { |s| s.full_name }
510
+ assert_equal %w[a-1 b-1], inst.installed_gems.map(&:full_name)
536
511
  end
537
512
 
538
513
  def test_install_local_subdir
@@ -542,25 +517,23 @@ class TestGemDependencyInstaller < Gem::TestCase
542
517
 
543
518
  Dir.chdir @tempdir do
544
519
  inst = Gem::DependencyInstaller.new :domain => :local
545
- inst.install 'gems/a-1.gem'
520
+ inst.install "gems/a-1.gem"
546
521
  end
547
522
 
548
- assert_equal %w[a-1], inst.installed_gems.map { |s| s.full_name }
523
+ assert_equal %w[a-1], inst.installed_gems.map {|s| s.full_name }
549
524
  end
550
525
 
551
526
  def test_install_minimal_deps
552
527
  util_setup_gems
553
528
 
554
- _, e1_gem = util_gem 'e', '1' do |s|
555
- s.add_dependency 'b'
529
+ _, e1_gem = util_gem "e", "1" do |s|
530
+ s.add_dependency "b"
556
531
  end
557
532
 
558
- _, b2_gem = util_gem 'b', '2' do |s|
559
- s.add_dependency 'a'
533
+ _, b2_gem = util_gem "b", "2" do |s|
534
+ s.add_dependency "a"
560
535
  end
561
536
 
562
- util_clear_gems
563
-
564
537
  FileUtils.mv @a1_gem, @tempdir
565
538
  FileUtils.mv @b1_gem, @tempdir
566
539
  FileUtils.mv b2_gem, @tempdir
@@ -570,18 +543,52 @@ class TestGemDependencyInstaller < Gem::TestCase
570
543
 
571
544
  Dir.chdir @tempdir do
572
545
  inst = Gem::DependencyInstaller.new :ignore_dependencies => true
573
- inst.install 'b', req('= 1')
546
+ inst.install "b", req("= 1")
574
547
  end
575
548
 
576
- assert_equal %w[b-1], inst.installed_gems.map { |s| s.full_name },
577
- 'sanity check'
549
+ assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name },
550
+ "sanity check"
578
551
 
579
552
  Dir.chdir @tempdir do
580
553
  inst = Gem::DependencyInstaller.new :minimal_deps => true
581
- inst.install 'e'
554
+ inst.install "e"
555
+ end
556
+
557
+ assert_equal %w[a-1 e-1], inst.installed_gems.map {|s| s.full_name }
558
+ end
559
+
560
+ def test_install_no_minimal_deps
561
+ util_setup_gems
562
+
563
+ _, e1_gem = util_gem "e", "1" do |s|
564
+ s.add_dependency "b"
565
+ end
566
+
567
+ _, b2_gem = util_gem "b", "2" do |s|
568
+ s.add_dependency "a"
569
+ end
570
+
571
+ FileUtils.mv @a1_gem, @tempdir
572
+ FileUtils.mv @b1_gem, @tempdir
573
+ FileUtils.mv b2_gem, @tempdir
574
+ FileUtils.mv e1_gem, @tempdir
575
+
576
+ inst = nil
577
+
578
+ Dir.chdir @tempdir do
579
+ inst = Gem::DependencyInstaller.new :ignore_dependencies => true
580
+ inst.install "b", req("= 1")
581
+ end
582
+
583
+ assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name },
584
+ "sanity check"
585
+
586
+ Dir.chdir @tempdir do
587
+ inst = Gem::DependencyInstaller.new :minimal_deps => false
588
+ inst.install "e"
582
589
  end
583
590
 
584
- assert_equal %w[a-1 e-1], inst.installed_gems.map { |s| s.full_name }
591
+ assert_equal %w[a-1 b-2 e-1], inst.installed_gems.map {|s| s.full_name }
585
592
  end
586
593
 
587
594
  def test_install_no_document
@@ -609,13 +616,13 @@ class TestGemDependencyInstaller < Gem::TestCase
609
616
 
610
617
  Dir.chdir @tempdir do
611
618
  inst = Gem::DependencyInstaller.new :env_shebang => true, :wrappers => true, :format_executable => false
612
- inst.install 'a'
619
+ inst.install "a"
613
620
  end
614
621
 
615
622
  env = "/\\S+/env" unless Gem.win_platform?
616
623
 
617
- assert_match %r|\A#!#{env} #{RbConfig::CONFIG['ruby_install_name']}\n|,
618
- File.read(File.join(@gemhome, 'bin', 'a_bin'))
624
+ assert_match %r{\A#!#{env} #{RbConfig::CONFIG['ruby_install_name']}\n},
625
+ File.read(File.join(@gemhome, "bin", "a_bin"))
619
626
  end
620
627
 
621
628
  def test_install_force
@@ -623,15 +630,15 @@ class TestGemDependencyInstaller < Gem::TestCase
623
630
 
624
631
  FileUtils.mv @b1_gem, @tempdir
625
632
  si = util_setup_spec_fetcher @b1
626
- @fetcher.data['http://gems.example.com/gems/yaml'] = si.to_yaml
633
+ @fetcher.data["http://gems.example.com/gems/yaml"] = si.to_yaml
627
634
  inst = nil
628
635
 
629
636
  Dir.chdir @tempdir do
630
637
  inst = Gem::DependencyInstaller.new :force => true
631
- inst.install 'b'
638
+ inst.install "b"
632
639
  end
633
640
 
634
- assert_equal %w[b-1], inst.installed_gems.map { |s| s.full_name }
641
+ assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name }
635
642
  end
636
643
 
637
644
  def test_install_build_args
@@ -644,7 +651,7 @@ class TestGemDependencyInstaller < Gem::TestCase
644
651
  Dir.chdir @tempdir do
645
652
  inst = Gem::DependencyInstaller.new(
646
653
  :build_args => build_args)
647
- inst.install 'a'
654
+ inst.install "a"
648
655
  end
649
656
 
650
657
  assert_equal build_args.join("\n"), File.read(inst.installed_gems.first.build_info_file).strip
@@ -658,10 +665,10 @@ class TestGemDependencyInstaller < Gem::TestCase
658
665
 
659
666
  Dir.chdir @tempdir do
660
667
  inst = Gem::DependencyInstaller.new :ignore_dependencies => true
661
- inst.install 'b'
668
+ inst.install "b"
662
669
  end
663
670
 
664
- assert_equal %w[b-1], inst.installed_gems.map { |s| s.full_name }
671
+ assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name }
665
672
  end
666
673
 
667
674
  def test_install_install_dir
@@ -673,40 +680,40 @@ class TestGemDependencyInstaller < Gem::TestCase
673
680
  inst = Gem::Installer.at @a1.file_name
674
681
  inst.install
675
682
 
676
- gemhome2 = File.join @tempdir, 'gemhome2'
683
+ gemhome2 = File.join @tempdir, "gemhome2"
677
684
  Dir.mkdir gemhome2
678
685
  inst = nil
679
686
 
680
687
  Dir.chdir @tempdir do
681
688
  inst = Gem::DependencyInstaller.new :install_dir => gemhome2
682
- inst.install 'b'
689
+ inst.install "b"
683
690
  end
684
691
 
685
- assert_equal %w[a-1 b-1], inst.installed_gems.map { |s| s.full_name }
692
+ assert_equal %w[a-1 b-1], inst.installed_gems.map {|s| s.full_name }
686
693
 
687
- assert File.exist?(File.join(gemhome2, 'specifications', @a1.spec_name))
688
- assert File.exist?(File.join(gemhome2, 'cache', @a1.file_name))
694
+ assert File.exist?(File.join(gemhome2, "specifications", @a1.spec_name))
695
+ assert File.exist?(File.join(gemhome2, "cache", @a1.file_name))
689
696
  end
690
697
 
691
698
  def test_install_domain_both
692
699
  util_setup_gems
693
700
 
694
701
  a1_data = nil
695
- File.open @a1_gem, 'rb' do |fp|
702
+ File.open @a1_gem, "rb" do |fp|
696
703
  a1_data = fp.read
697
704
  end
698
705
 
699
- @fetcher.data['http://gems.example.com/gems/a-1.gem'] = a1_data
706
+ @fetcher.data["http://gems.example.com/gems/a-1.gem"] = a1_data
700
707
 
701
708
  FileUtils.mv @b1_gem, @tempdir
702
709
  inst = nil
703
710
 
704
711
  Dir.chdir @tempdir do
705
712
  inst = Gem::DependencyInstaller.new :domain => :both
706
- inst.install 'b'
713
+ inst.install "b"
707
714
  end
708
715
 
709
- assert_equal %w[a-1 b-1], inst.installed_gems.map { |s| s.full_name }
716
+ assert_equal %w[a-1 b-1], inst.installed_gems.map {|s| s.full_name }
710
717
  a1, b1 = inst.installed_gems
711
718
 
712
719
  assert_equal a1.spec_file, a1.loaded_from
@@ -727,10 +734,10 @@ class TestGemDependencyInstaller < Gem::TestCase
727
734
 
728
735
  Dir.chdir @tempdir do
729
736
  inst = Gem::DependencyInstaller.new :domain => :both
730
- inst.install 'b'
737
+ inst.install "b"
731
738
  end
732
739
 
733
- assert_equal %w[a-1 b-1], inst.installed_gems.map { |s| s.full_name }
740
+ assert_equal %w[a-1 b-1], inst.installed_gems.map {|s| s.full_name }
734
741
  end
735
742
 
736
743
  def test_install_domain_local
@@ -740,32 +747,32 @@ class TestGemDependencyInstaller < Gem::TestCase
740
747
  inst = nil
741
748
 
742
749
  Dir.chdir @tempdir do
743
- e = assert_raises Gem::UnsatisfiableDependencyError do
750
+ e = assert_raise Gem::UnsatisfiableDependencyError do
744
751
  inst = Gem::DependencyInstaller.new :domain => :local
745
- inst.install 'b'
752
+ inst.install "b"
746
753
  end
747
754
 
748
755
  expected = "Unable to resolve dependency: 'b (>= 0)' requires 'a (>= 0)'"
749
756
  assert_equal expected, e.message
750
757
  end
751
758
 
752
- assert_equal [], inst.installed_gems.map { |s| s.full_name }
759
+ assert_equal [], inst.installed_gems.map {|s| s.full_name }
753
760
  end
754
761
 
755
762
  def test_install_domain_remote
756
763
  util_setup_gems
757
764
 
758
765
  a1_data = nil
759
- File.open @a1_gem, 'rb' do |fp|
766
+ File.open @a1_gem, "rb" do |fp|
760
767
  a1_data = fp.read
761
768
  end
762
769
 
763
- @fetcher.data['http://gems.example.com/gems/a-1.gem'] = a1_data
770
+ @fetcher.data["http://gems.example.com/gems/a-1.gem"] = a1_data
764
771
 
765
772
  inst = Gem::DependencyInstaller.new :domain => :remote
766
- inst.install 'a'
773
+ inst.install "a"
767
774
 
768
- assert_equal %w[a-1], inst.installed_gems.map { |s| s.full_name }
775
+ assert_equal %w[a-1], inst.installed_gems.map {|s| s.full_name }
769
776
  end
770
777
 
771
778
  def test_install_dual_repository
@@ -779,22 +786,22 @@ class TestGemDependencyInstaller < Gem::TestCase
779
786
 
780
787
  Dir.chdir @tempdir do
781
788
  inst = Gem::DependencyInstaller.new :install_dir => gemhome2
782
- inst.install 'a'
789
+ inst.install "a"
783
790
  end
784
791
 
785
- assert_equal %w[a-1], inst.installed_gems.map { |s| s.full_name },
786
- 'sanity check'
792
+ assert_equal %w[a-1], inst.installed_gems.map {|s| s.full_name },
793
+ "sanity check"
787
794
 
788
- ENV['GEM_HOME'] = @gemhome
789
- ENV['GEM_PATH'] = [@gemhome, gemhome2].join File::PATH_SEPARATOR
795
+ ENV["GEM_HOME"] = @gemhome
796
+ ENV["GEM_PATH"] = [@gemhome, gemhome2].join File::PATH_SEPARATOR
790
797
  Gem.clear_paths
791
798
 
792
799
  Dir.chdir @tempdir do
793
800
  inst = Gem::DependencyInstaller.new
794
- inst.install 'b'
801
+ inst.install "b"
795
802
  end
796
803
 
797
- assert_equal %w[b-1], inst.installed_gems.map { |s| s.full_name }
804
+ assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name }
798
805
  end
799
806
 
800
807
  def test_install_reinstall
@@ -805,8 +812,8 @@ class TestGemDependencyInstaller < Gem::TestCase
805
812
  inst = nil
806
813
 
807
814
  Dir.chdir @tempdir do
808
- inst = Gem::DependencyInstaller.new
809
- inst.install 'a'
815
+ inst = Gem::DependencyInstaller.new :force => true
816
+ inst.install "a"
810
817
  end
811
818
 
812
819
  assert_equal %w[a-1], Gem::Specification.map(&:full_name)
@@ -817,30 +824,30 @@ class TestGemDependencyInstaller < Gem::TestCase
817
824
  util_setup_gems
818
825
 
819
826
  a1_data = nil
820
- File.open @a1_gem, 'rb' do |fp|
827
+ File.open @a1_gem, "rb" do |fp|
821
828
  a1_data = fp.read
822
829
  end
823
830
 
824
- @fetcher.data['http://gems.example.com/gems/a-1.gem'] = a1_data
831
+ @fetcher.data["http://gems.example.com/gems/a-1.gem"] = a1_data
825
832
 
826
833
  inst = Gem::DependencyInstaller.new
827
834
 
828
835
  Dir.chdir @tempdir do
829
- inst.install 'a'
836
+ inst.install "a"
830
837
  end
831
838
 
832
- assert_equal %w[a-1], inst.installed_gems.map { |s| s.full_name }
839
+ assert_equal %w[a-1], inst.installed_gems.map {|s| s.full_name }
833
840
  end
834
841
 
835
842
  def test_install_remote_dep
836
843
  util_setup_gems
837
844
 
838
845
  a1_data = nil
839
- File.open @a1_gem, 'rb' do |fp|
846
+ File.open @a1_gem, "rb" do |fp|
840
847
  a1_data = fp.read
841
848
  end
842
849
 
843
- @fetcher.data['http://gems.example.com/gems/a-1.gem'] = a1_data
850
+ @fetcher.data["http://gems.example.com/gems/a-1.gem"] = a1_data
844
851
 
845
852
  inst = Gem::DependencyInstaller.new
846
853
 
@@ -849,27 +856,30 @@ class TestGemDependencyInstaller < Gem::TestCase
849
856
  inst.install dep
850
857
  end
851
858
 
852
- assert_equal %w[a-1], inst.installed_gems.map { |s| s.full_name }
859
+ assert_equal %w[a-1], inst.installed_gems.map {|s| s.full_name }
853
860
  end
854
861
 
855
862
  def test_install_remote_platform_newer
856
863
  util_setup_gems
857
864
 
858
- a2_o, a2_o_gem = util_gem 'a', '2' do |s|
865
+ a2_o, a2_o_gem = util_gem "a", "2" do |s|
859
866
  s.platform = Gem::Platform.new %w[cpu other_platform 1]
860
867
  end
861
868
 
862
869
  si = util_setup_spec_fetcher @a1, a2_o
863
870
 
864
- util_clear_gems
865
-
866
- @fetcher.data['http://gems.example.com/gems/yaml'] = si.to_yaml
871
+ @fetcher.data["http://gems.example.com/gems/yaml"] = si.to_yaml
867
872
 
868
873
  a1_data = nil
869
874
  a2_o_data = nil
870
875
 
871
- File.open @a1_gem, 'rb' do |fp| a1_data = fp.read end
872
- File.open a2_o_gem, 'rb' do |fp| a2_o_data = fp.read end
876
+ File.open @a1_gem, "rb" do |fp|
877
+ a1_data = fp.read
878
+ end
879
+
880
+ File.open a2_o_gem, "rb" do |fp|
881
+ a2_o_data = fp.read
882
+ end
873
883
 
874
884
  @fetcher.data["http://gems.example.com/gems/#{@a1.file_name}"] =
875
885
  a1_data
@@ -877,172 +887,162 @@ class TestGemDependencyInstaller < Gem::TestCase
877
887
  a2_o_data
878
888
 
879
889
  inst = Gem::DependencyInstaller.new :domain => :remote
880
- inst.install 'a'
890
+ inst.install "a"
881
891
 
882
- assert_equal %w[a-1], inst.installed_gems.map { |s| s.full_name }
892
+ assert_equal %w[a-1], inst.installed_gems.map {|s| s.full_name }
883
893
  end
884
894
 
885
895
  def test_install_platform_is_ignored_when_a_file_is_specified
886
- _, a_gem = util_gem 'a', '1' do |s|
896
+ _, a_gem = util_gem "a", "1" do |s|
887
897
  s.platform = Gem::Platform.new %w[cpu other_platform 1]
888
898
  end
889
899
 
890
900
  inst = Gem::DependencyInstaller.new :domain => :local
891
901
  inst.install a_gem
892
902
 
893
- assert_equal %w[a-1-cpu-other_platform-1], inst.installed_gems.map { |s| s.full_name }
903
+ assert_equal %w[a-1-cpu-other_platform-1], inst.installed_gems.map {|s| s.full_name }
894
904
  end
895
905
 
896
- if defined? OpenSSL then
906
+ require "rubygems/openssl"
907
+
908
+ if Gem::HAVE_OPENSSL
897
909
  def test_install_security_policy
898
910
  util_setup_gems
899
911
 
900
- data = File.open(@a1_gem, 'rb') { |f| f.read }
901
- @fetcher.data['http://gems.example.com/gems/a-1.gem'] = data
912
+ data = File.open(@a1_gem, "rb") {|f| f.read }
913
+ @fetcher.data["http://gems.example.com/gems/a-1.gem"] = data
902
914
 
903
- data = File.open(@b1_gem, 'rb') { |f| f.read }
904
- @fetcher.data['http://gems.example.com/gems/b-1.gem'] = data
915
+ data = File.open(@b1_gem, "rb") {|f| f.read }
916
+ @fetcher.data["http://gems.example.com/gems/b-1.gem"] = data
905
917
 
906
918
  policy = Gem::Security::HighSecurity
907
919
  inst = Gem::DependencyInstaller.new :security_policy => policy
908
920
 
909
- e = assert_raises Gem::Security::Exception do
910
- inst.install 'b'
921
+ e = assert_raise Gem::Security::Exception do
922
+ inst.install "b"
911
923
  end
912
924
 
913
- assert_equal 'unsigned gems are not allowed by the High Security policy',
925
+ assert_equal "unsigned gems are not allowed by the High Security policy",
914
926
  e.message
915
927
 
916
- assert_equal %w[], inst.installed_gems.map { |s| s.full_name }
928
+ assert_equal %w[], inst.installed_gems.map {|s| s.full_name }
917
929
  end
918
930
  end
919
931
 
920
932
  # Wrappers don't work on mswin
921
- unless win_platform? then
933
+ unless win_platform?
922
934
  def test_install_no_wrappers
923
935
  util_setup_gems
924
936
 
925
- @fetcher.data['http://gems.example.com/gems/a-1.gem'] = read_binary(@a1_gem)
937
+ @fetcher.data["http://gems.example.com/gems/a-1.gem"] = read_binary(@a1_gem)
926
938
 
927
939
  inst = Gem::DependencyInstaller.new :wrappers => false, :format_executable => false
928
- inst.install 'a'
940
+ inst.install "a"
929
941
 
930
- refute_match(%r|This file was generated by RubyGems.|,
931
- File.read(File.join(@gemhome, 'bin', 'a_bin')))
942
+ refute_match(%r{This file was generated by RubyGems.},
943
+ File.read(File.join(@gemhome, "bin", "a_bin")))
932
944
  end
933
945
  end
934
946
 
935
947
  def test_install_version
936
948
  util_setup_d
937
949
 
938
- data = File.open(@d2_gem, 'rb') { |f| f.read }
939
- @fetcher.data['http://gems.example.com/gems/d-2.gem'] = data
950
+ data = File.open(@d2_gem, "rb") {|f| f.read }
951
+ @fetcher.data["http://gems.example.com/gems/d-2.gem"] = data
940
952
 
941
- data = File.open(@d1_gem, 'rb') { |f| f.read }
942
- @fetcher.data['http://gems.example.com/gems/d-1.gem'] = data
953
+ data = File.open(@d1_gem, "rb") {|f| f.read }
954
+ @fetcher.data["http://gems.example.com/gems/d-1.gem"] = data
943
955
 
944
956
  inst = Gem::DependencyInstaller.new
945
957
 
946
- inst.install 'd', '= 1'
958
+ inst.install "d", "= 1"
947
959
 
948
- assert_equal %w[d-1], inst.installed_gems.map { |s| s.full_name }
960
+ assert_equal %w[d-1], inst.installed_gems.map {|s| s.full_name }
949
961
  end
950
962
 
951
963
  def test_install_version_default
952
964
  util_setup_d
953
965
 
954
- data = File.open(@d2_gem, 'rb') { |f| f.read }
955
- @fetcher.data['http://gems.example.com/gems/d-2.gem'] = data
966
+ data = File.open(@d2_gem, "rb") {|f| f.read }
967
+ @fetcher.data["http://gems.example.com/gems/d-2.gem"] = data
956
968
 
957
- data = File.open(@d1_gem, 'rb') { |f| f.read }
958
- @fetcher.data['http://gems.example.com/gems/d-1.gem'] = data
969
+ data = File.open(@d1_gem, "rb") {|f| f.read }
970
+ @fetcher.data["http://gems.example.com/gems/d-1.gem"] = data
959
971
 
960
972
  inst = Gem::DependencyInstaller.new
961
- inst.install 'd'
973
+ inst.install "d"
962
974
 
963
- assert_equal %w[d-2], inst.installed_gems.map { |s| s.full_name }
975
+ assert_equal %w[d-2], inst.installed_gems.map {|s| s.full_name }
964
976
  end
965
977
 
966
- def test_find_gems_gems_with_sources
967
- util_setup_gems
968
-
969
- inst = Gem::DependencyInstaller.new
970
- dep = Gem::Dependency.new 'b', '>= 0'
971
-
972
- Gem::Specification.reset
978
+ def test_install_legacy_spec_with_nil_required_ruby_version
979
+ path = File.expand_path "data/null-required-ruby-version.gemspec.rz", __dir__
980
+ spec = Marshal.load Gem.read_binary(path)
981
+ def spec.validate(*args); end
973
982
 
974
- set = inst.find_gems_with_sources(dep)
983
+ util_build_gem spec
975
984
 
976
- assert_kind_of Gem::AvailableSet, set
985
+ cache_file = File.join @tempdir, "gems", "#{spec.original_name}.gem"
986
+ FileUtils.mkdir_p File.dirname cache_file
987
+ FileUtils.mv spec.cache_file, cache_file
977
988
 
978
- s = set.set.first
989
+ util_setup_spec_fetcher spec
979
990
 
980
- assert_equal @b1, s.spec
981
- assert_equal Gem::Source.new(@gem_repo), s.source
982
- end
991
+ data = Gem.read_binary(cache_file)
983
992
 
984
- def test_find_spec_by_name_and_version_wildcard
985
- util_gem 'a', 1
986
- FileUtils.mv 'gems/a-1.gem', @tempdir
993
+ @fetcher.data["http://gems.example.com/gems/activesupport-1.0.0.gem"] = data
987
994
 
988
- FileUtils.touch 'rdoc.gem'
995
+ dep = Gem::Dependency.new "activesupport"
989
996
 
990
997
  inst = Gem::DependencyInstaller.new
998
+ inst.install dep
991
999
 
992
- available = inst.find_spec_by_name_and_version('*.gem')
993
-
994
- assert_equal %w[a-1], available.each_spec.map { |spec| spec.full_name }
1000
+ assert_equal %w[activesupport-1.0.0], Gem::Specification.map(&:full_name)
995
1001
  end
996
1002
 
997
- def test_find_spec_by_name_and_version_wildcard_bad_gem
998
- FileUtils.touch 'rdoc.gem'
1003
+ def test_install_legacy_spec_with_nil_required_rubygems_version
1004
+ path = File.expand_path "data/null-required-rubygems-version.gemspec.rz", __dir__
1005
+ spec = Marshal.load Gem.read_binary(path)
1006
+ def spec.validate(*args); end
999
1007
 
1000
- inst = Gem::DependencyInstaller.new
1008
+ util_build_gem spec
1001
1009
 
1002
- assert_raises Gem::Package::FormatError do
1003
- inst.find_spec_by_name_and_version '*.gem'
1004
- end
1005
- end
1010
+ cache_file = File.join @tempdir, "gems", "#{spec.original_name}.gem"
1011
+ FileUtils.mkdir_p File.dirname cache_file
1012
+ FileUtils.mv spec.cache_file, cache_file
1006
1013
 
1007
- def test_find_spec_by_name_and_version_bad_gem
1008
- FileUtils.touch 'rdoc.gem'
1014
+ util_setup_spec_fetcher spec
1009
1015
 
1010
- inst = Gem::DependencyInstaller.new
1016
+ data = Gem.read_binary(cache_file)
1011
1017
 
1012
- e = assert_raises Gem::Package::FormatError do
1013
- inst.find_spec_by_name_and_version 'rdoc.gem'
1014
- end
1015
-
1016
- full_path = File.join @tempdir, 'rdoc.gem'
1017
- assert_equal "package metadata is missing in #{full_path}", e.message
1018
- end
1018
+ @fetcher.data["http://gems.example.com/gems/activesupport-1.0.0.gem"] = data
1019
1019
 
1020
- def test_find_spec_by_name_and_version_directory
1021
- Dir.mkdir 'rdoc'
1020
+ dep = Gem::Dependency.new "activesupport"
1022
1021
 
1023
1022
  inst = Gem::DependencyInstaller.new
1023
+ inst.install dep
1024
1024
 
1025
- e = assert_raises Gem::SpecificGemNotFoundException do
1026
- inst.find_spec_by_name_and_version 'rdoc'
1027
- end
1028
-
1029
- assert_equal "Could not find a valid gem 'rdoc' (>= 0) " +
1030
- "locally or in a repository",
1031
- e.message
1025
+ assert_equal %w[activesupport-1.0.0], Gem::Specification.map(&:full_name)
1032
1026
  end
1033
1027
 
1034
- def test_find_spec_by_name_and_version_file
1035
- FileUtils.touch 'rdoc'
1028
+ def test_find_gems_gems_with_sources
1029
+ util_setup_gems
1036
1030
 
1037
1031
  inst = Gem::DependencyInstaller.new
1032
+ dep = Gem::Dependency.new "b", ">= 0"
1033
+
1034
+ Gem::Specification.reset
1038
1035
 
1039
- e = assert_raises Gem::SpecificGemNotFoundException do
1040
- inst.find_spec_by_name_and_version 'rdoc'
1036
+ set = Gem::Deprecate.skip_during do
1037
+ inst.find_gems_with_sources(dep)
1041
1038
  end
1042
1039
 
1043
- assert_equal "Could not find a valid gem 'rdoc' (>= 0) " +
1044
- "locally or in a repository",
1045
- e.message
1040
+ assert_kind_of Gem::AvailableSet, set
1041
+
1042
+ s = set.set.first
1043
+
1044
+ assert_equal @b1, s.spec
1045
+ assert_equal Gem::Source.new(@gem_repo), s.source
1046
1046
  end
1047
1047
 
1048
1048
  def test_find_gems_with_sources_local
@@ -1050,11 +1050,13 @@ class TestGemDependencyInstaller < Gem::TestCase
1050
1050
 
1051
1051
  FileUtils.mv @a1_gem, @tempdir
1052
1052
  inst = Gem::DependencyInstaller.new
1053
- dep = Gem::Dependency.new 'a', '>= 0'
1053
+ dep = Gem::Dependency.new "a", ">= 0"
1054
1054
  set = nil
1055
1055
 
1056
1056
  Dir.chdir @tempdir do
1057
- set = inst.find_gems_with_sources dep
1057
+ set = Gem::Deprecate.skip_during do
1058
+ inst.find_gems_with_sources dep
1059
+ end
1058
1060
  end
1059
1061
 
1060
1062
  gems = set.sorted
@@ -1063,13 +1065,12 @@ class TestGemDependencyInstaller < Gem::TestCase
1063
1065
 
1064
1066
  remote, local = gems
1065
1067
 
1066
- assert_equal 'a-1', local.spec.full_name, 'local spec'
1068
+ assert_equal "a-1", local.spec.full_name, "local spec"
1067
1069
  assert_equal File.join(@tempdir, @a1.file_name),
1068
- local.source.download(local.spec), 'local path'
1069
-
1070
- assert_equal 'a-1', remote.spec.full_name, 'remote spec'
1071
- assert_equal Gem::Source.new(@gem_repo), remote.source, 'remote path'
1070
+ local.source.download(local.spec), "local path"
1072
1071
 
1072
+ assert_equal "a-1", remote.spec.full_name, "remote spec"
1073
+ assert_equal Gem::Source.new(@gem_repo), remote.source, "remote path"
1073
1074
  end
1074
1075
 
1075
1076
  def test_find_gems_with_sources_prerelease
@@ -1077,36 +1078,45 @@ class TestGemDependencyInstaller < Gem::TestCase
1077
1078
 
1078
1079
  installer = Gem::DependencyInstaller.new
1079
1080
 
1080
- dependency = Gem::Dependency.new('a', Gem::Requirement.default)
1081
+ dependency = Gem::Dependency.new("a", Gem::Requirement.default)
1082
+
1083
+ set = Gem::Deprecate.skip_during do
1084
+ installer.find_gems_with_sources(dependency)
1085
+ end
1081
1086
 
1082
- releases =
1083
- installer.find_gems_with_sources(dependency).all_specs
1087
+ releases = set.all_specs
1084
1088
 
1085
- assert releases.any? { |s| s.name == 'a' and s.version.to_s == '1' }
1086
- refute releases.any? { |s| s.name == 'a' and s.version.to_s == '1.a' }
1089
+ assert releases.any? {|s| s.name == "a" && s.version.to_s == "1" }
1090
+ refute releases.any? {|s| s.name == "a" && s.version.to_s == "1.a" }
1087
1091
 
1088
1092
  dependency.prerelease = true
1089
1093
 
1090
- prereleases =
1091
- installer.find_gems_with_sources(dependency).all_specs
1094
+ set = Gem::Deprecate.skip_during do
1095
+ installer.find_gems_with_sources(dependency)
1096
+ end
1097
+
1098
+ prereleases = set.all_specs
1092
1099
 
1093
1100
  assert_equal [@a1_pre, @a1], prereleases
1094
1101
  end
1095
1102
 
1096
1103
  def test_find_gems_with_sources_with_best_only_and_platform
1097
1104
  util_setup_gems
1098
- a1_x86_mingw32, = util_gem 'a', '1' do |s|
1099
- s.platform = 'x86-mingw32'
1105
+ a1_x86_mingw32, = util_gem "a", "1" do |s|
1106
+ s.platform = "x86-mingw32"
1100
1107
  end
1101
1108
  util_setup_spec_fetcher @a1, a1_x86_mingw32
1102
- Gem.platforms << Gem::Platform.new('x86-mingw32')
1109
+ Gem.platforms << Gem::Platform.new("x86-mingw32")
1103
1110
 
1104
1111
  installer = Gem::DependencyInstaller.new
1105
1112
 
1106
- dependency = Gem::Dependency.new('a', Gem::Requirement.default)
1113
+ dependency = Gem::Dependency.new("a", Gem::Requirement.default)
1107
1114
 
1108
- releases =
1109
- installer.find_gems_with_sources(dependency, true).all_specs
1115
+ set = Gem::Deprecate.skip_during do
1116
+ installer.find_gems_with_sources(dependency, true)
1117
+ end
1118
+
1119
+ releases = set.all_specs
1110
1120
 
1111
1121
  assert_equal [a1_x86_mingw32], releases
1112
1122
  end
@@ -1116,9 +1126,11 @@ class TestGemDependencyInstaller < Gem::TestCase
1116
1126
 
1117
1127
  installer = Gem::DependencyInstaller.new
1118
1128
 
1119
- dep = Gem::Dependency.new('a')
1129
+ dep = Gem::Dependency.new("a")
1120
1130
 
1121
- out = installer.find_gems_with_sources(dep)
1131
+ out = Gem::Deprecate.skip_during do
1132
+ installer.find_gems_with_sources(dep)
1133
+ end
1122
1134
 
1123
1135
  assert out.empty?
1124
1136
  assert_kind_of Gem::SourceFetchProblem, installer.errors.first
@@ -1131,9 +1143,9 @@ class TestGemDependencyInstaller < Gem::TestCase
1131
1143
  FileUtils.mv @b1_gem, @tempdir
1132
1144
 
1133
1145
  inst = Gem::DependencyInstaller.new
1134
- request_set = inst.resolve_dependencies 'b', req('>= 0')
1146
+ request_set = inst.resolve_dependencies "b", req(">= 0")
1135
1147
 
1136
- requests = request_set.sorted_requests.map { |req| req.full_name }
1148
+ requests = request_set.sorted_requests.map {|req| req.full_name }
1137
1149
 
1138
1150
  assert_equal %w[a-1 b-1], requests
1139
1151
  end
@@ -1145,9 +1157,9 @@ class TestGemDependencyInstaller < Gem::TestCase
1145
1157
  FileUtils.mv @b1_gem, @tempdir
1146
1158
 
1147
1159
  inst = Gem::DependencyInstaller.new :ignore_dependencies => true
1148
- request_set = inst.resolve_dependencies 'b', req('>= 0')
1160
+ request_set = inst.resolve_dependencies "b", req(">= 0")
1149
1161
 
1150
- requests = request_set.sorted_requests.map { |req| req.full_name }
1162
+ requests = request_set.sorted_requests.map {|req| req.full_name }
1151
1163
 
1152
1164
  assert request_set.ignore_dependencies
1153
1165
 
@@ -1157,79 +1169,22 @@ class TestGemDependencyInstaller < Gem::TestCase
1157
1169
  def test_resolve_dependencies_local
1158
1170
  util_setup_gems
1159
1171
 
1160
- @a2, @a2_gem = util_gem 'a', '2'
1172
+ @a2, @a2_gem = util_gem "a", "2"
1161
1173
  FileUtils.mv @a1_gem, @tempdir
1162
1174
  FileUtils.mv @a2_gem, @tempdir
1163
1175
 
1164
1176
  inst = Gem::DependencyInstaller.new
1165
- request_set = inst.resolve_dependencies 'a-1.gem', req('>= 0')
1177
+ request_set = inst.resolve_dependencies "a-1.gem", req(">= 0")
1166
1178
 
1167
- requests = request_set.sorted_requests.map { |req| req.full_name }
1179
+ requests = request_set.sorted_requests.map {|req| req.full_name }
1168
1180
 
1169
1181
  assert_equal %w[a-1], requests
1170
1182
  end
1171
1183
 
1172
- def util_write_a1_bin
1173
- write_file File.join('gems', 'a-1', 'bin', 'a_bin') do |fp|
1174
- fp.puts "#!/usr/bin/ruby"
1175
- end
1176
- end
1177
-
1178
- def util_setup_c1_pre
1179
- @c1_pre, @c1_pre_gem = util_spec 'c', '1.a' do |s|
1180
- s.add_dependency 'a', '1.a'
1181
- s.add_dependency 'b', '1'
1182
- end
1183
-
1184
- util_reset_gems
1185
- end
1186
-
1187
1184
  def util_setup_d
1188
- @d1, @d1_gem = util_gem 'd', '1'
1189
- @d2, @d2_gem = util_gem 'd', '2'
1190
-
1191
- util_reset_gems
1192
- end
1193
-
1194
- def util_setup_wxyz
1195
- @x1_m, @x1_m_gem = util_spec 'x', '1' do |s|
1196
- s.platform = Gem::Platform.new %w[cpu my_platform 1]
1197
- end
1198
-
1199
- @x1_o, @x1_o_gem = util_spec 'x', '1' do |s|
1200
- s.platform = Gem::Platform.new %w[cpu other_platform 1]
1201
- end
1202
-
1203
- @w1, @w1_gem = util_spec 'w', '1', 'x' => nil
1204
-
1205
- @y1, @y1_gem = util_spec 'y', '1'
1206
- @y1_1_p, @y1_1_p_gem = util_spec 'y', '1.1' do |s|
1207
- s.platform = Gem::Platform.new %w[cpu my_platform 1]
1208
- end
1209
-
1210
- @z1, @z1_gem = util_spec 'z', '1', 'y' => nil
1211
-
1212
- util_reset_gems
1213
- end
1185
+ @d1, @d1_gem = util_gem "d", "1"
1186
+ @d2, @d2_gem = util_gem "d", "2"
1214
1187
 
1215
- def util_reset_gems
1216
- @a1 ||= nil
1217
- @b1 ||= nil
1218
- @a1_pre ||= nil
1219
- @c1_pre ||= nil
1220
- @d1 ||= nil
1221
- @d2 ||= nil
1222
- @w1 ||= nil
1223
- @x1_m ||= nil
1224
- @x1_o ||= nil
1225
- @y1 ||= nil
1226
- @y1_1_p ||= nil
1227
- @z1 ||= nil
1228
-
1229
- util_setup_spec_fetcher(*[@a1, @a1_pre, @b1, @c1_pre,
1230
- @d1, @d2, @x1_m, @x1_o, @w1, @y1,
1231
- @y1_1_p, @z1].compact)
1232
-
1233
- util_clear_gems
1188
+ util_setup_spec_fetcher(@d1, @d2)
1234
1189
  end
1235
1190
  end