rubygems-update 2.6.1 → 3.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (801) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +5899 -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 +428 -216
  7. data/POLICIES.md +135 -0
  8. data/README.md +112 -0
  9. data/UPGRADING.md +15 -0
  10. data/bundler/CHANGELOG.md +4719 -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 +46 -0
  15. data/bundler/exe/bundle +29 -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/checksum.rb +245 -0
  21. data/bundler/lib/bundler/ci_detector.rb +75 -0
  22. data/bundler/lib/bundler/cli/add.rb +47 -0
  23. data/bundler/lib/bundler/cli/binstubs.rb +57 -0
  24. data/bundler/lib/bundler/cli/cache.rb +43 -0
  25. data/bundler/lib/bundler/cli/check.rb +40 -0
  26. data/bundler/lib/bundler/cli/clean.rb +25 -0
  27. data/bundler/lib/bundler/cli/common.rb +138 -0
  28. data/bundler/lib/bundler/cli/config.rb +204 -0
  29. data/bundler/lib/bundler/cli/console.rb +44 -0
  30. data/bundler/lib/bundler/cli/doctor.rb +157 -0
  31. data/bundler/lib/bundler/cli/exec.rb +88 -0
  32. data/bundler/lib/bundler/cli/fund.rb +36 -0
  33. data/bundler/lib/bundler/cli/gem.rb +471 -0
  34. data/bundler/lib/bundler/cli/info.rb +83 -0
  35. data/bundler/lib/bundler/cli/init.rb +51 -0
  36. data/bundler/lib/bundler/cli/inject.rb +60 -0
  37. data/bundler/lib/bundler/cli/install.rb +190 -0
  38. data/bundler/lib/bundler/cli/issue.rb +41 -0
  39. data/bundler/lib/bundler/cli/list.rb +66 -0
  40. data/bundler/lib/bundler/cli/lock.rb +73 -0
  41. data/bundler/lib/bundler/cli/open.rb +29 -0
  42. data/bundler/lib/bundler/cli/outdated.rb +297 -0
  43. data/bundler/lib/bundler/cli/platform.rb +48 -0
  44. data/bundler/lib/bundler/cli/plugin.rb +34 -0
  45. data/bundler/lib/bundler/cli/pristine.rb +60 -0
  46. data/bundler/lib/bundler/cli/remove.rb +17 -0
  47. data/bundler/lib/bundler/cli/show.rb +75 -0
  48. data/bundler/lib/bundler/cli/update.rb +123 -0
  49. data/bundler/lib/bundler/cli/viz.rb +31 -0
  50. data/bundler/lib/bundler/cli.rb +846 -0
  51. data/bundler/lib/bundler/compact_index_client/cache.rb +121 -0
  52. data/bundler/lib/bundler/compact_index_client/cache_file.rb +153 -0
  53. data/bundler/lib/bundler/compact_index_client/gem_parser.rb +32 -0
  54. data/bundler/lib/bundler/compact_index_client/updater.rb +115 -0
  55. data/bundler/lib/bundler/compact_index_client.rb +126 -0
  56. data/bundler/lib/bundler/constants.rb +7 -0
  57. data/bundler/lib/bundler/current_ruby.rb +92 -0
  58. data/bundler/lib/bundler/definition.rb +1005 -0
  59. data/bundler/lib/bundler/dependency.rb +101 -0
  60. data/bundler/lib/bundler/deployment.rb +69 -0
  61. data/bundler/lib/bundler/deprecate.rb +44 -0
  62. data/bundler/lib/bundler/digest.rb +71 -0
  63. data/bundler/lib/bundler/dsl.rb +601 -0
  64. data/bundler/lib/bundler/endpoint_specification.rb +147 -0
  65. data/bundler/lib/bundler/env.rb +148 -0
  66. data/bundler/lib/bundler/environment_preserver.rb +86 -0
  67. data/bundler/lib/bundler/errors.rb +233 -0
  68. data/bundler/lib/bundler/feature_flag.rb +53 -0
  69. data/bundler/lib/bundler/fetcher/base.rb +52 -0
  70. data/bundler/lib/bundler/fetcher/compact_index.rb +129 -0
  71. data/bundler/lib/bundler/fetcher/dependency.rb +78 -0
  72. data/bundler/lib/bundler/fetcher/downloader.rb +91 -0
  73. data/bundler/lib/bundler/fetcher/gem_remote_fetcher.rb +16 -0
  74. data/bundler/lib/bundler/fetcher/index.rb +25 -0
  75. data/bundler/lib/bundler/fetcher.rb +324 -0
  76. data/bundler/lib/bundler/force_platform.rb +18 -0
  77. data/bundler/lib/bundler/friendly_errors.rb +126 -0
  78. data/bundler/lib/bundler/gem_helper.rb +237 -0
  79. data/bundler/lib/bundler/gem_helpers.rb +127 -0
  80. data/bundler/lib/bundler/gem_tasks.rb +7 -0
  81. data/bundler/lib/bundler/gem_version_promoter.rb +145 -0
  82. data/bundler/lib/bundler/graph.rb +152 -0
  83. data/bundler/lib/bundler/index.rb +205 -0
  84. data/bundler/lib/bundler/injector.rb +287 -0
  85. data/bundler/lib/bundler/inline.rb +73 -0
  86. data/bundler/lib/bundler/installer/gem_installer.rb +84 -0
  87. data/bundler/lib/bundler/installer/parallel_installer.rb +202 -0
  88. data/bundler/lib/bundler/installer/standalone.rb +116 -0
  89. data/bundler/lib/bundler/installer.rb +267 -0
  90. data/bundler/lib/bundler/lazy_specification.rb +170 -0
  91. data/bundler/lib/bundler/lockfile_generator.rb +104 -0
  92. data/bundler/lib/bundler/lockfile_parser.rb +289 -0
  93. data/bundler/lib/bundler/man/.document +1 -0
  94. data/bundler/lib/bundler/man/bundle-add.1 +59 -0
  95. data/bundler/lib/bundler/man/bundle-add.1.ronn +58 -0
  96. data/bundler/lib/bundler/man/bundle-binstubs.1 +30 -0
  97. data/bundler/lib/bundler/man/bundle-binstubs.1.ronn +41 -0
  98. data/bundler/lib/bundler/man/bundle-cache.1 +40 -0
  99. data/bundler/lib/bundler/man/bundle-cache.1.ronn +79 -0
  100. data/bundler/lib/bundler/man/bundle-check.1 +22 -0
  101. data/bundler/lib/bundler/man/bundle-check.1.ronn +26 -0
  102. data/bundler/lib/bundler/man/bundle-clean.1 +17 -0
  103. data/bundler/lib/bundler/man/bundle-clean.1.ronn +18 -0
  104. data/bundler/lib/bundler/man/bundle-config.1 +321 -0
  105. data/bundler/lib/bundler/man/bundle-config.1.ronn +411 -0
  106. data/bundler/lib/bundler/man/bundle-console.1 +35 -0
  107. data/bundler/lib/bundler/man/bundle-console.1.ronn +44 -0
  108. data/bundler/lib/bundler/man/bundle-doctor.1 +30 -0
  109. data/bundler/lib/bundler/man/bundle-doctor.1.ronn +33 -0
  110. data/bundler/lib/bundler/man/bundle-exec.1 +104 -0
  111. data/bundler/lib/bundler/man/bundle-exec.1.ronn +151 -0
  112. data/bundler/lib/bundler/man/bundle-gem.1 +69 -0
  113. data/bundler/lib/bundler/man/bundle-gem.1.ronn +117 -0
  114. data/bundler/lib/bundler/man/bundle-help.1 +9 -0
  115. data/bundler/lib/bundler/man/bundle-help.1.ronn +12 -0
  116. data/bundler/lib/bundler/man/bundle-info.1 +14 -0
  117. data/bundler/lib/bundler/man/bundle-info.1.ronn +17 -0
  118. data/bundler/lib/bundler/man/bundle-init.1 +20 -0
  119. data/bundler/lib/bundler/man/bundle-init.1.ronn +31 -0
  120. data/bundler/lib/bundler/man/bundle-inject.1 +23 -0
  121. data/bundler/lib/bundler/man/bundle-inject.1.ronn +24 -0
  122. data/bundler/lib/bundler/man/bundle-install.1 +215 -0
  123. data/bundler/lib/bundler/man/bundle-install.1.ronn +383 -0
  124. data/bundler/lib/bundler/man/bundle-list.1 +35 -0
  125. data/bundler/lib/bundler/man/bundle-list.1.ronn +33 -0
  126. data/bundler/lib/bundler/man/bundle-lock.1 +60 -0
  127. data/bundler/lib/bundler/man/bundle-lock.1.ronn +94 -0
  128. data/bundler/lib/bundler/man/bundle-open.1 +32 -0
  129. data/bundler/lib/bundler/man/bundle-open.1.ronn +27 -0
  130. data/bundler/lib/bundler/man/bundle-outdated.1 +100 -0
  131. data/bundler/lib/bundler/man/bundle-outdated.1.ronn +106 -0
  132. data/bundler/lib/bundler/man/bundle-platform.1 +49 -0
  133. data/bundler/lib/bundler/man/bundle-platform.1.ronn +49 -0
  134. data/bundler/lib/bundler/man/bundle-plugin.1 +55 -0
  135. data/bundler/lib/bundler/man/bundle-plugin.1.ronn +59 -0
  136. data/bundler/lib/bundler/man/bundle-pristine.1 +23 -0
  137. data/bundler/lib/bundler/man/bundle-pristine.1.ronn +34 -0
  138. data/bundler/lib/bundler/man/bundle-remove.1 +21 -0
  139. data/bundler/lib/bundler/man/bundle-remove.1.ronn +23 -0
  140. data/bundler/lib/bundler/man/bundle-show.1 +16 -0
  141. data/bundler/lib/bundler/man/bundle-show.1.ronn +21 -0
  142. data/bundler/lib/bundler/man/bundle-update.1 +275 -0
  143. data/bundler/lib/bundler/man/bundle-update.1.ronn +351 -0
  144. data/bundler/lib/bundler/man/bundle-version.1 +22 -0
  145. data/bundler/lib/bundler/man/bundle-version.1.ronn +24 -0
  146. data/bundler/lib/bundler/man/bundle-viz.1 +30 -0
  147. data/bundler/lib/bundler/man/bundle-viz.1.ronn +32 -0
  148. data/bundler/lib/bundler/man/bundle.1 +102 -0
  149. data/bundler/lib/bundler/man/bundle.1.ronn +116 -0
  150. data/bundler/lib/bundler/man/gemfile.5 +470 -0
  151. data/bundler/lib/bundler/man/gemfile.5.ronn +552 -0
  152. data/bundler/lib/bundler/man/index.txt +29 -0
  153. data/bundler/lib/bundler/match_metadata.rb +17 -0
  154. data/bundler/lib/bundler/match_platform.rb +23 -0
  155. data/bundler/lib/bundler/match_remote_metadata.rb +29 -0
  156. data/bundler/lib/bundler/mirror.rb +221 -0
  157. data/bundler/lib/bundler/plugin/api/source.rb +321 -0
  158. data/bundler/lib/bundler/plugin/api.rb +81 -0
  159. data/bundler/lib/bundler/plugin/dsl.rb +53 -0
  160. data/bundler/lib/bundler/plugin/events.rb +61 -0
  161. data/bundler/lib/bundler/plugin/index.rb +193 -0
  162. data/bundler/lib/bundler/plugin/installer/git.rb +34 -0
  163. data/bundler/lib/bundler/plugin/installer/rubygems.rb +19 -0
  164. data/bundler/lib/bundler/plugin/installer.rb +112 -0
  165. data/bundler/lib/bundler/plugin/source_list.rb +31 -0
  166. data/bundler/lib/bundler/plugin.rb +359 -0
  167. data/bundler/lib/bundler/process_lock.rb +24 -0
  168. data/bundler/lib/bundler/remote_specification.rb +117 -0
  169. data/bundler/lib/bundler/resolver/base.rb +107 -0
  170. data/bundler/lib/bundler/resolver/candidate.rb +94 -0
  171. data/bundler/lib/bundler/resolver/incompatibility.rb +15 -0
  172. data/bundler/lib/bundler/resolver/package.rb +77 -0
  173. data/bundler/lib/bundler/resolver/root.rb +25 -0
  174. data/bundler/lib/bundler/resolver/spec_group.rb +79 -0
  175. data/bundler/lib/bundler/resolver.rb +462 -0
  176. data/bundler/lib/bundler/retry.rb +66 -0
  177. data/bundler/lib/bundler/ruby_dsl.rb +53 -0
  178. data/bundler/lib/bundler/ruby_version.rb +131 -0
  179. data/bundler/lib/bundler/rubygems_ext.rb +328 -0
  180. data/bundler/lib/bundler/rubygems_gem_installer.rb +137 -0
  181. data/bundler/lib/bundler/rubygems_integration.rb +493 -0
  182. data/bundler/lib/bundler/runtime.rb +307 -0
  183. data/bundler/lib/bundler/safe_marshal.rb +31 -0
  184. data/bundler/lib/bundler/self_manager.rb +186 -0
  185. data/bundler/lib/bundler/settings/validator.rb +102 -0
  186. data/bundler/lib/bundler/settings.rb +588 -0
  187. data/bundler/lib/bundler/setup.rb +33 -0
  188. data/bundler/lib/bundler/shared_helpers.rb +380 -0
  189. data/bundler/lib/bundler/similarity_detector.rb +63 -0
  190. data/bundler/lib/bundler/source/gemspec.rb +18 -0
  191. data/bundler/lib/bundler/source/git/git_proxy.rb +455 -0
  192. data/bundler/lib/bundler/source/git.rb +380 -0
  193. data/bundler/lib/bundler/source/metadata.rb +62 -0
  194. data/bundler/lib/bundler/source/path/installer.rb +53 -0
  195. data/bundler/lib/bundler/source/path.rb +261 -0
  196. data/bundler/lib/bundler/source/rubygems/remote.rb +68 -0
  197. data/bundler/lib/bundler/source/rubygems.rb +516 -0
  198. data/bundler/lib/bundler/source/rubygems_aggregate.rb +68 -0
  199. data/bundler/lib/bundler/source.rb +116 -0
  200. data/bundler/lib/bundler/source_list.rb +227 -0
  201. data/bundler/lib/bundler/source_map.rb +71 -0
  202. data/bundler/lib/bundler/spec_set.rb +247 -0
  203. data/bundler/lib/bundler/stub_specification.rb +119 -0
  204. data/bundler/lib/bundler/templates/.document +1 -0
  205. data/bundler/lib/bundler/templates/Executable +27 -0
  206. data/bundler/lib/bundler/templates/Executable.bundler +109 -0
  207. data/bundler/lib/bundler/templates/Executable.standalone +14 -0
  208. data/bundler/lib/bundler/templates/Gemfile +5 -0
  209. data/bundler/lib/bundler/templates/newgem/CHANGELOG.md.tt +5 -0
  210. data/bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +84 -0
  211. data/bundler/lib/bundler/templates/newgem/Cargo.toml.tt +7 -0
  212. data/bundler/lib/bundler/templates/newgem/Gemfile.tt +26 -0
  213. data/bundler/lib/bundler/templates/newgem/LICENSE.txt.tt +21 -0
  214. data/bundler/lib/bundler/templates/newgem/README.md.tt +45 -0
  215. data/bundler/lib/bundler/templates/newgem/Rakefile.tt +67 -0
  216. data/bundler/lib/bundler/templates/newgem/bin/console.tt +11 -0
  217. data/bundler/lib/bundler/templates/newgem/bin/setup.tt +8 -0
  218. data/bundler/lib/bundler/templates/newgem/circleci/config.yml.tt +25 -0
  219. data/bundler/lib/bundler/templates/newgem/exe/newgem.tt +3 -0
  220. data/bundler/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +15 -0
  221. data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf-c.rb.tt +10 -0
  222. data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt +6 -0
  223. data/bundler/lib/bundler/templates/newgem/ext/newgem/newgem.c.tt +9 -0
  224. data/bundler/lib/bundler/templates/newgem/ext/newgem/newgem.h.tt +6 -0
  225. data/bundler/lib/bundler/templates/newgem/ext/newgem/src/lib.rs.tt +12 -0
  226. data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +37 -0
  227. data/bundler/lib/bundler/templates/newgem/gitignore.tt +23 -0
  228. data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +18 -0
  229. data/bundler/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +9 -0
  230. data/bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt +15 -0
  231. data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +51 -0
  232. data/bundler/lib/bundler/templates/newgem/rspec.tt +3 -0
  233. data/bundler/lib/bundler/templates/newgem/rubocop.yml.tt +13 -0
  234. data/bundler/lib/bundler/templates/newgem/sig/newgem.rbs.tt +8 -0
  235. data/bundler/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +11 -0
  236. data/bundler/lib/bundler/templates/newgem/spec/spec_helper.rb.tt +15 -0
  237. data/bundler/lib/bundler/templates/newgem/standard.yml.tt +3 -0
  238. data/bundler/lib/bundler/templates/newgem/test/minitest/test_helper.rb.tt +6 -0
  239. data/bundler/lib/bundler/templates/newgem/test/minitest/test_newgem.rb.tt +13 -0
  240. data/bundler/lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt +15 -0
  241. data/bundler/lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt +6 -0
  242. data/bundler/lib/bundler/ui/rg_proxy.rb +19 -0
  243. data/bundler/lib/bundler/ui/shell.rb +165 -0
  244. data/bundler/lib/bundler/ui/silent.rb +85 -0
  245. data/bundler/lib/bundler/ui.rb +9 -0
  246. data/bundler/lib/bundler/uri_credentials_filter.rb +43 -0
  247. data/bundler/lib/bundler/uri_normalizer.rb +23 -0
  248. data/bundler/lib/bundler/vendor/.document +1 -0
  249. data/bundler/lib/bundler/vendor/connection_pool/LICENSE +20 -0
  250. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +174 -0
  251. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +3 -0
  252. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +56 -0
  253. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +175 -0
  254. data/bundler/lib/bundler/vendor/fileutils/LICENSE.txt +22 -0
  255. data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +2694 -0
  256. data/bundler/lib/bundler/vendor/net-http-persistent/README.rdoc +82 -0
  257. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +41 -0
  258. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +65 -0
  259. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +79 -0
  260. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +1073 -0
  261. data/bundler/lib/bundler/vendor/pub_grub/LICENSE.txt +21 -0
  262. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/assignment.rb +20 -0
  263. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb +189 -0
  264. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/failure_writer.rb +182 -0
  265. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb +150 -0
  266. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/package.rb +43 -0
  267. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/partial_solution.rb +121 -0
  268. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb +45 -0
  269. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/solve_failure.rb +19 -0
  270. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb +60 -0
  271. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/term.rb +105 -0
  272. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb +3 -0
  273. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb +129 -0
  274. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb +411 -0
  275. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb +248 -0
  276. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_union.rb +178 -0
  277. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub.rb +31 -0
  278. data/bundler/lib/bundler/vendor/thor/LICENSE.md +20 -0
  279. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_file.rb +105 -0
  280. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +61 -0
  281. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/directory.rb +108 -0
  282. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/empty_directory.rb +143 -0
  283. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +373 -0
  284. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +130 -0
  285. data/bundler/lib/bundler/vendor/thor/lib/thor/actions.rb +340 -0
  286. data/bundler/lib/bundler/vendor/thor/lib/thor/base.rb +825 -0
  287. data/bundler/lib/bundler/vendor/thor/lib/thor/command.rb +151 -0
  288. data/bundler/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +107 -0
  289. data/bundler/lib/bundler/vendor/thor/lib/thor/error.rb +106 -0
  290. data/bundler/lib/bundler/vendor/thor/lib/thor/group.rb +281 -0
  291. data/bundler/lib/bundler/vendor/thor/lib/thor/invocation.rb +178 -0
  292. data/bundler/lib/bundler/vendor/thor/lib/thor/line_editor/basic.rb +37 -0
  293. data/bundler/lib/bundler/vendor/thor/lib/thor/line_editor/readline.rb +88 -0
  294. data/bundler/lib/bundler/vendor/thor/lib/thor/line_editor.rb +17 -0
  295. data/bundler/lib/bundler/vendor/thor/lib/thor/nested_context.rb +29 -0
  296. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/argument.rb +89 -0
  297. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb +195 -0
  298. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/option.rb +178 -0
  299. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/options.rb +293 -0
  300. data/bundler/lib/bundler/vendor/thor/lib/thor/parser.rb +4 -0
  301. data/bundler/lib/bundler/vendor/thor/lib/thor/rake_compat.rb +72 -0
  302. data/bundler/lib/bundler/vendor/thor/lib/thor/runner.rb +335 -0
  303. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +388 -0
  304. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/color.rb +115 -0
  305. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/column_printer.rb +29 -0
  306. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/html.rb +84 -0
  307. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/lcs_diff.rb +49 -0
  308. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/table_printer.rb +134 -0
  309. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/terminal.rb +42 -0
  310. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/wrapped_printer.rb +38 -0
  311. data/bundler/lib/bundler/vendor/thor/lib/thor/shell.rb +81 -0
  312. data/bundler/lib/bundler/vendor/thor/lib/thor/util.rb +285 -0
  313. data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +3 -0
  314. data/bundler/lib/bundler/vendor/thor/lib/thor.rb +663 -0
  315. data/bundler/lib/bundler/vendor/tsort/LICENSE.txt +22 -0
  316. data/bundler/lib/bundler/vendor/tsort/lib/tsort.rb +455 -0
  317. data/bundler/lib/bundler/vendor/uri/LICENSE.txt +22 -0
  318. data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +853 -0
  319. data/bundler/lib/bundler/vendor/uri/lib/uri/file.rb +100 -0
  320. data/bundler/lib/bundler/vendor/uri/lib/uri/ftp.rb +267 -0
  321. data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +1588 -0
  322. data/bundler/lib/bundler/vendor/uri/lib/uri/http.rb +125 -0
  323. data/bundler/lib/bundler/vendor/uri/lib/uri/https.rb +23 -0
  324. data/bundler/lib/bundler/vendor/uri/lib/uri/ldap.rb +261 -0
  325. data/bundler/lib/bundler/vendor/uri/lib/uri/ldaps.rb +22 -0
  326. data/bundler/lib/bundler/vendor/uri/lib/uri/mailto.rb +293 -0
  327. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +539 -0
  328. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +183 -0
  329. data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +6 -0
  330. data/bundler/lib/bundler/vendor/uri/lib/uri/ws.rb +83 -0
  331. data/bundler/lib/bundler/vendor/uri/lib/uri/wss.rb +23 -0
  332. data/bundler/lib/bundler/vendor/uri/lib/uri.rb +104 -0
  333. data/bundler/lib/bundler/vendored_fileutils.rb +4 -0
  334. data/bundler/lib/bundler/vendored_net_http.rb +8 -0
  335. data/bundler/lib/bundler/vendored_persistent.rb +11 -0
  336. data/bundler/lib/bundler/vendored_pub_grub.rb +4 -0
  337. data/bundler/lib/bundler/vendored_thor.rb +8 -0
  338. data/bundler/lib/bundler/vendored_timeout.rb +8 -0
  339. data/bundler/lib/bundler/vendored_tsort.rb +4 -0
  340. data/bundler/lib/bundler/vendored_uri.rb +4 -0
  341. data/bundler/lib/bundler/version.rb +13 -0
  342. data/bundler/lib/bundler/vlad.rb +17 -0
  343. data/bundler/lib/bundler/worker.rb +117 -0
  344. data/bundler/lib/bundler/yaml_serializer.rb +93 -0
  345. data/bundler/lib/bundler.rb +665 -0
  346. data/{test/rubygems/bogussources.rb → exe/gem} +5 -2
  347. data/exe/update_rubygems +38 -0
  348. data/hide_lib_for_update/note.txt +0 -4
  349. data/lib/rubygems/available_set.rb +12 -12
  350. data/lib/rubygems/basic_specification.rb +75 -58
  351. data/lib/rubygems/bundler_version_finder.rb +77 -0
  352. data/lib/rubygems/ci_detector.rb +75 -0
  353. data/lib/rubygems/command.rb +144 -71
  354. data/lib/rubygems/command_manager.rb +64 -27
  355. data/lib/rubygems/commands/build_command.rb +88 -17
  356. data/lib/rubygems/commands/cert_command.rb +131 -83
  357. data/lib/rubygems/commands/check_command.rb +30 -27
  358. data/lib/rubygems/commands/cleanup_command.rb +57 -40
  359. data/lib/rubygems/commands/contents_command.rb +37 -39
  360. data/lib/rubygems/commands/dependency_command.rb +53 -65
  361. data/lib/rubygems/commands/environment_command.rb +32 -16
  362. data/lib/rubygems/commands/exec_command.rb +249 -0
  363. data/lib/rubygems/commands/fetch_command.rb +36 -19
  364. data/lib/rubygems/commands/generate_index_command.rb +40 -74
  365. data/lib/rubygems/commands/help_command.rb +22 -22
  366. data/lib/rubygems/commands/info_command.rb +38 -0
  367. data/lib/rubygems/commands/install_command.rb +67 -143
  368. data/lib/rubygems/commands/list_command.rb +10 -9
  369. data/lib/rubygems/commands/lock_command.rb +12 -14
  370. data/lib/rubygems/commands/mirror_command.rb +4 -4
  371. data/lib/rubygems/commands/open_command.rb +28 -26
  372. data/lib/rubygems/commands/outdated_command.rb +6 -6
  373. data/lib/rubygems/commands/owner_command.rb +51 -27
  374. data/lib/rubygems/commands/pristine_command.rb +99 -71
  375. data/lib/rubygems/commands/push_command.rb +53 -46
  376. data/lib/rubygems/commands/query_command.rb +21 -328
  377. data/lib/rubygems/commands/rdoc_command.rb +33 -33
  378. data/lib/rubygems/commands/search_command.rb +9 -9
  379. data/lib/rubygems/commands/server_command.rb +15 -76
  380. data/lib/rubygems/commands/setup_command.rb +370 -186
  381. data/lib/rubygems/commands/signin_command.rb +34 -0
  382. data/lib/rubygems/commands/signout_command.rb +32 -0
  383. data/lib/rubygems/commands/sources_command.rb +57 -41
  384. data/lib/rubygems/commands/specification_command.rb +38 -28
  385. data/lib/rubygems/commands/stale_command.rb +6 -5
  386. data/lib/rubygems/commands/uninstall_command.rb +96 -62
  387. data/lib/rubygems/commands/unpack_command.rb +44 -53
  388. data/lib/rubygems/commands/update_command.rb +155 -99
  389. data/lib/rubygems/commands/which_command.rb +14 -17
  390. data/lib/rubygems/commands/yank_command.rb +28 -32
  391. data/lib/rubygems/compatibility.rb +13 -32
  392. data/lib/rubygems/config_file.rb +214 -119
  393. data/lib/rubygems/core_ext/kernel_gem.rb +10 -16
  394. data/lib/rubygems/core_ext/kernel_require.rb +92 -90
  395. data/lib/rubygems/core_ext/kernel_warn.rb +49 -0
  396. data/lib/rubygems/core_ext/tcpsocket_init.rb +54 -0
  397. data/lib/rubygems/defaults.rb +184 -54
  398. data/lib/rubygems/dependency.rb +75 -62
  399. data/lib/rubygems/dependency_installer.rb +74 -230
  400. data/lib/rubygems/dependency_list.rb +32 -33
  401. data/lib/rubygems/deprecate.rb +113 -17
  402. data/lib/rubygems/doctor.rb +31 -31
  403. data/lib/rubygems/errors.rb +51 -13
  404. data/lib/rubygems/exceptions.rb +65 -35
  405. data/lib/rubygems/ext/build_error.rb +3 -1
  406. data/lib/rubygems/ext/builder.rb +103 -77
  407. data/lib/rubygems/ext/cargo_builder/link_flag_converter.rb +27 -0
  408. data/lib/rubygems/ext/cargo_builder.rb +360 -0
  409. data/lib/rubygems/ext/cmake_builder.rb +6 -7
  410. data/lib/rubygems/ext/configure_builder.rb +6 -9
  411. data/lib/rubygems/ext/ext_conf_builder.rb +40 -61
  412. data/lib/rubygems/ext/rake_builder.rb +18 -21
  413. data/lib/rubygems/ext.rb +8 -7
  414. data/lib/rubygems/gem_runner.rb +19 -21
  415. data/lib/rubygems/gemcutter_utilities/webauthn_listener/response.rb +163 -0
  416. data/lib/rubygems/gemcutter_utilities/webauthn_listener.rb +105 -0
  417. data/lib/rubygems/gemcutter_utilities/webauthn_poller.rb +78 -0
  418. data/lib/rubygems/gemcutter_utilities.rb +246 -43
  419. data/lib/rubygems/install_default_message.rb +3 -3
  420. data/lib/rubygems/install_message.rb +3 -3
  421. data/lib/rubygems/install_update_options.rb +104 -98
  422. data/lib/rubygems/installer.rb +407 -225
  423. data/lib/rubygems/installer_uninstaller_utils.rb +27 -0
  424. data/lib/rubygems/local_remote_options.rb +29 -32
  425. data/lib/rubygems/name_tuple.rb +18 -23
  426. data/lib/rubygems/net/http.rb +3 -0
  427. data/lib/rubygems/net-http/LICENSE.txt +22 -0
  428. data/lib/rubygems/net-http/lib/net/http/backward.rb +40 -0
  429. data/lib/rubygems/net-http/lib/net/http/exceptions.rb +34 -0
  430. data/lib/rubygems/net-http/lib/net/http/generic_request.rb +414 -0
  431. data/lib/rubygems/net-http/lib/net/http/header.rb +981 -0
  432. data/lib/rubygems/net-http/lib/net/http/proxy_delta.rb +17 -0
  433. data/lib/rubygems/net-http/lib/net/http/request.rb +88 -0
  434. data/lib/rubygems/net-http/lib/net/http/requests.rb +425 -0
  435. data/lib/rubygems/net-http/lib/net/http/response.rb +738 -0
  436. data/lib/rubygems/net-http/lib/net/http/responses.rb +1174 -0
  437. data/lib/rubygems/net-http/lib/net/http/status.rb +84 -0
  438. data/lib/rubygems/net-http/lib/net/http.rb +2496 -0
  439. data/lib/rubygems/net-http/lib/net/https.rb +23 -0
  440. data/lib/rubygems/net-protocol/LICENSE.txt +22 -0
  441. data/lib/rubygems/net-protocol/lib/net/protocol.rb +544 -0
  442. data/lib/rubygems/openssl.rb +7 -0
  443. data/lib/rubygems/optparse/.document +1 -0
  444. data/lib/rubygems/optparse/COPYING +56 -0
  445. data/lib/rubygems/optparse/lib/optionparser.rb +2 -0
  446. data/lib/rubygems/optparse/lib/optparse/ac.rb +54 -0
  447. data/lib/rubygems/optparse/lib/optparse/date.rb +18 -0
  448. data/lib/rubygems/optparse/lib/optparse/kwargs.rb +22 -0
  449. data/lib/rubygems/optparse/lib/optparse/shellwords.rb +7 -0
  450. data/lib/rubygems/optparse/lib/optparse/time.rb +11 -0
  451. data/lib/rubygems/optparse/lib/optparse/uri.rb +7 -0
  452. data/lib/rubygems/optparse/lib/optparse/version.rb +71 -0
  453. data/lib/rubygems/optparse/lib/optparse.rb +2330 -0
  454. data/lib/rubygems/optparse.rb +3 -0
  455. data/lib/rubygems/package/digest_io.rb +5 -7
  456. data/lib/rubygems/package/file_source.rb +6 -8
  457. data/lib/rubygems/package/io_source.rb +6 -4
  458. data/lib/rubygems/package/old.rb +19 -28
  459. data/lib/rubygems/package/source.rb +1 -1
  460. data/lib/rubygems/package/tar_header.rb +114 -93
  461. data/lib/rubygems/package/tar_reader/entry.rb +116 -22
  462. data/lib/rubygems/package/tar_reader.rb +18 -40
  463. data/lib/rubygems/package/tar_writer.rb +42 -56
  464. data/lib/rubygems/package.rb +245 -145
  465. data/lib/rubygems/package_task.rb +8 -14
  466. data/lib/rubygems/path_support.rb +21 -16
  467. data/lib/rubygems/platform.rb +135 -74
  468. data/lib/rubygems/psych_tree.rb +3 -2
  469. data/lib/rubygems/query_utils.rb +349 -0
  470. data/lib/rubygems/rdoc.rb +4 -326
  471. data/lib/rubygems/remote_fetcher.rb +99 -181
  472. data/lib/rubygems/request/connection_pools.rb +31 -24
  473. data/lib/rubygems/request/http_pool.rb +6 -7
  474. data/lib/rubygems/request/https_pool.rb +2 -3
  475. data/lib/rubygems/request.rb +103 -53
  476. data/lib/rubygems/request_set/gem_dependency_api.rb +182 -190
  477. data/lib/rubygems/request_set/lockfile/parser.rb +42 -52
  478. data/lib/rubygems/request_set/lockfile/tokenizer.rb +34 -24
  479. data/lib/rubygems/request_set/lockfile.rb +32 -35
  480. data/lib/rubygems/request_set.rb +115 -71
  481. data/lib/rubygems/requirement.rb +77 -68
  482. data/lib/rubygems/resolv/LICENSE.txt +22 -0
  483. data/lib/rubygems/resolv/lib/resolv.rb +3387 -0
  484. data/lib/rubygems/resolver/activation_request.rb +34 -61
  485. data/lib/rubygems/resolver/api_set/gem_parser.rb +24 -0
  486. data/lib/rubygems/resolver/api_set.rb +40 -32
  487. data/lib/rubygems/resolver/api_specification.rb +37 -18
  488. data/lib/rubygems/resolver/best_set.rb +15 -17
  489. data/lib/rubygems/resolver/composed_set.rb +9 -11
  490. data/lib/rubygems/resolver/conflict.rb +19 -33
  491. data/lib/rubygems/resolver/current_set.rb +2 -4
  492. data/lib/rubygems/resolver/dependency_request.rb +8 -9
  493. data/lib/rubygems/resolver/git_set.rb +8 -10
  494. data/lib/rubygems/resolver/git_specification.rb +11 -13
  495. data/lib/rubygems/resolver/index_set.rb +13 -15
  496. data/lib/rubygems/resolver/index_specification.rb +42 -11
  497. data/lib/rubygems/resolver/installed_specification.rb +9 -11
  498. data/lib/rubygems/resolver/installer_set.rb +87 -45
  499. data/lib/rubygems/resolver/local_specification.rb +5 -7
  500. data/lib/rubygems/resolver/lock_set.rb +13 -15
  501. data/lib/rubygems/resolver/lock_specification.rb +13 -15
  502. data/lib/rubygems/resolver/molinillo/LICENSE +9 -0
  503. data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/resolution_state.rb +57 -0
  504. data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb +88 -0
  505. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/action.rb +36 -0
  506. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +66 -0
  507. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +62 -0
  508. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +63 -0
  509. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +61 -0
  510. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb +126 -0
  511. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/set_payload.rb +46 -0
  512. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/tag.rb +36 -0
  513. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/vertex.rb +164 -0
  514. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +110 -146
  515. data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +83 -9
  516. data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +2 -1
  517. data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/specification_provider.rb +13 -1
  518. data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/ui.rb +3 -1
  519. data/lib/rubygems/resolver/molinillo/lib/molinillo/resolution.rb +552 -172
  520. data/lib/rubygems/resolver/molinillo/lib/molinillo/resolver.rb +3 -2
  521. data/lib/rubygems/resolver/molinillo/lib/molinillo/state.rb +12 -6
  522. data/lib/rubygems/resolver/molinillo/lib/molinillo.rb +6 -5
  523. data/lib/rubygems/resolver/molinillo.rb +2 -1
  524. data/lib/rubygems/resolver/requirement_list.rb +2 -2
  525. data/lib/rubygems/resolver/set.rb +3 -5
  526. data/lib/rubygems/resolver/source_set.rb +6 -7
  527. data/lib/rubygems/resolver/spec_specification.rb +16 -4
  528. data/lib/rubygems/resolver/specification.rb +25 -10
  529. data/lib/rubygems/resolver/stats.rb +1 -0
  530. data/lib/rubygems/resolver/vendor_set.rb +6 -8
  531. data/lib/rubygems/resolver/vendor_specification.rb +6 -8
  532. data/lib/rubygems/resolver.rb +121 -72
  533. data/lib/rubygems/s3_uri_signer.rb +177 -0
  534. data/lib/rubygems/safe_marshal/elements.rb +138 -0
  535. data/lib/rubygems/safe_marshal/reader.rb +306 -0
  536. data/lib/rubygems/safe_marshal/visitors/stream_printer.rb +31 -0
  537. data/lib/rubygems/safe_marshal/visitors/to_ruby.rb +385 -0
  538. data/lib/rubygems/safe_marshal/visitors/visitor.rb +74 -0
  539. data/lib/rubygems/safe_marshal.rb +74 -0
  540. data/lib/rubygems/safe_yaml.rb +36 -0
  541. data/lib/rubygems/security/policies.rb +49 -51
  542. data/lib/rubygems/security/policy.rb +46 -53
  543. data/lib/rubygems/security/signer.rb +86 -29
  544. data/lib/rubygems/security/trust_dir.rb +22 -24
  545. data/lib/rubygems/security.rb +101 -82
  546. data/lib/rubygems/security_option.rb +43 -0
  547. data/lib/rubygems/shellwords.rb +3 -0
  548. data/lib/rubygems/source/git.rb +40 -42
  549. data/lib/rubygems/source/installed.rb +5 -9
  550. data/lib/rubygems/source/local.rb +30 -33
  551. data/lib/rubygems/source/lock.rb +10 -10
  552. data/lib/rubygems/source/specific_file.rb +7 -9
  553. data/lib/rubygems/source/vendor.rb +3 -7
  554. data/lib/rubygems/source.rb +78 -68
  555. data/lib/rubygems/source_list.rb +11 -15
  556. data/lib/rubygems/spec_fetcher.rb +71 -83
  557. data/lib/rubygems/specification.rb +833 -1115
  558. data/lib/rubygems/specification_policy.rb +538 -0
  559. data/lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA.pem +21 -0
  560. data/lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem +21 -0
  561. data/lib/rubygems/stub_specification.rb +55 -57
  562. data/lib/rubygems/text.rb +39 -27
  563. data/lib/rubygems/timeout/LICENSE.txt +22 -0
  564. data/lib/rubygems/timeout/lib/timeout.rb +199 -0
  565. data/lib/rubygems/timeout.rb +3 -0
  566. data/lib/rubygems/tsort/.document +1 -0
  567. data/lib/rubygems/tsort/LICENSE.txt +22 -0
  568. data/lib/rubygems/tsort/lib/tsort.rb +455 -0
  569. data/lib/rubygems/tsort.rb +3 -0
  570. data/lib/rubygems/uninstaller.rb +150 -87
  571. data/lib/rubygems/unknown_command_spell_checker.rb +21 -0
  572. data/lib/rubygems/update_suggestion.rb +56 -0
  573. data/lib/rubygems/uri.rb +126 -0
  574. data/lib/rubygems/uri_formatter.rb +4 -7
  575. data/lib/rubygems/user_interaction.rb +92 -146
  576. data/lib/rubygems/util/licenses.rb +712 -317
  577. data/lib/rubygems/util/list.rb +5 -2
  578. data/lib/rubygems/util.rb +58 -75
  579. data/lib/rubygems/validator.rb +26 -48
  580. data/lib/rubygems/version.rb +106 -56
  581. data/lib/rubygems/version_option.rb +22 -14
  582. data/lib/rubygems/yaml_serializer.rb +93 -0
  583. data/lib/rubygems.rb +427 -361
  584. data/rubygems-update.gemspec +38 -0
  585. data/setup.rb +13 -27
  586. metadata +500 -363
  587. data/.autotest +0 -71
  588. data/.document +0 -5
  589. data/.travis.yml +0 -46
  590. data/CONTRIBUTING.rdoc +0 -129
  591. data/CVE-2013-4287.txt +0 -35
  592. data/CVE-2013-4363.txt +0 -45
  593. data/CVE-2015-3900.txt +0 -40
  594. data/History.txt +0 -3105
  595. data/MAINTAINERS.md +0 -5
  596. data/POLICIES.rdoc +0 -61
  597. data/README.rdoc +0 -54
  598. data/Rakefile +0 -449
  599. data/UPGRADING.rdoc +0 -92
  600. data/appveyor.yml +0 -36
  601. data/bin/gem +0 -25
  602. data/bin/update_rubygems +0 -37
  603. data/lib/gauntlet_rubygems.rb +0 -51
  604. data/lib/rubygems/indexer.rb +0 -434
  605. data/lib/rubygems/installer_test_case.rb +0 -194
  606. data/lib/rubygems/mock_gem_ui.rb +0 -89
  607. data/lib/rubygems/package/tar_test_case.rb +0 -147
  608. data/lib/rubygems/psych_additions.rb +0 -10
  609. data/lib/rubygems/server.rb +0 -869
  610. data/lib/rubygems/source_local.rb +0 -6
  611. data/lib/rubygems/source_specific_file.rb +0 -5
  612. data/lib/rubygems/ssl_certs/AddTrustExternalCARoot-2048.pem +0 -25
  613. data/lib/rubygems/ssl_certs/AddTrustExternalCARoot.pem +0 -32
  614. data/lib/rubygems/ssl_certs/Class3PublicPrimaryCertificationAuthority.pem +0 -14
  615. data/lib/rubygems/ssl_certs/DigiCertHighAssuranceEVRootCA.pem +0 -23
  616. data/lib/rubygems/ssl_certs/EntrustnetSecureServerCertificationAuthority.pem +0 -28
  617. data/lib/rubygems/ssl_certs/GeoTrustGlobalCA.pem +0 -20
  618. data/lib/rubygems/syck_hack.rb +0 -77
  619. data/lib/rubygems/test_case.rb +0 -1496
  620. data/lib/rubygems/test_utilities.rb +0 -384
  621. data/lib/ubygems.rb +0 -11
  622. data/test/rubygems/alternate_cert.pem +0 -18
  623. data/test/rubygems/alternate_cert_32.pem +0 -18
  624. data/test/rubygems/alternate_key.pem +0 -27
  625. data/test/rubygems/bad_rake.rb +0 -2
  626. data/test/rubygems/ca_cert.pem +0 -68
  627. data/test/rubygems/child_cert.pem +0 -18
  628. data/test/rubygems/child_cert_32.pem +0 -18
  629. data/test/rubygems/child_key.pem +0 -27
  630. data/test/rubygems/client.pem +0 -49
  631. data/test/rubygems/data/gem-private_key.pem +0 -27
  632. data/test/rubygems/data/gem-public_cert.pem +0 -20
  633. data/test/rubygems/data/null-type.gemspec.rz +0 -0
  634. data/test/rubygems/encrypted_private_key.pem +0 -30
  635. data/test/rubygems/expired_cert.pem +0 -18
  636. data/test/rubygems/fake_certlib/openssl.rb +0 -8
  637. data/test/rubygems/fix_openssl_warnings.rb +0 -13
  638. data/test/rubygems/foo/discover.rb +0 -1
  639. data/test/rubygems/future_cert.pem +0 -18
  640. data/test/rubygems/future_cert_32.pem +0 -18
  641. data/test/rubygems/good_rake.rb +0 -2
  642. data/test/rubygems/grandchild_cert.pem +0 -18
  643. data/test/rubygems/grandchild_cert_32.pem +0 -18
  644. data/test/rubygems/grandchild_key.pem +0 -27
  645. data/test/rubygems/invalid_client.pem +0 -49
  646. data/test/rubygems/invalid_issuer_cert.pem +0 -18
  647. data/test/rubygems/invalid_issuer_cert_32.pem +0 -18
  648. data/test/rubygems/invalid_key.pem +0 -27
  649. data/test/rubygems/invalid_signer_cert.pem +0 -18
  650. data/test/rubygems/invalid_signer_cert_32.pem +0 -18
  651. data/test/rubygems/invalidchild_cert.pem +0 -18
  652. data/test/rubygems/invalidchild_cert_32.pem +0 -18
  653. data/test/rubygems/invalidchild_key.pem +0 -27
  654. data/test/rubygems/plugin/exception/rubygems_plugin.rb +0 -3
  655. data/test/rubygems/plugin/load/rubygems_plugin.rb +0 -4
  656. data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +0 -3
  657. data/test/rubygems/private_key.pem +0 -27
  658. data/test/rubygems/public_cert.pem +0 -18
  659. data/test/rubygems/public_cert_32.pem +0 -18
  660. data/test/rubygems/public_key.pem +0 -9
  661. data/test/rubygems/rubygems/commands/crash_command.rb +0 -6
  662. data/test/rubygems/rubygems_plugin.rb +0 -22
  663. data/test/rubygems/sff/discover.rb +0 -1
  664. data/test/rubygems/simple_gem.rb +0 -67
  665. data/test/rubygems/specifications/bar-0.0.2.gemspec +0 -9
  666. data/test/rubygems/specifications/foo-0.0.1-x86-mswin32.gemspec +0 -0
  667. data/test/rubygems/ssl_cert.pem +0 -19
  668. data/test/rubygems/ssl_key.pem +0 -15
  669. data/test/rubygems/test_bundled_ca.rb +0 -59
  670. data/test/rubygems/test_config.rb +0 -24
  671. data/test/rubygems/test_deprecate.rb +0 -77
  672. data/test/rubygems/test_gem.rb +0 -1718
  673. data/test/rubygems/test_gem_available_set.rb +0 -130
  674. data/test/rubygems/test_gem_command.rb +0 -248
  675. data/test/rubygems/test_gem_command_manager.rb +0 -264
  676. data/test/rubygems/test_gem_commands_build_command.rb +0 -121
  677. data/test/rubygems/test_gem_commands_cert_command.rb +0 -671
  678. data/test/rubygems/test_gem_commands_check_command.rb +0 -69
  679. data/test/rubygems/test_gem_commands_cleanup_command.rb +0 -197
  680. data/test/rubygems/test_gem_commands_contents_command.rb +0 -240
  681. data/test/rubygems/test_gem_commands_dependency_command.rb +0 -230
  682. data/test/rubygems/test_gem_commands_environment_command.rb +0 -154
  683. data/test/rubygems/test_gem_commands_fetch_command.rb +0 -127
  684. data/test/rubygems/test_gem_commands_generate_index_command.rb +0 -51
  685. data/test/rubygems/test_gem_commands_help_command.rb +0 -75
  686. data/test/rubygems/test_gem_commands_install_command.rb +0 -1007
  687. data/test/rubygems/test_gem_commands_list_command.rb +0 -34
  688. data/test/rubygems/test_gem_commands_lock_command.rb +0 -69
  689. data/test/rubygems/test_gem_commands_mirror.rb +0 -20
  690. data/test/rubygems/test_gem_commands_open_command.rb +0 -70
  691. data/test/rubygems/test_gem_commands_outdated_command.rb +0 -33
  692. data/test/rubygems/test_gem_commands_owner_command.rb +0 -205
  693. data/test/rubygems/test_gem_commands_pristine_command.rb +0 -491
  694. data/test/rubygems/test_gem_commands_push_command.rb +0 -330
  695. data/test/rubygems/test_gem_commands_query_command.rb +0 -657
  696. data/test/rubygems/test_gem_commands_search_command.rb +0 -18
  697. data/test/rubygems/test_gem_commands_server_command.rb +0 -60
  698. data/test/rubygems/test_gem_commands_setup_command.rb +0 -136
  699. data/test/rubygems/test_gem_commands_sources_command.rb +0 -249
  700. data/test/rubygems/test_gem_commands_specification_command.rb +0 -251
  701. data/test/rubygems/test_gem_commands_stale_command.rb +0 -43
  702. data/test/rubygems/test_gem_commands_uninstall_command.rb +0 -283
  703. data/test/rubygems/test_gem_commands_unpack_command.rb +0 -209
  704. data/test/rubygems/test_gem_commands_update_command.rb +0 -514
  705. data/test/rubygems/test_gem_commands_which_command.rb +0 -87
  706. data/test/rubygems/test_gem_commands_yank_command.rb +0 -100
  707. data/test/rubygems/test_gem_config_file.rb +0 -491
  708. data/test/rubygems/test_gem_dependency.rb +0 -362
  709. data/test/rubygems/test_gem_dependency_installer.rb +0 -1235
  710. data/test/rubygems/test_gem_dependency_list.rb +0 -260
  711. data/test/rubygems/test_gem_dependency_resolution_error.rb +0 -29
  712. data/test/rubygems/test_gem_doctor.rb +0 -169
  713. data/test/rubygems/test_gem_ext_builder.rb +0 -341
  714. data/test/rubygems/test_gem_ext_cmake_builder.rb +0 -87
  715. data/test/rubygems/test_gem_ext_configure_builder.rb +0 -87
  716. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +0 -211
  717. data/test/rubygems/test_gem_ext_rake_builder.rb +0 -65
  718. data/test/rubygems/test_gem_gem_runner.rb +0 -69
  719. data/test/rubygems/test_gem_gemcutter_utilities.rb +0 -235
  720. data/test/rubygems/test_gem_impossible_dependencies_error.rb +0 -62
  721. data/test/rubygems/test_gem_indexer.rb +0 -367
  722. data/test/rubygems/test_gem_install_update_options.rb +0 -197
  723. data/test/rubygems/test_gem_installer.rb +0 -1552
  724. data/test/rubygems/test_gem_local_remote_options.rb +0 -134
  725. data/test/rubygems/test_gem_name_tuple.rb +0 -45
  726. data/test/rubygems/test_gem_package.rb +0 -876
  727. data/test/rubygems/test_gem_package_old.rb +0 -90
  728. data/test/rubygems/test_gem_package_tar_header.rb +0 -147
  729. data/test/rubygems/test_gem_package_tar_reader.rb +0 -90
  730. data/test/rubygems/test_gem_package_tar_reader_entry.rb +0 -142
  731. data/test/rubygems/test_gem_package_tar_writer.rb +0 -264
  732. data/test/rubygems/test_gem_package_task.rb +0 -84
  733. data/test/rubygems/test_gem_path_support.rb +0 -121
  734. data/test/rubygems/test_gem_platform.rb +0 -308
  735. data/test/rubygems/test_gem_rdoc.rb +0 -270
  736. data/test/rubygems/test_gem_remote_fetcher.rb +0 -1051
  737. data/test/rubygems/test_gem_request.rb +0 -363
  738. data/test/rubygems/test_gem_request_connection_pools.rb +0 -130
  739. data/test/rubygems/test_gem_request_set.rb +0 -595
  740. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +0 -831
  741. data/test/rubygems/test_gem_request_set_lockfile.rb +0 -470
  742. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +0 -549
  743. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +0 -306
  744. data/test/rubygems/test_gem_requirement.rb +0 -387
  745. data/test/rubygems/test_gem_resolver.rb +0 -715
  746. data/test/rubygems/test_gem_resolver_activation_request.rb +0 -74
  747. data/test/rubygems/test_gem_resolver_api_set.rb +0 -209
  748. data/test/rubygems/test_gem_resolver_api_specification.rb +0 -145
  749. data/test/rubygems/test_gem_resolver_best_set.rb +0 -138
  750. data/test/rubygems/test_gem_resolver_composed_set.rb +0 -46
  751. data/test/rubygems/test_gem_resolver_conflict.rb +0 -88
  752. data/test/rubygems/test_gem_resolver_dependency_request.rb +0 -85
  753. data/test/rubygems/test_gem_resolver_git_set.rb +0 -190
  754. data/test/rubygems/test_gem_resolver_git_specification.rb +0 -114
  755. data/test/rubygems/test_gem_resolver_index_set.rb +0 -90
  756. data/test/rubygems/test_gem_resolver_index_specification.rb +0 -90
  757. data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -50
  758. data/test/rubygems/test_gem_resolver_installer_set.rb +0 -258
  759. data/test/rubygems/test_gem_resolver_local_specification.rb +0 -46
  760. data/test/rubygems/test_gem_resolver_lock_set.rb +0 -64
  761. data/test/rubygems/test_gem_resolver_lock_specification.rb +0 -100
  762. data/test/rubygems/test_gem_resolver_requirement_list.rb +0 -21
  763. data/test/rubygems/test_gem_resolver_specification.rb +0 -65
  764. data/test/rubygems/test_gem_resolver_vendor_set.rb +0 -84
  765. data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -84
  766. data/test/rubygems/test_gem_security.rb +0 -307
  767. data/test/rubygems/test_gem_security_policy.rb +0 -541
  768. data/test/rubygems/test_gem_security_signer.rb +0 -209
  769. data/test/rubygems/test_gem_security_trust_dir.rb +0 -101
  770. data/test/rubygems/test_gem_server.rb +0 -409
  771. data/test/rubygems/test_gem_silent_ui.rb +0 -117
  772. data/test/rubygems/test_gem_source.rb +0 -242
  773. data/test/rubygems/test_gem_source_fetch_problem.rb +0 -20
  774. data/test/rubygems/test_gem_source_git.rb +0 -309
  775. data/test/rubygems/test_gem_source_installed.rb +0 -37
  776. data/test/rubygems/test_gem_source_list.rb +0 -118
  777. data/test/rubygems/test_gem_source_local.rb +0 -107
  778. data/test/rubygems/test_gem_source_lock.rb +0 -115
  779. data/test/rubygems/test_gem_source_specific_file.rb +0 -76
  780. data/test/rubygems/test_gem_source_vendor.rb +0 -32
  781. data/test/rubygems/test_gem_spec_fetcher.rb +0 -311
  782. data/test/rubygems/test_gem_specification.rb +0 -3519
  783. data/test/rubygems/test_gem_stream_ui.rb +0 -239
  784. data/test/rubygems/test_gem_stub_specification.rb +0 -217
  785. data/test/rubygems/test_gem_text.rb +0 -77
  786. data/test/rubygems/test_gem_uninstaller.rb +0 -485
  787. data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +0 -33
  788. data/test/rubygems/test_gem_uri_formatter.rb +0 -29
  789. data/test/rubygems/test_gem_util.rb +0 -40
  790. data/test/rubygems/test_gem_validator.rb +0 -46
  791. data/test/rubygems/test_gem_version.rb +0 -222
  792. data/test/rubygems/test_gem_version_option.rb +0 -152
  793. data/test/rubygems/test_kernel.rb +0 -86
  794. data/test/rubygems/test_require.rb +0 -322
  795. data/test/rubygems/wrong_key_cert.pem +0 -18
  796. data/test/rubygems/wrong_key_cert_32.pem +0 -18
  797. data/util/CL2notes +0 -56
  798. data/util/create_certs.rb +0 -157
  799. data/util/create_encrypted_key.rb +0 -17
  800. data/util/generate_spdx_license_list.rb +0 -51
  801. data/util/update_bundled_ca_certificates.rb +0 -118
