rubygems-update 2.6.0 → 3.5.4

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