bundler-clone 4.0.15

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 (350) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +5670 -0
  3. data/LICENSE.md +22 -0
  4. data/README.md +58 -0
  5. data/bundler.gemspec +46 -0
  6. data/exe/bundle +29 -0
  7. data/exe/bundler +4 -0
  8. data/lib/bundler/.document +1 -0
  9. data/lib/bundler/build_metadata.rb +44 -0
  10. data/lib/bundler/capistrano.rb +4 -0
  11. data/lib/bundler/checksum.rb +270 -0
  12. data/lib/bundler/ci_detector.rb +75 -0
  13. data/lib/bundler/cli/add.rb +62 -0
  14. data/lib/bundler/cli/binstubs.rb +57 -0
  15. data/lib/bundler/cli/cache.rb +32 -0
  16. data/lib/bundler/cli/check.rb +40 -0
  17. data/lib/bundler/cli/clean.rb +25 -0
  18. data/lib/bundler/cli/common.rb +161 -0
  19. data/lib/bundler/cli/config.rb +208 -0
  20. data/lib/bundler/cli/console.rb +47 -0
  21. data/lib/bundler/cli/doctor/diagnose.rb +167 -0
  22. data/lib/bundler/cli/doctor/ssl.rb +249 -0
  23. data/lib/bundler/cli/doctor.rb +33 -0
  24. data/lib/bundler/cli/exec.rb +114 -0
  25. data/lib/bundler/cli/fund.rb +36 -0
  26. data/lib/bundler/cli/gem.rb +493 -0
  27. data/lib/bundler/cli/info.rb +83 -0
  28. data/lib/bundler/cli/init.rb +51 -0
  29. data/lib/bundler/cli/install.rb +127 -0
  30. data/lib/bundler/cli/issue.rb +41 -0
  31. data/lib/bundler/cli/list.rb +97 -0
  32. data/lib/bundler/cli/lock.rb +94 -0
  33. data/lib/bundler/cli/open.rb +29 -0
  34. data/lib/bundler/cli/outdated.rb +337 -0
  35. data/lib/bundler/cli/platform.rb +48 -0
  36. data/lib/bundler/cli/plugin.rb +39 -0
  37. data/lib/bundler/cli/pristine.rb +64 -0
  38. data/lib/bundler/cli/remove.rb +17 -0
  39. data/lib/bundler/cli/show.rb +71 -0
  40. data/lib/bundler/cli/update.rb +125 -0
  41. data/lib/bundler/cli.rb +829 -0
  42. data/lib/bundler/compact_index_client/cache.rb +96 -0
  43. data/lib/bundler/compact_index_client/cache_file.rb +148 -0
  44. data/lib/bundler/compact_index_client/parser.rb +87 -0
  45. data/lib/bundler/compact_index_client/updater.rb +105 -0
  46. data/lib/bundler/compact_index_client.rb +92 -0
  47. data/lib/bundler/constants.rb +14 -0
  48. data/lib/bundler/current_ruby.rb +94 -0
  49. data/lib/bundler/definition.rb +1304 -0
  50. data/lib/bundler/dependency.rb +151 -0
  51. data/lib/bundler/deployment.rb +6 -0
  52. data/lib/bundler/deprecate.rb +44 -0
  53. data/lib/bundler/digest.rb +71 -0
  54. data/lib/bundler/dsl.rb +642 -0
  55. data/lib/bundler/endpoint_specification.rb +184 -0
  56. data/lib/bundler/env.rb +148 -0
  57. data/lib/bundler/environment_preserver.rb +69 -0
  58. data/lib/bundler/errors.rb +277 -0
  59. data/lib/bundler/feature_flag.rb +20 -0
  60. data/lib/bundler/fetcher/base.rb +55 -0
  61. data/lib/bundler/fetcher/compact_index.rb +133 -0
  62. data/lib/bundler/fetcher/dependency.rb +85 -0
  63. data/lib/bundler/fetcher/downloader.rb +116 -0
  64. data/lib/bundler/fetcher/gem_remote_fetcher.rb +24 -0
  65. data/lib/bundler/fetcher/index.rb +25 -0
  66. data/lib/bundler/fetcher.rb +365 -0
  67. data/lib/bundler/force_platform.rb +16 -0
  68. data/lib/bundler/friendly_errors.rb +127 -0
  69. data/lib/bundler/gem_helper.rb +237 -0
  70. data/lib/bundler/gem_tasks.rb +7 -0
  71. data/lib/bundler/gem_version_promoter.rb +147 -0
  72. data/lib/bundler/index.rb +203 -0
  73. data/lib/bundler/injector.rb +284 -0
  74. data/lib/bundler/inline.rb +106 -0
  75. data/lib/bundler/installer/gem_installer.rb +88 -0
  76. data/lib/bundler/installer/parallel_installer.rb +280 -0
  77. data/lib/bundler/installer/standalone.rb +113 -0
  78. data/lib/bundler/installer.rb +241 -0
  79. data/lib/bundler/lazy_specification.rb +270 -0
  80. data/lib/bundler/lockfile_generator.rb +119 -0
  81. data/lib/bundler/lockfile_parser.rb +328 -0
  82. data/lib/bundler/man/.document +1 -0
  83. data/lib/bundler/man/bundle-add.1 +79 -0
  84. data/lib/bundler/man/bundle-add.1.ronn +92 -0
  85. data/lib/bundler/man/bundle-binstubs.1 +30 -0
  86. data/lib/bundler/man/bundle-binstubs.1.ronn +42 -0
  87. data/lib/bundler/man/bundle-cache.1 +56 -0
  88. data/lib/bundler/man/bundle-cache.1.ronn +95 -0
  89. data/lib/bundler/man/bundle-check.1 +21 -0
  90. data/lib/bundler/man/bundle-check.1.ronn +26 -0
  91. data/lib/bundler/man/bundle-clean.1 +17 -0
  92. data/lib/bundler/man/bundle-clean.1.ronn +18 -0
  93. data/lib/bundler/man/bundle-config.1 +339 -0
  94. data/lib/bundler/man/bundle-config.1.ronn +455 -0
  95. data/lib/bundler/man/bundle-console.1 +33 -0
  96. data/lib/bundler/man/bundle-console.1.ronn +39 -0
  97. data/lib/bundler/man/bundle-doctor.1 +69 -0
  98. data/lib/bundler/man/bundle-doctor.1.ronn +77 -0
  99. data/lib/bundler/man/bundle-env.1 +9 -0
  100. data/lib/bundler/man/bundle-env.1.ronn +10 -0
  101. data/lib/bundler/man/bundle-exec.1 +104 -0
  102. data/lib/bundler/man/bundle-exec.1.ronn +150 -0
  103. data/lib/bundler/man/bundle-fund.1 +22 -0
  104. data/lib/bundler/man/bundle-fund.1.ronn +25 -0
  105. data/lib/bundler/man/bundle-gem.1 +107 -0
  106. data/lib/bundler/man/bundle-gem.1.ronn +150 -0
  107. data/lib/bundler/man/bundle-help.1 +9 -0
  108. data/lib/bundler/man/bundle-help.1.ronn +12 -0
  109. data/lib/bundler/man/bundle-info.1 +17 -0
  110. data/lib/bundler/man/bundle-info.1.ronn +21 -0
  111. data/lib/bundler/man/bundle-init.1 +20 -0
  112. data/lib/bundler/man/bundle-init.1.ronn +32 -0
  113. data/lib/bundler/man/bundle-install.1 +178 -0
  114. data/lib/bundler/man/bundle-install.1.ronn +314 -0
  115. data/lib/bundler/man/bundle-issue.1 +45 -0
  116. data/lib/bundler/man/bundle-issue.1.ronn +37 -0
  117. data/lib/bundler/man/bundle-licenses.1 +9 -0
  118. data/lib/bundler/man/bundle-licenses.1.ronn +10 -0
  119. data/lib/bundler/man/bundle-list.1 +40 -0
  120. data/lib/bundler/man/bundle-list.1.ronn +41 -0
  121. data/lib/bundler/man/bundle-lock.1 +75 -0
  122. data/lib/bundler/man/bundle-lock.1.ronn +115 -0
  123. data/lib/bundler/man/bundle-open.1 +32 -0
  124. data/lib/bundler/man/bundle-open.1.ronn +28 -0
  125. data/lib/bundler/man/bundle-outdated.1 +106 -0
  126. data/lib/bundler/man/bundle-outdated.1.ronn +117 -0
  127. data/lib/bundler/man/bundle-platform.1 +49 -0
  128. data/lib/bundler/man/bundle-platform.1.ronn +49 -0
  129. data/lib/bundler/man/bundle-plugin.1 +76 -0
  130. data/lib/bundler/man/bundle-plugin.1.ronn +84 -0
  131. data/lib/bundler/man/bundle-pristine.1 +23 -0
  132. data/lib/bundler/man/bundle-pristine.1.ronn +34 -0
  133. data/lib/bundler/man/bundle-remove.1 +15 -0
  134. data/lib/bundler/man/bundle-remove.1.ronn +16 -0
  135. data/lib/bundler/man/bundle-show.1 +16 -0
  136. data/lib/bundler/man/bundle-show.1.ronn +21 -0
  137. data/lib/bundler/man/bundle-update.1 +284 -0
  138. data/lib/bundler/man/bundle-update.1.ronn +367 -0
  139. data/lib/bundler/man/bundle-version.1 +22 -0
  140. data/lib/bundler/man/bundle-version.1.ronn +24 -0
  141. data/lib/bundler/man/bundle.1 +93 -0
  142. data/lib/bundler/man/bundle.1.ronn +107 -0
  143. data/lib/bundler/man/gemfile.5 +503 -0
  144. data/lib/bundler/man/gemfile.5.ronn +586 -0
  145. data/lib/bundler/man/index.txt +31 -0
  146. data/lib/bundler/match_metadata.rb +30 -0
  147. data/lib/bundler/match_platform.rb +42 -0
  148. data/lib/bundler/match_remote_metadata.rb +29 -0
  149. data/lib/bundler/materialization.rb +59 -0
  150. data/lib/bundler/mirror.rb +221 -0
  151. data/lib/bundler/plugin/api/source.rb +330 -0
  152. data/lib/bundler/plugin/api.rb +81 -0
  153. data/lib/bundler/plugin/dsl.rb +53 -0
  154. data/lib/bundler/plugin/events.rb +85 -0
  155. data/lib/bundler/plugin/index.rb +203 -0
  156. data/lib/bundler/plugin/installer/git.rb +34 -0
  157. data/lib/bundler/plugin/installer/path.rb +26 -0
  158. data/lib/bundler/plugin/installer/rubygems.rb +19 -0
  159. data/lib/bundler/plugin/installer.rb +123 -0
  160. data/lib/bundler/plugin/source_list.rb +31 -0
  161. data/lib/bundler/plugin/unloaded_source.rb +25 -0
  162. data/lib/bundler/plugin.rb +387 -0
  163. data/lib/bundler/process_lock.rb +20 -0
  164. data/lib/bundler/remote_specification.rb +126 -0
  165. data/lib/bundler/resolver/base.rb +127 -0
  166. data/lib/bundler/resolver/candidate.rb +85 -0
  167. data/lib/bundler/resolver/incompatibility.rb +15 -0
  168. data/lib/bundler/resolver/package.rb +95 -0
  169. data/lib/bundler/resolver/root.rb +25 -0
  170. data/lib/bundler/resolver/spec_group.rb +74 -0
  171. data/lib/bundler/resolver/strategy.rb +43 -0
  172. data/lib/bundler/resolver.rb +603 -0
  173. data/lib/bundler/retry.rb +92 -0
  174. data/lib/bundler/ruby_dsl.rb +67 -0
  175. data/lib/bundler/ruby_version.rb +135 -0
  176. data/lib/bundler/rubygems_ext.rb +503 -0
  177. data/lib/bundler/rubygems_gem_installer.rb +206 -0
  178. data/lib/bundler/rubygems_integration.rb +456 -0
  179. data/lib/bundler/runtime.rb +331 -0
  180. data/lib/bundler/safe_marshal.rb +31 -0
  181. data/lib/bundler/self_manager.rb +197 -0
  182. data/lib/bundler/settings/validator.rb +86 -0
  183. data/lib/bundler/settings.rb +585 -0
  184. data/lib/bundler/setup.rb +39 -0
  185. data/lib/bundler/shared_helpers.rb +392 -0
  186. data/lib/bundler/source/gemspec.rb +19 -0
  187. data/lib/bundler/source/git/git_proxy.rb +509 -0
  188. data/lib/bundler/source/git.rb +451 -0
  189. data/lib/bundler/source/metadata.rb +67 -0
  190. data/lib/bundler/source/path/installer.rb +53 -0
  191. data/lib/bundler/source/path.rb +256 -0
  192. data/lib/bundler/source/rubygems/remote.rb +86 -0
  193. data/lib/bundler/source/rubygems.rb +606 -0
  194. data/lib/bundler/source/rubygems_aggregate.rb +71 -0
  195. data/lib/bundler/source.rb +120 -0
  196. data/lib/bundler/source_list.rb +240 -0
  197. data/lib/bundler/source_map.rb +72 -0
  198. data/lib/bundler/spec_set.rb +390 -0
  199. data/lib/bundler/stub_specification.rb +147 -0
  200. data/lib/bundler/templates/.document +1 -0
  201. data/lib/bundler/templates/Executable +16 -0
  202. data/lib/bundler/templates/Executable.standalone +14 -0
  203. data/lib/bundler/templates/Gemfile +5 -0
  204. data/lib/bundler/templates/newgem/CHANGELOG.md.tt +5 -0
  205. data/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +10 -0
  206. data/lib/bundler/templates/newgem/Cargo.toml.tt +13 -0
  207. data/lib/bundler/templates/newgem/Gemfile.tt +24 -0
  208. data/lib/bundler/templates/newgem/LICENSE.txt.tt +21 -0
  209. data/lib/bundler/templates/newgem/README.md.tt +49 -0
  210. data/lib/bundler/templates/newgem/Rakefile.tt +72 -0
  211. data/lib/bundler/templates/newgem/bin/console.tt +11 -0
  212. data/lib/bundler/templates/newgem/bin/setup.tt +8 -0
  213. data/lib/bundler/templates/newgem/circleci/config.yml.tt +37 -0
  214. data/lib/bundler/templates/newgem/exe/newgem.tt +3 -0
  215. data/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +22 -0
  216. data/lib/bundler/templates/newgem/ext/newgem/build.rs.tt +5 -0
  217. data/lib/bundler/templates/newgem/ext/newgem/extconf-c.rb.tt +10 -0
  218. data/lib/bundler/templates/newgem/ext/newgem/extconf-go.rb.tt +11 -0
  219. data/lib/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt +6 -0
  220. data/lib/bundler/templates/newgem/ext/newgem/go.mod.tt +5 -0
  221. data/lib/bundler/templates/newgem/ext/newgem/newgem-go.c.tt +2 -0
  222. data/lib/bundler/templates/newgem/ext/newgem/newgem.c.tt +9 -0
  223. data/lib/bundler/templates/newgem/ext/newgem/newgem.go.tt +31 -0
  224. data/lib/bundler/templates/newgem/ext/newgem/newgem.h.tt +6 -0
  225. data/lib/bundler/templates/newgem/ext/newgem/src/lib.rs.tt +23 -0
  226. data/lib/bundler/templates/newgem/github/workflows/build-gems.yml.tt +69 -0
  227. data/lib/bundler/templates/newgem/github/workflows/main.yml.tt +48 -0
  228. data/lib/bundler/templates/newgem/gitignore.tt +23 -0
  229. data/lib/bundler/templates/newgem/gitlab-ci.yml.tt +27 -0
  230. data/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +9 -0
  231. data/lib/bundler/templates/newgem/lib/newgem.rb.tt +15 -0
  232. data/lib/bundler/templates/newgem/newgem.gemspec.tt +58 -0
  233. data/lib/bundler/templates/newgem/rspec.tt +3 -0
  234. data/lib/bundler/templates/newgem/rubocop.yml.tt +8 -0
  235. data/lib/bundler/templates/newgem/sig/newgem.rbs.tt +8 -0
  236. data/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +19 -0
  237. data/lib/bundler/templates/newgem/spec/spec_helper.rb.tt +15 -0
  238. data/lib/bundler/templates/newgem/standard.yml.tt +3 -0
  239. data/lib/bundler/templates/newgem/test/minitest/test_helper.rb.tt +6 -0
  240. data/lib/bundler/templates/newgem/test/minitest/test_newgem.rb.tt +19 -0
  241. data/lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt +15 -0
  242. data/lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt +6 -0
  243. data/lib/bundler/ui/rg_proxy.rb +19 -0
  244. data/lib/bundler/ui/shell.rb +191 -0
  245. data/lib/bundler/ui/silent.rb +96 -0
  246. data/lib/bundler/ui.rb +9 -0
  247. data/lib/bundler/uri_credentials_filter.rb +43 -0
  248. data/lib/bundler/uri_normalizer.rb +23 -0
  249. data/lib/bundler/vendor/.document +1 -0
  250. data/lib/bundler/vendor/connection_pool/LICENSE +20 -0
  251. data/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +227 -0
  252. data/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +3 -0
  253. data/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +56 -0
  254. data/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +230 -0
  255. data/lib/bundler/vendor/fileutils/COPYING +56 -0
  256. data/lib/bundler/vendor/fileutils/lib/fileutils.rb +2701 -0
  257. data/lib/bundler/vendor/net-http-persistent/README.rdoc +82 -0
  258. data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +41 -0
  259. data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +65 -0
  260. data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +80 -0
  261. data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +1153 -0
  262. data/lib/bundler/vendor/pub_grub/LICENSE.txt +21 -0
  263. data/lib/bundler/vendor/pub_grub/lib/pub_grub/assignment.rb +20 -0
  264. data/lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb +169 -0
  265. data/lib/bundler/vendor/pub_grub/lib/pub_grub/failure_writer.rb +182 -0
  266. data/lib/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb +150 -0
  267. data/lib/bundler/vendor/pub_grub/lib/pub_grub/package.rb +43 -0
  268. data/lib/bundler/vendor/pub_grub/lib/pub_grub/partial_solution.rb +121 -0
  269. data/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb +45 -0
  270. data/lib/bundler/vendor/pub_grub/lib/pub_grub/solve_failure.rb +19 -0
  271. data/lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb +61 -0
  272. data/lib/bundler/vendor/pub_grub/lib/pub_grub/strategy.rb +42 -0
  273. data/lib/bundler/vendor/pub_grub/lib/pub_grub/term.rb +105 -0
  274. data/lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb +3 -0
  275. data/lib/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb +129 -0
  276. data/lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb +423 -0
  277. data/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb +236 -0
  278. data/lib/bundler/vendor/pub_grub/lib/pub_grub/version_union.rb +178 -0
  279. data/lib/bundler/vendor/pub_grub/lib/pub_grub.rb +31 -0
  280. data/lib/bundler/vendor/securerandom/COPYING +56 -0
  281. data/lib/bundler/vendor/securerandom/lib/securerandom.rb +102 -0
  282. data/lib/bundler/vendor/thor/LICENSE.md +20 -0
  283. data/lib/bundler/vendor/thor/lib/thor/actions/create_file.rb +105 -0
  284. data/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +61 -0
  285. data/lib/bundler/vendor/thor/lib/thor/actions/directory.rb +108 -0
  286. data/lib/bundler/vendor/thor/lib/thor/actions/empty_directory.rb +143 -0
  287. data/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +407 -0
  288. data/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +130 -0
  289. data/lib/bundler/vendor/thor/lib/thor/actions.rb +340 -0
  290. data/lib/bundler/vendor/thor/lib/thor/base.rb +825 -0
  291. data/lib/bundler/vendor/thor/lib/thor/command.rb +151 -0
  292. data/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +107 -0
  293. data/lib/bundler/vendor/thor/lib/thor/error.rb +106 -0
  294. data/lib/bundler/vendor/thor/lib/thor/group.rb +292 -0
  295. data/lib/bundler/vendor/thor/lib/thor/invocation.rb +178 -0
  296. data/lib/bundler/vendor/thor/lib/thor/line_editor/basic.rb +37 -0
  297. data/lib/bundler/vendor/thor/lib/thor/line_editor/readline.rb +88 -0
  298. data/lib/bundler/vendor/thor/lib/thor/line_editor.rb +17 -0
  299. data/lib/bundler/vendor/thor/lib/thor/nested_context.rb +29 -0
  300. data/lib/bundler/vendor/thor/lib/thor/parser/argument.rb +86 -0
  301. data/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb +195 -0
  302. data/lib/bundler/vendor/thor/lib/thor/parser/option.rb +178 -0
  303. data/lib/bundler/vendor/thor/lib/thor/parser/options.rb +294 -0
  304. data/lib/bundler/vendor/thor/lib/thor/parser.rb +4 -0
  305. data/lib/bundler/vendor/thor/lib/thor/rake_compat.rb +72 -0
  306. data/lib/bundler/vendor/thor/lib/thor/runner.rb +335 -0
  307. data/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +384 -0
  308. data/lib/bundler/vendor/thor/lib/thor/shell/color.rb +112 -0
  309. data/lib/bundler/vendor/thor/lib/thor/shell/column_printer.rb +29 -0
  310. data/lib/bundler/vendor/thor/lib/thor/shell/html.rb +81 -0
  311. data/lib/bundler/vendor/thor/lib/thor/shell/table_printer.rb +118 -0
  312. data/lib/bundler/vendor/thor/lib/thor/shell/terminal.rb +42 -0
  313. data/lib/bundler/vendor/thor/lib/thor/shell/wrapped_printer.rb +38 -0
  314. data/lib/bundler/vendor/thor/lib/thor/shell.rb +81 -0
  315. data/lib/bundler/vendor/thor/lib/thor/util.rb +285 -0
  316. data/lib/bundler/vendor/thor/lib/thor/version.rb +3 -0
  317. data/lib/bundler/vendor/thor/lib/thor.rb +674 -0
  318. data/lib/bundler/vendor/tsort/LICENSE.txt +22 -0
  319. data/lib/bundler/vendor/tsort/lib/tsort.rb +455 -0
  320. data/lib/bundler/vendor/uri/COPYING +56 -0
  321. data/lib/bundler/vendor/uri/lib/uri/common.rb +922 -0
  322. data/lib/bundler/vendor/uri/lib/uri/file.rb +100 -0
  323. data/lib/bundler/vendor/uri/lib/uri/ftp.rb +267 -0
  324. data/lib/bundler/vendor/uri/lib/uri/generic.rb +1592 -0
  325. data/lib/bundler/vendor/uri/lib/uri/http.rb +137 -0
  326. data/lib/bundler/vendor/uri/lib/uri/https.rb +23 -0
  327. data/lib/bundler/vendor/uri/lib/uri/ldap.rb +261 -0
  328. data/lib/bundler/vendor/uri/lib/uri/ldaps.rb +22 -0
  329. data/lib/bundler/vendor/uri/lib/uri/mailto.rb +293 -0
  330. data/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +547 -0
  331. data/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +206 -0
  332. data/lib/bundler/vendor/uri/lib/uri/version.rb +6 -0
  333. data/lib/bundler/vendor/uri/lib/uri/ws.rb +83 -0
  334. data/lib/bundler/vendor/uri/lib/uri/wss.rb +23 -0
  335. data/lib/bundler/vendor/uri/lib/uri.rb +104 -0
  336. data/lib/bundler/vendored_fileutils.rb +4 -0
  337. data/lib/bundler/vendored_net_http.rb +23 -0
  338. data/lib/bundler/vendored_persistent.rb +11 -0
  339. data/lib/bundler/vendored_pub_grub.rb +4 -0
  340. data/lib/bundler/vendored_securerandom.rb +12 -0
  341. data/lib/bundler/vendored_thor.rb +8 -0
  342. data/lib/bundler/vendored_timeout.rb +12 -0
  343. data/lib/bundler/vendored_tsort.rb +4 -0
  344. data/lib/bundler/vendored_uri.rb +21 -0
  345. data/lib/bundler/version.rb +21 -0
  346. data/lib/bundler/vlad.rb +4 -0
  347. data/lib/bundler/worker.rb +125 -0
  348. data/lib/bundler/yaml_serializer.rb +98 -0
  349. data/lib/bundler.rb +691 -0
  350. metadata +409 -0