@@ -1,1007 +0,0 @@
1
- # frozen_string_literal: true
2
- require 'rubygems/test_case'
3
- require 'rubygems/commands/install_command'
4
- require 'rubygems/request_set'
5
- require 'rubygems/rdoc'
6
-
7
- class TestGemCommandsInstallCommand < Gem::TestCase
8
-
9
- def setup
10
- super
11
- common_installer_setup
12
-
13
- @cmd = Gem::Commands::InstallCommand.new
14
- @cmd.options[:document] = []
15
-
16
- @gemdeps = "tmp_install_gemdeps"
17
- @orig_args = Gem::Command.build_args
18
-
19
- common_installer_setup
20
- end
21
-
22
- def teardown
23
- super
24
-
25
- common_installer_teardown
26
-
27
- Gem::Command.build_args = @orig_args
28
- File.unlink @gemdeps if File.file? @gemdeps
29
- File.unlink "#{@gemdeps}.lock" if File.file? "#{@gemdeps}.lock"
30
- end
31
-
32
- def test_execute_exclude_prerelease
33
- spec_fetcher do |fetcher|
34
- fetcher.gem 'a', 2
35
- fetcher.gem 'a', '2.pre'
36
- end
37
-
38
- @cmd.options[:args] = %w[a]
39
-
40
- use_ui @ui do
41
- assert_raises Gem::MockGemUi::SystemExitException, @ui.error do
42
- @cmd.execute
43
- end
44
- end
45
-
46
- assert_equal %w[a-2], @cmd.installed_specs.map { |spec| spec.full_name }
47
- end
48
-
49
- def test_execute_explicit_version_includes_prerelease
50
- specs = spec_fetcher do |fetcher|
51
- fetcher.gem 'a', 2
52
- fetcher.gem 'a', '2.a'
53
- end
54
-
55
- a2_pre = specs['a-2.a']
56
-
57
- @cmd.handle_options [a2_pre.name, '--version', a2_pre.version.to_s,
58
- "--no-ri", "--no-rdoc"]
59
- assert @cmd.options[:prerelease]
60
- assert @cmd.options[:version].satisfied_by?(a2_pre.version)
61
-
62
- use_ui @ui do
63
- assert_raises Gem::MockGemUi::SystemExitException, @ui.error do
64
- @cmd.execute
65
- end
66
- end
67
-
68
- assert_equal %w[a-2.a], @cmd.installed_specs.map { |spec| spec.full_name }
69
- end
70
-
71
- def test_execute_local
72
- specs = spec_fetcher do |fetcher|
73
- fetcher.gem 'a', 2
74
- end
75
-
76
- @cmd.options[:domain] = :local
77
-
78
- FileUtils.mv specs['a-2'].cache_file, @tempdir
79
-
80
- @cmd.options[:args] = %w[a]
81
-
82
- use_ui @ui do
83
- orig_dir = Dir.pwd
84
- begin
85
- Dir.chdir @tempdir
86
- assert_raises Gem::MockGemUi::SystemExitException, @ui.error do
87
- @cmd.execute
88
- end
89
- ensure
90
- Dir.chdir orig_dir
91
- end
92
- end
93
-
94
- assert_equal %w[a-2], @cmd.installed_specs.map { |spec| spec.full_name }
95
-
96
- assert_match "1 gem installed", @ui.output
97
- end
98
-
99
- def test_execute_no_user_install
100
- skip 'skipped on MS Windows (chmod has no effect)' if win_platform?
101
-
102
- specs = spec_fetcher do |fetcher|
103
- fetcher.gem 'a', 2
104
- end
105
-
106
- @cmd.options[:user_install] = false
107
-
108
- FileUtils.mv specs['a-2'].cache_file, @tempdir
109
-
110
- @cmd.options[:args] = %w[a]
111
-
112
- use_ui @ui do
113
- orig_dir = Dir.pwd
114
- begin
115
- FileUtils.chmod 0755, @userhome
116
- FileUtils.chmod 0555, @gemhome
117
-
118
- Dir.chdir @tempdir
119
- assert_raises Gem::FilePermissionError do
120
- @cmd.execute
121
- end
122
- ensure
123
- Dir.chdir orig_dir
124
- FileUtils.chmod 0755, @gemhome
125
- end
126
- end
127
- end
128
-
129
- def test_execute_local_missing
130
- spec_fetcher
131
-
132
- @cmd.options[:domain] = :local
133
-
134
- @cmd.options[:args] = %w[no_such_gem]
135
-
136
- use_ui @ui do
137
- e = assert_raises Gem::MockGemUi::TermError do
138
- @cmd.execute
139
- end
140
- assert_equal 2, e.exit_code
141
- end
142
-
143
- # HACK no repository was checked
144
- assert_match(/ould not find a valid gem 'no_such_gem'/, @ui.error)
145
- end
146
-
147
- def test_execute_no_gem
148
- @cmd.options[:args] = %w[]
149
-
150
- assert_raises Gem::CommandLineError do
151
- @cmd.execute
152
- end
153
- end
154
-
155
- def test_execute_nonexistent
156
- spec_fetcher
157
-
158
- @cmd.options[:args] = %w[nonexistent]
159
-
160
- use_ui @ui do
161
- e = assert_raises Gem::MockGemUi::TermError do
162
- @cmd.execute
163
- end
164
- assert_equal 2, e.exit_code
165
- end
166
-
167
- assert_match(/ould not find a valid gem 'nonexistent'/, @ui.error)
168
- end
169
-
170
- def test_execute_bad_source
171
- spec_fetcher
172
-
173
- # This is needed because we need to exercise the cache path
174
- # within SpecFetcher
175
- path = File.join Gem.spec_cache_dir, "not-there.nothing%80", "latest_specs.4.8"
176
-
177
- FileUtils.mkdir_p File.dirname(path)
178
-
179
- File.open path, "w" do |f|
180
- f.write Marshal.dump([])
181
- end
182
-
183
- Gem.sources.replace ["http://not-there.nothing"]
184
-
185
- @cmd.options[:args] = %w[nonexistent]
186
-
187
- use_ui @ui do
188
- e = assert_raises Gem::MockGemUi::TermError do
189
- @cmd.execute
190
- end
191
- assert_equal 2, e.exit_code
192
- end
193
-
194
- errs = @ui.error.split("\n")
195
-
196
- assert_match(/ould not find a valid gem 'nonexistent'/, errs.shift)
197
- assert_match(%r!Unable to download data from http://not-there.nothing!, errs.shift)
198
- end
199
-
200
- def test_execute_nonexistent_hint_disabled
201
- misspelled = "nonexistent_with_hint"
202
- correctly_spelled = "non_existent_with_hint"
203
-
204
- spec_fetcher do |fetcher|
205
- fetcher.spec correctly_spelled, 2
206
- end
207
-
208
- @cmd.options[:args] = [misspelled]
209
- @cmd.options[:suggest_alternate] = false
210
-
211
- use_ui @ui do
212
- e = assert_raises Gem::MockGemUi::TermError do
213
- @cmd.execute
214
- end
215
-
216
- assert_equal 2, e.exit_code
217
- end
218
-
219
- expected = <<-EXPECTED
220
- ERROR: Could not find a valid gem 'nonexistent_with_hint' (>= 0) in any repository
221
- EXPECTED
222
-
223
- assert_equal expected, @ui.error
224
- end
225
-
226
- def test_execute_nonexistent_with_hint
227
- misspelled = "nonexistent_with_hint"
228
- correctly_spelled = "non_existent_with_hint"
229
-
230
- spec_fetcher do |fetcher|
231
- fetcher.spec correctly_spelled, 2
232
- end
233
-
234
- @cmd.options[:args] = [misspelled]
235
-
236
- use_ui @ui do
237
- e = assert_raises Gem::MockGemUi::TermError do
238
- @cmd.execute
239
- end
240
-
241
- assert_equal 2, e.exit_code
242
- end
243
-
244
- expected = "ERROR: Could not find a valid gem 'nonexistent_with_hint' (>= 0) in any repository
245
- ERROR: Possible alternatives: non_existent_with_hint
246
- "
247
-
248
- assert_equal expected, @ui.error
249
- end
250
-
251
- def test_execute_nonexistent_with_dashes
252
- misspelled = "non-existent_with-hint"
253
- correctly_spelled = "nonexistent-with_hint"
254
-
255
- spec_fetcher do |fetcher|
256
- fetcher.download correctly_spelled, 2
257
- end
258
-
259
- @cmd.options[:args] = [misspelled]
260
-
261
- use_ui @ui do
262
- e = assert_raises Gem::MockGemUi::TermError do
263
- @cmd.execute
264
- end
265
-
266
- assert_equal 2, e.exit_code
267
- end
268
-
269
- expected = [
270
- "ERROR: Could not find a valid gem 'non-existent_with-hint' (>= 0) in any repository",
271
- "ERROR: Possible alternatives: nonexistent-with_hint"
272
- ]
273
-
274
- output = @ui.error.split "\n"
275
-
276
- assert_equal expected, output
277
- end
278
-
279
- def test_execute_conflicting_install_options
280
- @cmd.options[:user_install] = true
281
- @cmd.options[:install_dir] = "whatever"
282
-
283
- use_ui @ui do
284
- assert_raises Gem::MockGemUi::TermError do
285
- @cmd.execute
286
- end
287
- end
288
-
289
- expected = "ERROR: Use --install-dir or --user-install but not both\n"
290
-
291
- assert_equal expected, @ui.error
292
- end
293
-
294
- def test_execute_prerelease_skipped_when_no_flag_set
295
- spec_fetcher do |fetcher|
296
- fetcher.gem 'a', 1
297
- fetcher.gem 'a', '3.a'
298
- end
299
-
300
- @cmd.options[:prerelease] = false
301
- @cmd.options[:args] = %w[a]
302
-
303
- use_ui @ui do
304
- assert_raises Gem::MockGemUi::SystemExitException, @ui.error do
305
- @cmd.execute
306
- end
307
- end
308
-
309
- assert_equal %w[a-1], @cmd.installed_specs.map { |spec| spec.full_name }
310
- end
311
-
312
- def test_execute_prerelease_wins_over_previous_ver
313
- spec_fetcher do |fetcher|
314
- fetcher.download 'a', 1
315
- fetcher.download 'a', '2.a'
316
- end
317
-
318
- @cmd.options[:prerelease] = true
319
- @cmd.options[:args] = %w[a]
320
-
321
- use_ui @ui do
322
- assert_raises Gem::MockGemUi::SystemExitException, @ui.error do
323
- @cmd.execute
324
- end
325
- end
326
-
327
- assert_equal %w[a-2.a], @cmd.installed_specs.map { |spec| spec.full_name }
328
- end
329
-
330
- def test_execute_prerelease_skipped_when_non_pre_available
331
- spec_fetcher do |fetcher|
332
- fetcher.gem 'a', '2.pre'
333
- fetcher.gem 'a', 2
334
- end
335
-
336
- @cmd.options[:prerelease] = true
337
- @cmd.options[:args] = %w[a]
338
-
339
- use_ui @ui do
340
- assert_raises Gem::MockGemUi::SystemExitException, @ui.error do
341
- @cmd.execute
342
- end
343
- end
344
-
345
- assert_equal %w[a-2], @cmd.installed_specs.map { |spec| spec.full_name }
346
- end
347
-
348
- def test_execute_rdoc
349
- skip if RUBY_VERSION <= "1.8.7"
350
- specs = spec_fetcher do |fetcher|
351
- fetcher.gem 'a', 2
352
- end
353
-
354
- Gem.done_installing(&Gem::RDoc.method(:generation_hook))
355
-
356
- @cmd.options[:document] = %w[rdoc ri]
357
- @cmd.options[:domain] = :local
358
-
359
- a2 = specs['a-2']
360
- FileUtils.mv a2.cache_file, @tempdir
361
-
362
- @cmd.options[:args] = %w[a]
363
-
364
- use_ui @ui do
365
- # Don't use Dir.chdir with a block, it warnings a lot because
366
- # of a downstream Dir.chdir with a block
367
- old = Dir.getwd
368
-
369
- begin
370
- Dir.chdir @tempdir
371
- assert_raises Gem::MockGemUi::SystemExitException, @ui.error do
372
- @cmd.execute
373
- end
374
- ensure
375
- Dir.chdir old
376
- end
377
- end
378
-
379
- wait_for_child_process_to_exit
380
-
381
- assert_path_exists File.join(a2.doc_dir, 'ri')
382
- assert_path_exists File.join(a2.doc_dir, 'rdoc')
383
- end
384
-
385
- def test_execute_saves_build_args
386
- specs = spec_fetcher do |fetcher|
387
- fetcher.gem 'a', 2
388
- end
389
-
390
- args = %w!--with-awesome=true --more-awesome=yes!
391
-
392
- Gem::Command.build_args = args
393
-
394
- a2 = specs['a-2']
395
- FileUtils.mv a2.cache_file, @tempdir
396
-
397
- @cmd.options[:domain] = :local
398
-
399
- @cmd.options[:args] = %w[a]
400
-
401
- use_ui @ui do
402
- # Don't use Dir.chdir with a block, it warnings a lot because
403
- # of a downstream Dir.chdir with a block
404
- old = Dir.getwd
405
-
406
- begin
407
- Dir.chdir @tempdir
408
- assert_raises Gem::MockGemUi::SystemExitException, @ui.error do
409
- @cmd.execute
410
- end
411
- ensure
412
- Dir.chdir old
413
- end
414
- end
415
-
416
- path = a2.build_info_file
417
- assert_path_exists path
418
-
419
- assert_equal args, a2.build_args
420
- end
421
-
422
-
423
- def test_execute_remote
424
- spec_fetcher do |fetcher|
425
- fetcher.gem 'a', 2
426
- end
427
-
428
- @cmd.options[:args] = %w[a]
429
-
430
- use_ui @ui do
431
- assert_raises Gem::MockGemUi::SystemExitException, @ui.error do
432
- @cmd.execute
433
- end
434
- end
435
-
436
- assert_equal %w[a-2], @cmd.installed_specs.map { |spec| spec.full_name }
437
-
438
- assert_match "1 gem installed", @ui.output
439
- end
440
-
441
- def test_execute_with_invalid_gem_file
442
- FileUtils.touch("a.gem")
443
-
444
- spec_fetcher do |fetcher|
445
- fetcher.gem 'a', 2
446
- end
447
-
448
- @cmd.options[:args] = %w[a]
449
-
450
- use_ui @ui do
451
- assert_raises Gem::MockGemUi::SystemExitException, @ui.error do
452
- @cmd.execute
453
- end
454
- end
455
-
456
- assert_equal %w[a-2], @cmd.installed_specs.map { |spec| spec.full_name }
457
-
458
- assert_match "1 gem installed", @ui.output
459
- end
460
-
461
- def test_execute_remote_ignores_files
462
- specs = spec_fetcher do |fetcher|
463
- fetcher.gem 'a', 1
464
- fetcher.gem 'a', 2
465
- end
466
-
467
- @cmd.options[:domain] = :remote
468
-
469
- a1 = specs['a-1']
470
- a2 = specs['a-2']
471
-
472
- FileUtils.mv a2.cache_file, @tempdir
473
-
474
- @fetcher.data["#{@gem_repo}gems/#{a2.file_name}"] =
475
- read_binary(a1.cache_file)
476
-
477
- @cmd.options[:args] = [a2.name]
478
-
479
- gemdir = File.join @gemhome, 'specifications'
480
-
481
- a2_gemspec = File.join(gemdir, "a-2.gemspec")
482
- a1_gemspec = File.join(gemdir, "a-1.gemspec")
483
-
484
- FileUtils.rm_rf a1_gemspec
485
- FileUtils.rm_rf a2_gemspec
486
-
487
- start = Dir["#{gemdir}/*"]
488
-
489
- use_ui @ui do
490
- Dir.chdir @tempdir do
491
- assert_raises Gem::MockGemUi::SystemExitException, @ui.error do
492
- @cmd.execute
493
- end
494
- end
495
- end
496
-
497
- assert_equal %w[a-1], @cmd.installed_specs.map { |spec| spec.full_name }
498
-
499
- assert_match "1 gem installed", @ui.output
500
-
501
- fin = Dir["#{gemdir}/*"]
502
-
503
- assert_equal [a1_gemspec], fin - start
504
- end
505
-
506
- def test_execute_two
507
- specs = spec_fetcher do |fetcher|
508
- fetcher.gem 'a', 2
509
- fetcher.gem 'b', 2
510
- end
511
-
512
- FileUtils.mv specs['a-2'].cache_file, @tempdir
513
- FileUtils.mv specs['b-2'].cache_file, @tempdir
514
-
515
- @cmd.options[:domain] = :local
516
-
517
- @cmd.options[:args] = %w[a b]
518
-
519
- use_ui @ui do
520
- orig_dir = Dir.pwd
521
- begin
522
- Dir.chdir @tempdir
523
- assert_raises Gem::MockGemUi::SystemExitException, @ui.error do
524
- @cmd.execute
525
- end
526
- ensure
527
- Dir.chdir orig_dir
528
- end
529
- end
530
-
531
- assert_equal %w[a-2 b-2], @cmd.installed_specs.map { |spec| spec.full_name }
532
-
533
- assert_match "2 gems installed", @ui.output
534
- end
535
-
536
- def test_execute_two_version
537
- @cmd.options[:args] = %w[a b]
538
- @cmd.options[:version] = Gem::Requirement.new("> 1")
539
-
540
- use_ui @ui do
541
- e = assert_raises Gem::MockGemUi::TermError do
542
- @cmd.execute
543
- end
544
-
545
- assert_equal 1, e.exit_code
546
- end
547
-
548
- assert_empty @cmd.installed_specs
549
-
550
- msg = "ERROR: Can't use --version w/ multiple gems. Use name:ver instead."
551
-
552
- assert_empty @ui.output
553
- assert_equal msg, @ui.error.chomp
554
- end
555
-
556
- def test_execute_conservative
557
- spec_fetcher do |fetcher|
558
- fetcher.download 'b', 2
559
-
560
- fetcher.gem 'a', 2
561
- end
562
-
563
- @cmd.options[:conservative] = true
564
-
565
- @cmd.options[:args] = %w[a b]
566
-
567
- use_ui @ui do
568
- orig_dir = Dir.pwd
569
- begin
570
- Dir.chdir @tempdir
571
- assert_raises Gem::MockGemUi::SystemExitException do
572
- @cmd.execute
573
- end
574
- ensure
575
- Dir.chdir orig_dir
576
- end
577
- end
578
-
579
- assert_equal %w[b-2], @cmd.installed_specs.map { |spec| spec.full_name }
580
-
581
- assert_equal "", @ui.error
582
- assert_match "1 gem installed", @ui.output
583
- end
584
-
585
- def test_install_gem_ignore_dependencies_both
586
- done_installing = false
587
- Gem.done_installing do
588
- done_installing = true
589
- end
590
-
591
- spec = quick_spec 'a', 2
592
-
593
- util_build_gem spec
594
-
595
- FileUtils.mv spec.cache_file, @tempdir
596
-
597
- @cmd.options[:ignore_dependencies] = true
598
-
599
- @cmd.install_gem 'a', '>= 0'
600
-
601
- assert_equal %w[a-2], @cmd.installed_specs.map { |s| s.full_name }
602
-
603
- assert done_installing, 'documentation was not generated'
604
- end
605
-
606
- def test_install_gem_ignore_dependencies_remote
607
- spec_fetcher do |fetcher|
608
- fetcher.gem 'a', 2
609
- end
610
-
611
- @cmd.options[:ignore_dependencies] = true
612
-
613
- @cmd.install_gem 'a', '>= 0'
614
-
615
- assert_equal %w[a-2], @cmd.installed_specs.map { |spec| spec.full_name }
616
- end
617
-
618
- def test_install_gem_ignore_dependencies_specific_file
619
- spec = quick_spec 'a', 2
620
-
621
- util_build_gem spec
622
-
623
- FileUtils.mv spec.cache_file, @tempdir
624
-
625
- @cmd.options[:ignore_dependencies] = true
626
-
627
- @cmd.install_gem File.join(@tempdir, spec.file_name), nil
628
-
629
- assert_equal %w[a-2], @cmd.installed_specs.map { |s| s.full_name }
630
- end
631
-
632
- def test_parses_requirement_from_gemname
633
- spec_fetcher do |fetcher|
634
- fetcher.gem 'a', 2
635
- fetcher.gem 'b', 2
636
- end
637
-
638
- @cmd.options[:domain] = :local
639
-
640
- req = "a:10.0"
641
-
642
- @cmd.options[:args] = [req]
643
-
644
- e = nil
645
- use_ui @ui do
646
- orig_dir = Dir.pwd
647
- begin
648
- Dir.chdir @tempdir
649
- e = assert_raises Gem::MockGemUi::TermError do
650
- @cmd.execute
651
- end
652
- ensure
653
- Dir.chdir orig_dir
654
- end
655
- end
656
-
657
- assert_equal 2, e.exit_code
658
- assert_match %r!Could not find a valid gem 'a' \(= 10.0\)!, @ui.error
659
- end
660
-
661
- def test_show_errors_on_failure
662
- Gem.sources.replace ["http://not-there.nothing"]
663
-
664
- @cmd.options[:args] = ["blah"]
665
-
666
- e = nil
667
- use_ui @ui do
668
- orig_dir = Dir.pwd
669
- begin
670
- Dir.chdir @tempdir
671
- e = assert_raises Gem::MockGemUi::TermError do
672
- @cmd.execute
673
- end
674
- ensure
675
- Dir.chdir orig_dir
676
- end
677
- end
678
-
679
- assert_equal 2, e.exit_code
680
-
681
- assert_match 'Unable to download data', @ui.error
682
- end
683
-
684
- def test_show_source_problems_even_on_success
685
- spec_fetcher do |fetcher|
686
- fetcher.download 'a', 2
687
- end
688
-
689
- Gem.sources << "http://nonexistent.example"
690
-
691
- @cmd.options[:args] = %w[a]
692
-
693
- use_ui @ui do
694
- assert_raises Gem::MockGemUi::SystemExitException, @ui.error do
695
- @cmd.execute
696
- end
697
- end
698
-
699
- assert_equal %w[a-2], @cmd.installed_specs.map { |spec| spec.full_name }
700
-
701
- assert_match "1 gem installed", @ui.output
702
-
703
- e = @ui.error
704
-
705
- x = "WARNING: Unable to pull data from 'http://nonexistent.example': no data for http://nonexistent.example/specs.4.8.gz (http://nonexistent.example/specs.4.8.gz)\n"
706
- assert_equal x, e
707
- end
708
-
709
- def test_execute_uses_from_a_gemdeps
710
- spec_fetcher do |fetcher|
711
- fetcher.gem 'a', 2
712
- end
713
-
714
- File.open @gemdeps, "w" do |f|
715
- f << "gem 'a'"
716
- end
717
-
718
- @cmd.options[:gemdeps] = @gemdeps
719
-
720
- use_ui @ui do
721
- assert_raises Gem::MockGemUi::SystemExitException, @ui.error do
722
- @cmd.execute
723
- end
724
- end
725
-
726
- assert_equal %w[], @cmd.installed_specs.map { |spec| spec.full_name }
727
-
728
- assert_match "Using a (2)", @ui.output
729
- assert File.exist?("#{@gemdeps}.lock")
730
- end
731
-
732
- def test_execute_uses_from_a_gemdeps_with_no_lock
733
- spec_fetcher do |fetcher|
734
- fetcher.gem 'a', 2
735
- end
736
-
737
- File.open @gemdeps, "w" do |f|
738
- f << "gem 'a'"
739
- end
740
-
741
- @cmd.handle_options %w[--no-lock]
742
- @cmd.options[:gemdeps] = @gemdeps
743
-
744
- use_ui @ui do
745
- assert_raises Gem::MockGemUi::SystemExitException, @ui.error do
746
- @cmd.execute
747
- end
748
- end
749
-
750
- assert_equal %w[], @cmd.installed_specs.map { |spec| spec.full_name }
751
-
752
- assert_match "Using a (2)", @ui.output
753
- assert !File.exist?("#{@gemdeps}.lock")
754
- end
755
-
756
- def test_execute_installs_from_a_gemdeps_with_conservative
757
- spec_fetcher do |fetcher|
758
- fetcher.download 'a', 2
759
- fetcher.gem 'a', 1
760
- end
761
-
762
- File.open @gemdeps, "w" do |f|
763
- f << "gem 'a'"
764
- end
765
-
766
- @cmd.handle_options %w[--conservative]
767
- @cmd.options[:gemdeps] = @gemdeps
768
-
769
- use_ui @ui do
770
- assert_raises Gem::MockGemUi::SystemExitException, @ui.error do
771
- @cmd.execute
772
- end
773
- end
774
-
775
- assert_equal %w[], @cmd.installed_specs.map { |spec| spec.full_name }
776
-
777
- assert_match "Using a (1)", @ui.output
778
- end
779
-
780
- def test_execute_installs_from_a_gemdeps
781
- spec_fetcher do |fetcher|
782
- fetcher.download 'a', 2
783
- end
784
-
785
- File.open @gemdeps, "w" do |f|
786
- f << "gem 'a'"
787
- end
788
-
789
- @cmd.options[:gemdeps] = @gemdeps
790
-
791
- use_ui @ui do
792
- assert_raises Gem::MockGemUi::SystemExitException, @ui.error do
793
- @cmd.execute
794
- end
795
- end
796
-
797
- assert_equal %w[a-2], @cmd.installed_specs.map { |spec| spec.full_name }
798
-
799
- assert_match "Installing a (2)", @ui.output
800
- end
801
-
802
- def test_execute_installs_deps_a_gemdeps
803
- spec_fetcher do |fetcher|
804
- fetcher.download 'q', '1.0'
805
- fetcher.download 'r', '2.0', 'q' => nil
806
- end
807
-
808
- File.open @gemdeps, "w" do |f|
809
- f << "gem 'r'"
810
- end
811
-
812
- @cmd.options[:gemdeps] = @gemdeps
813
-
814
- use_ui @ui do
815
- assert_raises Gem::MockGemUi::SystemExitException, @ui.error do
816
- @cmd.execute
817
- end
818
- end
819
-
820
- names = @cmd.installed_specs.map { |spec| spec.full_name }
821
-
822
- assert_equal %w[q-1.0 r-2.0], names
823
-
824
- assert_match "Installing q (1.0)", @ui.output
825
- assert_match "Installing r (2.0)", @ui.output
826
- end
827
-
828
- def test_execute_uses_deps_a_gemdeps
829
- spec_fetcher do |fetcher|
830
- fetcher.download 'r', '2.0', 'q' => nil
831
-
832
- fetcher.spec 'q', '1.0'
833
- end
834
-
835
- File.open @gemdeps, "w" do |f|
836
- f << "gem 'r'"
837
- end
838
-
839
- @cmd.options[:gemdeps] = @gemdeps
840
-
841
- use_ui @ui do
842
- assert_raises Gem::MockGemUi::SystemExitException, @ui.error do
843
- @cmd.execute
844
- end
845
- end
846
-
847
- names = @cmd.installed_specs.map { |spec| spec.full_name }
848
-
849
- assert_equal %w[r-2.0], names
850
-
851
- assert_match "Using q (1.0)", @ui.output
852
- assert_match "Installing r (2.0)", @ui.output
853
- end
854
-
855
- def test_execute_installs_deps_a_gemdeps_into_a_path
856
- spec_fetcher do |fetcher|
857
- fetcher.download 'q', '1.0'
858
- fetcher.download 'r', '2.0', 'q' => nil
859
- end
860
-
861
- File.open @gemdeps, "w" do |f|
862
- f << "gem 'r'"
863
- end
864
-
865
- @cmd.options[:install_dir] = "gf-path"
866
- @cmd.options[:gemdeps] = @gemdeps
867
-
868
- use_ui @ui do
869
- assert_raises Gem::MockGemUi::SystemExitException, @ui.error do
870
- @cmd.execute
871
- end
872
- end
873
-
874
- names = @cmd.installed_specs.map { |spec| spec.full_name }
875
-
876
- assert_equal %w[q-1.0 r-2.0], names
877
-
878
- assert_match "Installing q (1.0)", @ui.output
879
- assert_match "Installing r (2.0)", @ui.output
880
-
881
- assert File.file?("gf-path/specifications/q-1.0.gemspec"), "not installed"
882
- assert File.file?("gf-path/specifications/r-2.0.gemspec"), "not installed"
883
- end
884
-
885
- def test_execute_with_gemdeps_path_ignores_system
886
- specs = spec_fetcher do |fetcher|
887
- fetcher.download 'q', '1.0'
888
- fetcher.download 'r', '2.0', 'q' => nil
889
- end
890
-
891
- install_specs specs['q-1.0']
892
-
893
- File.open @gemdeps, "w" do |f|
894
- f << "gem 'r'"
895
- end
896
-
897
- @cmd.options[:install_dir] = "gf-path"
898
- @cmd.options[:gemdeps] = @gemdeps
899
-
900
- use_ui @ui do
901
- assert_raises Gem::MockGemUi::SystemExitException, @ui.error do
902
- @cmd.execute
903
- end
904
- end
905
-
906
- names = @cmd.installed_specs.map { |spec| spec.full_name }
907
-
908
- assert_equal %w[q-1.0 r-2.0], names
909
-
910
- assert_match "Installing q (1.0)", @ui.output
911
- assert_match "Installing r (2.0)", @ui.output
912
-
913
- assert File.file?("gf-path/specifications/q-1.0.gemspec"), "not installed"
914
- assert File.file?("gf-path/specifications/r-2.0.gemspec"), "not installed"
915
- end
916
-
917
- def test_execute_uses_deps_a_gemdeps_with_a_path
918
- specs = spec_fetcher do |fetcher|
919
- fetcher.gem 'q', '1.0'
920
- fetcher.gem 'r', '2.0', 'q' => nil
921
- end
922
-
923
- i = Gem::Installer.at specs['q-1.0'].cache_file, :install_dir => "gf-path"
924
- i.install
925
-
926
- assert File.file?("gf-path/specifications/q-1.0.gemspec"), "not installed"
927
-
928
- File.open @gemdeps, "w" do |f|
929
- f << "gem 'r'"
930
- end
931
-
932
- @cmd.options[:install_dir] = "gf-path"
933
- @cmd.options[:gemdeps] = @gemdeps
934
-
935
- use_ui @ui do
936
- assert_raises Gem::MockGemUi::SystemExitException, @ui.error do
937
- @cmd.execute
938
- end
939
- end
940
-
941
- names = @cmd.installed_specs.map { |spec| spec.full_name }
942
-
943
- assert_equal %w[r-2.0], names
944
-
945
- assert_match "Using q (1.0)", @ui.output
946
- assert_match "Installing r (2.0)", @ui.output
947
- end
948
-
949
- def test_handle_options_file
950
- FileUtils.touch 'Gemfile'
951
-
952
- @cmd.handle_options %w[-g Gemfile]
953
-
954
- assert_equal 'Gemfile', @cmd.options[:gemdeps]
955
-
956
- FileUtils.rm 'Gemfile'
957
-
958
- FileUtils.touch 'gem.deps.rb'
959
-
960
- @cmd.handle_options %w[--file gem.deps.rb]
961
-
962
- assert_equal 'gem.deps.rb', @cmd.options[:gemdeps]
963
-
964
- FileUtils.rm 'gem.deps.rb'
965
-
966
- FileUtils.touch 'Isolate'
967
-
968
- @cmd.handle_options %w[-g]
969
-
970
- assert_equal 'Isolate', @cmd.options[:gemdeps]
971
-
972
- FileUtils.touch 'Gemfile'
973
-
974
- @cmd.handle_options %w[-g]
975
-
976
- assert_equal 'Gemfile', @cmd.options[:gemdeps]
977
-
978
- FileUtils.touch 'gem.deps.rb'
979
-
980
- @cmd.handle_options %w[-g]
981
-
982
- assert_equal 'gem.deps.rb', @cmd.options[:gemdeps]
983
- end
984
-
985
- def test_handle_options_suggest
986
- assert @cmd.options[:suggest_alternate]
987
-
988
- @cmd.handle_options %w[--no-suggestions]
989
-
990
- refute @cmd.options[:suggest_alternate]
991
-
992
- @cmd.handle_options %w[--suggestions]
993
-
994
- assert @cmd.options[:suggest_alternate]
995
- end
996
-
997
- def test_handle_options_without
998
- @cmd.handle_options %w[--without test]
999
-
1000
- assert_equal [:test], @cmd.options[:without_groups]
1001
-
1002
- @cmd.handle_options %w[--without test,development]
1003
-
1004
- assert_equal [:test, :development], @cmd.options[:without_groups]
1005
- end
1006
-
1007
- end