@@ -0,0 +1,390 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "vendored_tsort"
4
+
5
+ module Bundler
6
+ class SpecSet
7
+ include Enumerable
8
+ include TSort
9
+
10
+ def initialize(specs)
11
+ @specs = specs
12
+ end
13
+
14
+ def for(dependencies, platforms = [nil], legacy_platforms = [nil], skips: [])
15
+ if [true, false].include?(platforms)
16
+ Bundler::SharedHelpers.feature_removed! \
17
+ "SpecSet#for received a `check` parameter, but that's no longer used and deprecated. " \
18
+ "SpecSet#for always implicitly performs validation. Please remove this parameter"
19
+ end
20
+
21
+ materialize_dependencies(dependencies, platforms, skips: skips)
22
+
23
+ @materializations.flat_map(&:specs).uniq
24
+ end
25
+
26
+ def normalize_platforms!(deps, platforms)
27
+ remove_invalid_platforms!(deps, platforms)
28
+ add_extra_platforms!(platforms)
29
+
30
+ platforms.map! do |platform|
31
+ next platform if platform == Gem::Platform::RUBY
32
+
33
+ begin
34
+ Integer(platform.version)
35
+ rescue ArgumentError, TypeError
36
+ next platform
37
+ end
38
+
39
+ less_specific_platform = Gem::Platform.new([platform.cpu, platform.os, nil])
40
+ next platform if incomplete_for_platform?(deps, less_specific_platform)
41
+
42
+ less_specific_platform
43
+ end.uniq!
44
+ end
45
+
46
+ def add_originally_invalid_platforms!(platforms, originally_invalid_platforms)
47
+ originally_invalid_platforms.each do |originally_invalid_platform|
48
+ platforms << originally_invalid_platform if complete_platform(originally_invalid_platform)
49
+ end
50
+ end
51
+
52
+ def remove_invalid_platforms!(deps, platforms, skips: [])
53
+ invalid_platforms = []
54
+
55
+ platforms.reject! do |platform|
56
+ next false if skips.include?(platform)
57
+
58
+ invalid = incomplete_for_platform?(deps, platform)
59
+ invalid_platforms << platform if invalid
60
+ invalid
61
+ end
62
+
63
+ invalid_platforms
64
+ end
65
+
66
+ def add_extra_platforms!(platforms)
67
+ if @specs.empty?
68
+ platforms.concat([Gem::Platform::RUBY]).uniq
69
+ return
70
+ end
71
+
72
+ new_platforms = all_platforms.select do |platform|
73
+ next if platforms.include?(platform)
74
+ next unless Gem::Platform.generic(platform) == Gem::Platform::RUBY
75
+
76
+ complete_platform(platform)
77
+ end
78
+ return if new_platforms.empty?
79
+
80
+ platforms.concat(new_platforms)
81
+ return if new_platforms.include?(Bundler.local_platform)
82
+
83
+ less_specific_platform = new_platforms.find {|platform| platform != Gem::Platform::RUBY && Bundler.local_platform === platform && platform === Bundler.local_platform }
84
+ platforms.delete(Bundler.local_platform) if less_specific_platform
85
+ end
86
+
87
+ def validate_deps(s)
88
+ s.runtime_dependencies.each do |dep|
89
+ next if dep.name == "bundler"
90
+
91
+ return :missing unless names.include?(dep.name)
92
+ return :invalid if none? {|spec| dep.matches_spec?(spec) }
93
+ end
94
+
95
+ :valid
96
+ end
97
+
98
+ def [](key)
99
+ key = key.name if key.respond_to?(:name)
100
+ lookup[key]&.reverse || []
101
+ end
102
+
103
+ def []=(key, value)
104
+ delete_by_name(key)
105
+
106
+ add_spec(value)
107
+ end
108
+
109
+ def delete(specs)
110
+ Array(specs).each {|spec| remove_spec(spec) }
111
+ end
112
+
113
+ def sort!
114
+ self
115
+ end
116
+
117
+ def to_a
118
+ sorted.dup
119
+ end
120
+
121
+ def to_hash
122
+ lookup.dup
123
+ end
124
+
125
+ def materialize(deps)
126
+ materialize_dependencies(deps)
127
+
128
+ SpecSet.new(materialized_specs)
129
+ end
130
+
131
+ # Materialize for all the specs in the spec set, regardless of what platform they're for
132
+ # @return [Array<Gem::Specification>]
133
+ def materialized_for_all_platforms
134
+ @specs.map do |s|
135
+ next s unless s.is_a?(LazySpecification)
136
+ spec = s.materialize_for_cache
137
+ raise GemNotFound, "Could not find #{s.full_name} in any of the sources" unless spec
138
+ spec
139
+ end
140
+ end
141
+
142
+ def incomplete_for_platform?(deps, platform)
143
+ incomplete_specs_for_platform(deps, platform).any?
144
+ end
145
+
146
+ def incomplete_specs_for_platform(deps, platform)
147
+ return [] if @specs.empty?
148
+
149
+ validation_set = self.class.new(@specs)
150
+ validation_set.for(deps, [platform])
151
+ validation_set.incomplete_specs
152
+ end
153
+
154
+ def missing_specs_for(deps)
155
+ materialize_dependencies(deps)
156
+
157
+ missing_specs
158
+ end
159
+
160
+ def missing_specs
161
+ @materializations.flat_map(&:completely_missing_specs)
162
+ end
163
+
164
+ def partially_missing_specs
165
+ @materializations.flat_map(&:partially_missing_specs)
166
+ end
167
+
168
+ def incomplete_specs
169
+ @materializations.flat_map(&:incomplete_specs)
170
+ end
171
+
172
+ def insecurely_materialized_specs
173
+ materialized_specs.select(&:insecurely_materialized?)
174
+ end
175
+
176
+ def -(other)
177
+ SharedHelpers.feature_removed! "SpecSet#- has been removed with no replacement"
178
+ end
179
+
180
+ def find_by_name_and_platform(name, platform)
181
+ @specs.detect {|spec| spec.name == name && spec.installable_on_platform?(platform) }
182
+ end
183
+
184
+ def specs_with_additional_variants_from(other)
185
+ sorted | additional_variants_from(other)
186
+ end
187
+
188
+ def delete_by_name(name)
189
+ @specs.reject! {|spec| spec.name == name }
190
+ @sorted&.reject! {|spec| spec.name == name }
191
+ return if @lookup.nil?
192
+
193
+ @lookup[name] = nil
194
+ end
195
+
196
+ def version_for(name)
197
+ exemplary_spec(name)&.version
198
+ end
199
+
200
+ def what_required(spec)
201
+ unless req = find {|s| s.runtime_dependencies.any? {|d| d.name == spec.name } }
202
+ return [spec]
203
+ end
204
+ what_required(req) << spec
205
+ end
206
+
207
+ def <<(spec)
208
+ SharedHelpers.feature_removed! "SpecSet#<< has been removed with no replacement"
209
+ end
210
+
211
+ def length
212
+ @specs.length
213
+ end
214
+
215
+ def size
216
+ @specs.size
217
+ end
218
+
219
+ def empty?
220
+ @specs.empty?
221
+ end
222
+
223
+ def each(&b)
224
+ sorted.each(&b)
225
+ end
226
+
227
+ def names
228
+ lookup.keys
229
+ end
230
+
231
+ def valid?(s)
232
+ s.matches_current_metadata? && valid_dependencies?(s)
233
+ end
234
+
235
+ def to_s
236
+ map(&:full_name).to_s
237
+ end
238
+
239
+ private
240
+
241
+ def materialize_dependencies(dependencies, platforms = [nil], skips: [])
242
+ handled = ["bundler"].product(platforms).map {|k| [k, true] }.to_h
243
+ deps = dependencies.product(platforms)
244
+ @materializations = []
245
+
246
+ loop do
247
+ break unless dep = deps.shift
248
+
249
+ dependency = dep[0]
250
+ platform = dep[1]
251
+ name = dependency.name
252
+
253
+ key = [name, platform]
254
+ next if handled.key?(key)
255
+
256
+ handled[key] = true
257
+
258
+ materialization = Materialization.new(dependency, platform, candidates: lookup[name])
259
+
260
+ deps.concat(materialization.dependencies) if materialization.complete?
261
+
262
+ @materializations << materialization unless skips.include?(name)
263
+ end
264
+
265
+ @materializations
266
+ end
267
+
268
+ def materialized_specs
269
+ @materializations.filter_map(&:materialized_spec)
270
+ end
271
+
272
+ def complete_platform(platform)
273
+ new_specs = []
274
+
275
+ valid_platform = lookup.all? do |_, specs|
276
+ spec = specs.first
277
+ matching_specs = spec.source.specs.search([spec.name, spec.version])
278
+ platform_spec = MatchPlatform.select_best_platform_match(matching_specs, platform).find do |s|
279
+ valid?(s)
280
+ end
281
+
282
+ if platform_spec
283
+ new_specs << LazySpecification.from_spec(platform_spec) unless specs.include?(platform_spec)
284
+ true
285
+ else
286
+ false
287
+ end
288
+ end
289
+
290
+ if valid_platform && new_specs.any?
291
+ new_specs.each {|spec| add_spec(spec) }
292
+ end
293
+
294
+ valid_platform
295
+ end
296
+
297
+ def all_platforms
298
+ @specs.flat_map {|spec| spec.source.specs.search([spec.name, spec.version]).map(&:platform) }.uniq
299
+ end
300
+
301
+ def additional_variants_from(other)
302
+ other.select do |other_spec|
303
+ spec = exemplary_spec(other_spec.name)
304
+ next unless spec
305
+
306
+ selected = spec.version == other_spec.version && valid_dependencies?(other_spec)
307
+ other_spec.source = spec.source if selected
308
+ selected
309
+ end
310
+ end
311
+
312
+ def valid_dependencies?(s)
313
+ validate_deps(s) == :valid
314
+ end
315
+
316
+ def sorted
317
+ @sorted ||= ([@specs.find {|s| s.name == "rake" }] + tsort).compact.uniq
318
+ rescue TSort::Cyclic => error
319
+ cgems = extract_circular_gems(error)
320
+ raise CyclicDependencyError, "Your bundle requires gems that depend" \
321
+ " on each other, creating an infinite loop. Please remove either" \
322
+ " gem '#{cgems[0]}' or gem '#{cgems[1]}' and try again."
323
+ end
324
+
325
+ def extract_circular_gems(error)
326
+ error.message.scan(/@name="(.*?)"/).flatten
327
+ end
328
+
329
+ def lookup
330
+ @lookup ||= begin
331
+ lookup = {}
332
+ @specs.each do |s|
333
+ index_spec(lookup, s.name, s)
334
+ end
335
+ lookup
336
+ end
337
+ end
338
+
339
+ def tsort_each_node
340
+ # MUST sort by name for backwards compatibility
341
+ @specs.sort_by(&:name).each {|s| yield s }
342
+ end
343
+
344
+ def tsort_each_child(s)
345
+ s.dependencies.sort_by(&:name).each do |d|
346
+ next if d.type == :development
347
+
348
+ specs_for_name = lookup[d.name]
349
+ next unless specs_for_name
350
+
351
+ specs_for_name.each {|s2| yield s2 }
352
+ end
353
+ end
354
+
355
+ def add_spec(spec)
356
+ @specs << spec
357
+
358
+ name = spec.name
359
+
360
+ @sorted&.insert(@sorted.bsearch_index {|s| s.name >= name } || @sorted.size, spec)
361
+ return if @lookup.nil?
362
+
363
+ index_spec(@lookup, name, spec)
364
+ end
365
+
366
+ def remove_spec(spec)
367
+ @specs.delete(spec)
368
+ @sorted&.delete(spec)
369
+ return if @lookup.nil?
370
+
371
+ indexed_specs = @lookup[spec.name]
372
+ return unless indexed_specs
373
+
374
+ if indexed_specs.size > 1
375
+ @lookup[spec.name].delete(spec)
376
+ else
377
+ @lookup[spec.name] = nil
378
+ end
379
+ end
380
+
381
+ def index_spec(hash, key, value)
382
+ hash[key] ||= []
383
+ hash[key] << value
384
+ end
385
+
386
+ def exemplary_spec(name)
387
+ self[name].first
388
+ end
389
+ end
390
+ end
@@ -0,0 +1,147 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bundler
4
+ class StubSpecification < RemoteSpecification
5
+ def self.from_stub(stub)
6
+ return stub if stub.is_a?(Bundler::StubSpecification)
7
+ spec = new(stub.name, stub.version, stub.platform, nil)
8
+ spec.stub = stub
9
+ spec
10
+ end
11
+
12
+ def insecurely_materialized?
13
+ false
14
+ end
15
+
16
+ attr_reader :checksum
17
+ attr_accessor :stub, :ignored
18
+
19
+ def source=(source)
20
+ super
21
+ # Stub has no concept of source, which means that extension_dir may be wrong
22
+ # This is the case for git-based gems. So, instead manually assign the extension dir
23
+ return unless source.respond_to?(:extension_dir_name)
24
+ unique_extension_dir = [source.extension_dir_name, File.basename(full_gem_path)].uniq.join("-")
25
+ path = File.join(stub.extensions_dir, unique_extension_dir)
26
+ stub.extension_dir = File.expand_path(path)
27
+ end
28
+
29
+ def to_yaml
30
+ _remote_specification.to_yaml
31
+ end
32
+
33
+ # @!group Stub Delegates
34
+
35
+ def ignored?
36
+ return @ignored unless @ignored.nil?
37
+
38
+ @ignored = missing_extensions?
39
+ return false unless @ignored
40
+
41
+ warn "Source #{source} is ignoring #{self} because it is missing extensions"
42
+
43
+ true
44
+ end
45
+
46
+ def manually_installed?
47
+ # This is for manually installed gems which are gems that were fixed in place after a
48
+ # failed installation. Once the issue was resolved, the user then manually created
49
+ # the gem specification using the instructions provided by `gem help install`
50
+ installed_by_version == Gem::Version.new(0)
51
+ end
52
+
53
+ # This is defined directly to avoid having to loading the full spec
54
+ def missing_extensions?
55
+ return false if RUBY_ENGINE == "jruby"
56
+ return false if default_gem?
57
+ return false if extensions.empty?
58
+ return false if File.exist? gem_build_complete_path
59
+ return false if manually_installed?
60
+
61
+ true
62
+ end
63
+
64
+ def activated?
65
+ stub.activated?
66
+ end
67
+
68
+ def activated=(activated)
69
+ stub.instance_variable_set(:@activated, activated)
70
+ end
71
+
72
+ def extensions
73
+ stub.extensions
74
+ end
75
+
76
+ def gem_build_complete_path
77
+ stub.gem_build_complete_path
78
+ end
79
+
80
+ def default_gem?
81
+ stub.default_gem?
82
+ end
83
+
84
+ def full_gem_path
85
+ stub.full_gem_path
86
+ end
87
+
88
+ def full_gem_path=(path)
89
+ stub.full_gem_path = path
90
+ end
91
+
92
+ def full_require_paths
93
+ stub.full_require_paths
94
+ end
95
+
96
+ def require_paths
97
+ stub.require_paths
98
+ end
99
+
100
+ def base_dir=(path)
101
+ stub.base_dir = path
102
+ end
103
+
104
+ def load_paths
105
+ full_require_paths
106
+ end
107
+
108
+ def loaded_from
109
+ stub.loaded_from
110
+ end
111
+
112
+ def matches_for_glob(glob)
113
+ stub.matches_for_glob(glob)
114
+ end
115
+
116
+ def raw_require_paths
117
+ stub.raw_require_paths
118
+ end
119
+
120
+ def inspect
121
+ "#<#{self.class} @name=\"#{name}\" (#{full_name.delete_prefix("#{name}-")})>"
122
+ end
123
+
124
+ private
125
+
126
+ def _remote_specification
127
+ @_remote_specification ||= begin
128
+ rs = stub.to_spec
129
+ if rs.equal?(self) # happens when to_spec gets the spec from Gem.loaded_specs
130
+ rs = Gem::Specification.load(loaded_from)
131
+ Bundler.rubygems.stub_set_spec(stub, rs)
132
+ end
133
+
134
+ unless rs
135
+ raise GemspecError, "The gemspec for #{full_name} at #{loaded_from}" \
136
+ " was missing or broken. Try running `gem pristine #{name} -v #{version}`" \
137
+ " to fix the cached spec."
138
+ end
139
+
140
+ rs.source = source
141
+ rs.base_dir = stub.base_dir
142
+
143
+ rs
144
+ end
145
+ end
146
+ end
147
+ end
@@ -0,0 +1 @@
1
+ # Ignore all files in this directory
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env <%= Bundler.settings[:shebang] || RbConfig::CONFIG["ruby_install_name"] %>
2
+ # frozen_string_literal: true
3
+
4
+ #
5
+ # This file was generated by Bundler.
6
+ #
7
+ # The application '<%= executable %>' is installed as part of a gem, and
8
+ # this file is here to facilitate running it.
9
+ #
10
+
11
+ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("<%= relative_gemfile_path %>", __dir__)
12
+
13
+ require "rubygems"
14
+ require "bundler/setup"
15
+
16
+ load Gem.bin_path("<%= spec.name %>", "<%= executable %>")
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env <%= Bundler.settings[:shebang] || RbConfig::CONFIG["ruby_install_name"] %>
2
+ # frozen_string_literal: true
3
+
4
+ #
5
+ # This file was generated by Bundler.
6
+ #
7
+ # The application '<%= executable %>' is installed as part of a gem, and
8
+ # this file is here to facilitate running it.
9
+ #
10
+
11
+ $:.unshift File.expand_path "<%= standalone_path %>", __dir__
12
+
13
+ require "bundler/setup"
14
+ load File.expand_path "<%= executable_path %>", __dir__
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+
5
+ # gem "rails"
@@ -0,0 +1,5 @@
1
+ ## [Unreleased]
2
+
3
+ ## [0.1.0] - <%= Time.now.strftime('%F') %>
4
+
5
+ - Initial release
@@ -0,0 +1,10 @@
1
+ # Code of Conduct
2
+
3
+ <%= config[:name].inspect %> follows [The Ruby Community Conduct Guideline](https://www.ruby-lang.org/en/conduct) in all "collaborative space", which is defined as community communications channels (such as mailing lists, submitted patches, commit comments, etc.):
4
+
5
+ * Participants will be tolerant of opposing views.
6
+ * Participants must ensure that their language and actions are free of personal attacks and disparaging personal remarks.
7
+ * When interpreting the words and actions of others, participants should always assume good intentions.
8
+ * Behaviour which can be reasonably considered harassment will not be tolerated.
9
+
10
+ If you have any concerns about behaviour within this project, please contact us at [<%= config[:email].inspect %>](mailto:<%= config[:email].inspect %>).
@@ -0,0 +1,13 @@
1
+ # This Cargo.toml is here to let externals tools (IDEs, etc.) know that this is
2
+ # a Rust project. Your extensions dependencies should be added to the Cargo.toml
3
+ # in the ext/ directory.
4
+
5
+ [workspace]
6
+ members = ["./ext/<%= config[:name] %>"]
7
+ resolver = "2"
8
+
9
+ [profile.release]
10
+ # By default, debug symbols are stripped from the final binary which makes it
11
+ # harder to debug if something goes wrong. It's recommended to keep debug
12
+ # symbols in the release build so that you can debug the final binary if needed.
13
+ debug = true
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+
5
+ # Specify your gem's dependencies in <%= config[:name] %>.gemspec
6
+ gemspec
7
+
8
+ gem "irb"
9
+ gem "rake", "~> 13.0"
10
+ <%- if config[:ext] -%>
11
+
12
+ gem "rake-compiler"
13
+ <%- end -%>
14
+ <%- if config[:test] -%>
15
+
16
+ gem "<%= config[:test] %>", "~> <%= config[:test_framework_version] %>"
17
+ <%- end -%>
18
+ <%- if config[:linter] == "rubocop" -%>
19
+
20
+ gem "rubocop", "~> <%= config[:linter_version] %>"
21
+ <%- elsif config[:linter] == "standard" -%>
22
+
23
+ gem "standard", "~> <%= config[:linter_version] %>"
24
+ <%- end -%>
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) <%= Time.now.year %> <%= config[:author] %>
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.