bundler 2.2.29 → 2.5.16

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 (330) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1129 -4
  3. data/README.md +4 -8
  4. data/bundler.gemspec +11 -11
  5. data/exe/bundle +5 -26
  6. data/exe/bundler +1 -1
  7. data/lib/bundler/.document +1 -0
  8. data/lib/bundler/build_metadata.rb +4 -4
  9. data/lib/bundler/capistrano.rb +1 -1
  10. data/lib/bundler/checksum.rb +254 -0
  11. data/lib/bundler/ci_detector.rb +75 -0
  12. data/lib/bundler/cli/add.rb +4 -4
  13. data/lib/bundler/cli/binstubs.rb +10 -6
  14. data/lib/bundler/cli/cache.rb +1 -1
  15. data/lib/bundler/cli/check.rb +3 -3
  16. data/lib/bundler/cli/common.rb +13 -3
  17. data/lib/bundler/cli/config.rb +18 -8
  18. data/lib/bundler/cli/console.rb +5 -4
  19. data/lib/bundler/cli/doctor.rb +12 -5
  20. data/lib/bundler/cli/exec.rb +1 -1
  21. data/lib/bundler/cli/fund.rb +1 -1
  22. data/lib/bundler/cli/gem.rb +141 -48
  23. data/lib/bundler/cli/info.rb +27 -17
  24. data/lib/bundler/cli/init.rb +6 -2
  25. data/lib/bundler/cli/install.rb +22 -39
  26. data/lib/bundler/cli/issue.rb +5 -4
  27. data/lib/bundler/cli/lock.rb +36 -29
  28. data/lib/bundler/cli/open.rb +9 -9
  29. data/lib/bundler/cli/outdated.rb +19 -12
  30. data/lib/bundler/cli/platform.rb +8 -6
  31. data/lib/bundler/cli/plugin.rb +9 -15
  32. data/lib/bundler/cli/pristine.rb +38 -30
  33. data/lib/bundler/cli/show.rb +3 -3
  34. data/lib/bundler/cli/update.rb +12 -7
  35. data/lib/bundler/cli/viz.rb +1 -1
  36. data/lib/bundler/cli.rb +266 -285
  37. data/lib/bundler/compact_index_client/cache.rb +53 -67
  38. data/lib/bundler/compact_index_client/cache_file.rb +153 -0
  39. data/lib/bundler/compact_index_client/gem_parser.rb +7 -3
  40. data/lib/bundler/compact_index_client/parser.rb +84 -0
  41. data/lib/bundler/compact_index_client/updater.rb +83 -76
  42. data/lib/bundler/compact_index_client.rb +59 -87
  43. data/lib/bundler/constants.rb +9 -2
  44. data/lib/bundler/current_ruby.rb +12 -16
  45. data/lib/bundler/definition.rb +509 -319
  46. data/lib/bundler/dependency.rb +33 -71
  47. data/lib/bundler/digest.rb +71 -0
  48. data/lib/bundler/dsl.rb +88 -69
  49. data/lib/bundler/endpoint_specification.rb +32 -15
  50. data/lib/bundler/env.rb +5 -7
  51. data/lib/bundler/environment_preserver.rb +8 -22
  52. data/lib/bundler/errors.rb +101 -13
  53. data/lib/bundler/feature_flag.rb +0 -2
  54. data/lib/bundler/fetcher/base.rb +11 -11
  55. data/lib/bundler/fetcher/compact_index.rb +32 -52
  56. data/lib/bundler/fetcher/dependency.rb +3 -7
  57. data/lib/bundler/fetcher/downloader.rb +17 -16
  58. data/lib/bundler/fetcher/gem_remote_fetcher.rb +16 -0
  59. data/lib/bundler/fetcher/index.rb +2 -29
  60. data/lib/bundler/fetcher.rb +87 -79
  61. data/lib/bundler/force_platform.rb +18 -0
  62. data/lib/bundler/friendly_errors.rb +29 -40
  63. data/lib/bundler/gem_helper.rb +11 -23
  64. data/lib/bundler/gem_helpers.rb +30 -6
  65. data/lib/bundler/gem_version_promoter.rb +68 -109
  66. data/lib/bundler/graph.rb +9 -9
  67. data/lib/bundler/index.rb +71 -79
  68. data/lib/bundler/injector.rb +23 -11
  69. data/lib/bundler/inline.rb +11 -23
  70. data/lib/bundler/installer/gem_installer.rb +18 -11
  71. data/lib/bundler/installer/parallel_installer.rb +17 -65
  72. data/lib/bundler/installer/standalone.rb +56 -15
  73. data/lib/bundler/installer.rb +35 -61
  74. data/lib/bundler/lazy_specification.rb +92 -61
  75. data/lib/bundler/lockfile_generator.rb +12 -3
  76. data/lib/bundler/lockfile_parser.rb +137 -70
  77. data/lib/bundler/man/bundle-add.1 +19 -26
  78. data/lib/bundler/man/bundle-add.1.ronn +16 -4
  79. data/lib/bundler/man/bundle-binstubs.1 +4 -16
  80. data/lib/bundler/man/bundle-cache.1 +9 -24
  81. data/lib/bundler/man/bundle-cache.1.ronn +9 -2
  82. data/lib/bundler/man/bundle-check.1 +5 -12
  83. data/lib/bundler/man/bundle-check.1.ronn +3 -0
  84. data/lib/bundler/man/bundle-clean.1 +4 -11
  85. data/lib/bundler/man/bundle-clean.1.ronn +1 -1
  86. data/lib/bundler/man/bundle-config.1 +47 -224
  87. data/lib/bundler/man/bundle-config.1.ronn +40 -28
  88. data/lib/bundler/man/bundle-console.1 +35 -0
  89. data/lib/bundler/man/bundle-console.1.ronn +44 -0
  90. data/lib/bundler/man/bundle-doctor.1 +4 -18
  91. data/lib/bundler/man/bundle-exec.1 +16 -77
  92. data/lib/bundler/man/bundle-exec.1.ronn +8 -9
  93. data/lib/bundler/man/bundle-gem.1 +45 -72
  94. data/lib/bundler/man/bundle-gem.1.ronn +32 -5
  95. data/lib/bundler/man/bundle-help.1 +9 -0
  96. data/lib/bundler/man/bundle-help.1.ronn +12 -0
  97. data/lib/bundler/man/bundle-info.1 +5 -11
  98. data/lib/bundler/man/bundle-info.1.ronn +3 -3
  99. data/lib/bundler/man/bundle-init.1 +6 -11
  100. data/lib/bundler/man/bundle-init.1.ronn +2 -0
  101. data/lib/bundler/man/bundle-inject.1 +8 -18
  102. data/lib/bundler/man/bundle-inject.1.ronn +3 -1
  103. data/lib/bundler/man/bundle-install.1 +32 -155
  104. data/lib/bundler/man/bundle-install.1.ronn +11 -33
  105. data/lib/bundler/man/bundle-list.1 +4 -19
  106. data/lib/bundler/man/bundle-lock.1 +5 -29
  107. data/lib/bundler/man/bundle-open.1 +18 -18
  108. data/lib/bundler/man/bundle-open.1.ronn +9 -1
  109. data/lib/bundler/man/bundle-outdated.1 +17 -72
  110. data/lib/bundler/man/bundle-outdated.1.ronn +13 -18
  111. data/lib/bundler/man/bundle-platform.1 +16 -28
  112. data/lib/bundler/man/bundle-platform.1.ronn +14 -7
  113. data/lib/bundler/man/bundle-plugin.1 +58 -0
  114. data/lib/bundler/man/bundle-plugin.1.ronn +63 -0
  115. data/lib/bundler/man/bundle-pristine.1 +5 -16
  116. data/lib/bundler/man/bundle-remove.1 +4 -14
  117. data/lib/bundler/man/bundle-show.1 +3 -10
  118. data/lib/bundler/man/bundle-update.1 +19 -138
  119. data/lib/bundler/man/bundle-update.1.ronn +2 -1
  120. data/lib/bundler/man/bundle-version.1 +22 -0
  121. data/lib/bundler/man/bundle-version.1.ronn +24 -0
  122. data/lib/bundler/man/bundle-viz.1 +6 -15
  123. data/lib/bundler/man/bundle-viz.1.ronn +2 -0
  124. data/lib/bundler/man/bundle.1 +17 -51
  125. data/lib/bundler/man/bundle.1.ronn +12 -7
  126. data/lib/bundler/man/gemfile.5 +130 -346
  127. data/lib/bundler/man/gemfile.5.ronn +121 -86
  128. data/lib/bundler/man/index.txt +4 -0
  129. data/lib/bundler/match_metadata.rb +17 -0
  130. data/lib/bundler/match_platform.rb +1 -2
  131. data/lib/bundler/match_remote_metadata.rb +29 -0
  132. data/lib/bundler/mirror.rb +8 -10
  133. data/lib/bundler/plugin/api/source.rb +9 -13
  134. data/lib/bundler/plugin/index.rb +13 -5
  135. data/lib/bundler/plugin/installer/git.rb +0 -4
  136. data/lib/bundler/plugin/installer/path.rb +18 -0
  137. data/lib/bundler/plugin/installer/rubygems.rb +0 -8
  138. data/lib/bundler/plugin/installer.rb +42 -19
  139. data/lib/bundler/plugin/source_list.rb +4 -4
  140. data/lib/bundler/plugin.rb +16 -7
  141. data/lib/bundler/process_lock.rb +1 -1
  142. data/lib/bundler/remote_specification.rb +11 -5
  143. data/lib/bundler/resolver/base.rb +111 -0
  144. data/lib/bundler/resolver/candidate.rb +82 -0
  145. data/lib/bundler/resolver/incompatibility.rb +15 -0
  146. data/lib/bundler/resolver/package.rb +81 -0
  147. data/lib/bundler/resolver/root.rb +25 -0
  148. data/lib/bundler/resolver/spec_group.rb +53 -66
  149. data/lib/bundler/resolver.rb +419 -307
  150. data/lib/bundler/retry.rb +1 -1
  151. data/lib/bundler/ruby_dsl.rb +42 -7
  152. data/lib/bundler/ruby_version.rb +16 -22
  153. data/lib/bundler/rubygems_ext.rb +250 -64
  154. data/lib/bundler/rubygems_gem_installer.rb +90 -64
  155. data/lib/bundler/rubygems_integration.rb +81 -190
  156. data/lib/bundler/runtime.rb +8 -13
  157. data/lib/bundler/safe_marshal.rb +31 -0
  158. data/lib/bundler/self_manager.rb +206 -0
  159. data/lib/bundler/settings.rb +139 -57
  160. data/lib/bundler/setup.rb +13 -1
  161. data/lib/bundler/shared_helpers.rb +67 -36
  162. data/lib/bundler/source/git/git_proxy.rb +285 -82
  163. data/lib/bundler/source/git.rb +81 -41
  164. data/lib/bundler/source/metadata.rb +17 -16
  165. data/lib/bundler/source/path/installer.rb +1 -22
  166. data/lib/bundler/source/path.rb +13 -25
  167. data/lib/bundler/source/rubygems/remote.rb +1 -1
  168. data/lib/bundler/source/rubygems.rb +164 -234
  169. data/lib/bundler/source/rubygems_aggregate.rb +1 -1
  170. data/lib/bundler/source.rb +7 -6
  171. data/lib/bundler/source_list.rb +40 -32
  172. data/lib/bundler/source_map.rb +15 -2
  173. data/lib/bundler/spec_set.rb +156 -46
  174. data/lib/bundler/stub_specification.rb +18 -5
  175. data/lib/bundler/templates/Executable +3 -5
  176. data/lib/bundler/templates/Executable.bundler +7 -12
  177. data/lib/bundler/templates/Executable.standalone +4 -4
  178. data/lib/bundler/templates/Gemfile +0 -2
  179. data/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +77 -29
  180. data/lib/bundler/templates/newgem/Cargo.toml.tt +7 -0
  181. data/lib/bundler/templates/newgem/Gemfile.tt +8 -2
  182. data/lib/bundler/templates/newgem/README.md.tt +7 -11
  183. data/lib/bundler/templates/newgem/Rakefile.tt +28 -4
  184. data/lib/bundler/templates/newgem/bin/console.tt +0 -4
  185. data/lib/bundler/templates/newgem/circleci/config.yml.tt +12 -0
  186. data/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +15 -0
  187. data/lib/bundler/templates/newgem/ext/newgem/extconf-c.rb.tt +10 -0
  188. data/lib/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt +6 -0
  189. data/lib/bundler/templates/newgem/ext/newgem/newgem.c.tt +1 -1
  190. data/lib/bundler/templates/newgem/ext/newgem/src/lib.rs.tt +12 -0
  191. data/lib/bundler/templates/newgem/github/workflows/main.yml.tt +13 -3
  192. data/lib/bundler/templates/newgem/gitignore.tt +3 -0
  193. data/lib/bundler/templates/newgem/gitlab-ci.yml.tt +13 -4
  194. data/lib/bundler/templates/newgem/newgem.gemspec.tt +25 -17
  195. data/lib/bundler/templates/newgem/rubocop.yml.tt +0 -5
  196. data/lib/bundler/templates/newgem/sig/newgem.rbs.tt +8 -0
  197. data/lib/bundler/templates/newgem/standard.yml.tt +3 -0
  198. data/lib/bundler/templates/newgem/test/minitest/{newgem_test.rb.tt → test_newgem.rb.tt} +1 -1
  199. data/lib/bundler/ui/rg_proxy.rb +1 -1
  200. data/lib/bundler/ui/shell.rb +38 -15
  201. data/lib/bundler/ui/silent.rb +21 -5
  202. data/lib/bundler/uri_credentials_filter.rb +2 -2
  203. data/lib/bundler/uri_normalizer.rb +23 -0
  204. data/lib/bundler/vendor/.document +1 -0
  205. data/lib/bundler/vendor/connection_pool/.document +1 -0
  206. data/lib/bundler/vendor/connection_pool/LICENSE +20 -0
  207. data/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +19 -21
  208. data/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +1 -1
  209. data/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +56 -0
  210. data/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +92 -78
  211. data/lib/bundler/vendor/fileutils/.document +1 -0
  212. data/lib/bundler/vendor/fileutils/LICENSE.txt +22 -0
  213. data/lib/bundler/vendor/fileutils/lib/fileutils.rb +1340 -410
  214. data/lib/bundler/vendor/net-http-persistent/.document +1 -0
  215. data/lib/bundler/vendor/net-http-persistent/README.rdoc +82 -0
  216. data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +4 -3
  217. data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +23 -11
  218. data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +1 -1
  219. data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +57 -57
  220. data/lib/bundler/vendor/pub_grub/.document +1 -0
  221. data/lib/bundler/vendor/pub_grub/LICENSE.txt +21 -0
  222. data/lib/bundler/vendor/pub_grub/lib/pub_grub/assignment.rb +20 -0
  223. data/lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb +189 -0
  224. data/lib/bundler/vendor/pub_grub/lib/pub_grub/failure_writer.rb +182 -0
  225. data/lib/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb +150 -0
  226. data/lib/bundler/vendor/pub_grub/lib/pub_grub/package.rb +43 -0
  227. data/lib/bundler/vendor/pub_grub/lib/pub_grub/partial_solution.rb +121 -0
  228. data/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb +45 -0
  229. data/lib/bundler/vendor/pub_grub/lib/pub_grub/solve_failure.rb +19 -0
  230. data/lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb +61 -0
  231. data/lib/bundler/vendor/pub_grub/lib/pub_grub/term.rb +105 -0
  232. data/lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb +3 -0
  233. data/lib/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb +129 -0
  234. data/lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb +411 -0
  235. data/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb +248 -0
  236. data/lib/bundler/vendor/pub_grub/lib/pub_grub/version_union.rb +178 -0
  237. data/lib/bundler/vendor/pub_grub/lib/pub_grub.rb +31 -0
  238. data/lib/bundler/vendor/thor/.document +1 -0
  239. data/lib/bundler/vendor/thor/LICENSE.md +20 -0
  240. data/lib/bundler/vendor/thor/lib/thor/actions/create_file.rb +3 -2
  241. data/lib/bundler/vendor/thor/lib/thor/actions/directory.rb +1 -1
  242. data/lib/bundler/vendor/thor/lib/thor/actions/empty_directory.rb +1 -1
  243. data/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +12 -14
  244. data/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +16 -6
  245. data/lib/bundler/vendor/thor/lib/thor/actions.rb +21 -17
  246. data/lib/bundler/vendor/thor/lib/thor/base.rb +140 -14
  247. data/lib/bundler/vendor/thor/lib/thor/command.rb +13 -4
  248. data/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +10 -0
  249. data/lib/bundler/vendor/thor/lib/thor/error.rb +16 -20
  250. data/lib/bundler/vendor/thor/lib/thor/group.rb +1 -1
  251. data/lib/bundler/vendor/thor/lib/thor/invocation.rb +1 -1
  252. data/lib/bundler/vendor/thor/lib/thor/nested_context.rb +2 -2
  253. data/lib/bundler/vendor/thor/lib/thor/parser/argument.rb +20 -1
  254. data/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb +33 -17
  255. data/lib/bundler/vendor/thor/lib/thor/parser/option.rb +27 -8
  256. data/lib/bundler/vendor/thor/lib/thor/parser/options.rb +63 -7
  257. data/lib/bundler/vendor/thor/lib/thor/rake_compat.rb +2 -2
  258. data/lib/bundler/vendor/thor/lib/thor/runner.rb +40 -30
  259. data/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +48 -154
  260. data/lib/bundler/vendor/thor/lib/thor/shell/color.rb +1 -46
  261. data/lib/bundler/vendor/thor/lib/thor/shell/column_printer.rb +29 -0
  262. data/lib/bundler/vendor/thor/lib/thor/shell/html.rb +0 -45
  263. data/lib/bundler/vendor/thor/lib/thor/shell/table_printer.rb +134 -0
  264. data/lib/bundler/vendor/thor/lib/thor/shell/terminal.rb +42 -0
  265. data/lib/bundler/vendor/thor/lib/thor/shell/wrapped_printer.rb +38 -0
  266. data/lib/bundler/vendor/thor/lib/thor/shell.rb +2 -2
  267. data/lib/bundler/vendor/thor/lib/thor/util.rb +9 -8
  268. data/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
  269. data/lib/bundler/vendor/thor/lib/thor.rb +155 -8
  270. data/lib/bundler/vendor/tsort/.document +1 -0
  271. data/lib/bundler/vendor/tsort/LICENSE.txt +22 -0
  272. data/lib/bundler/vendor/tsort/lib/tsort.rb +455 -0
  273. data/lib/bundler/vendor/uri/.document +1 -0
  274. data/lib/bundler/vendor/uri/LICENSE.txt +22 -0
  275. data/lib/bundler/vendor/uri/lib/uri/common.rb +316 -207
  276. data/lib/bundler/vendor/uri/lib/uri/file.rb +7 -1
  277. data/lib/bundler/vendor/uri/lib/uri/ftp.rb +2 -2
  278. data/lib/bundler/vendor/uri/lib/uri/generic.rb +33 -13
  279. data/lib/bundler/vendor/uri/lib/uri/http.rb +40 -3
  280. data/lib/bundler/vendor/uri/lib/uri/https.rb +2 -2
  281. data/lib/bundler/vendor/uri/lib/uri/ldap.rb +2 -2
  282. data/lib/bundler/vendor/uri/lib/uri/ldaps.rb +2 -1
  283. data/lib/bundler/vendor/uri/lib/uri/mailto.rb +2 -3
  284. data/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +16 -23
  285. data/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +105 -47
  286. data/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
  287. data/lib/bundler/vendor/uri/lib/uri/ws.rb +83 -0
  288. data/lib/bundler/vendor/uri/lib/uri/wss.rb +23 -0
  289. data/lib/bundler/vendor/uri/lib/uri.rb +3 -3
  290. data/lib/bundler/vendored_net_http.rb +23 -0
  291. data/lib/bundler/vendored_persistent.rb +0 -36
  292. data/lib/bundler/{vendored_molinillo.rb → vendored_pub_grub.rb} +1 -1
  293. data/lib/bundler/vendored_timeout.rb +12 -0
  294. data/lib/bundler/{vendored_tmpdir.rb → vendored_tsort.rb} +1 -1
  295. data/lib/bundler/vendored_uri.rb +18 -1
  296. data/lib/bundler/version.rb +5 -1
  297. data/lib/bundler/vlad.rb +1 -1
  298. data/lib/bundler/worker.rb +7 -9
  299. data/lib/bundler/yaml_serializer.rb +21 -12
  300. data/lib/bundler.rb +114 -121
  301. metadata +87 -41
  302. data/lib/bundler/dep_proxy.rb +0 -55
  303. data/lib/bundler/gemdeps.rb +0 -29
  304. data/lib/bundler/psyched_yaml.rb +0 -22
  305. data/lib/bundler/templates/gems.rb +0 -8
  306. data/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt +0 -5
  307. data/lib/bundler/templates/newgem/travis.yml.tt +0 -6
  308. data/lib/bundler/vendor/connection_pool/lib/connection_pool/monotonic_time.rb +0 -66
  309. data/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +0 -57
  310. data/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +0 -88
  311. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb +0 -36
  312. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +0 -66
  313. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +0 -62
  314. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +0 -63
  315. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +0 -61
  316. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +0 -126
  317. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +0 -46
  318. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +0 -36
  319. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +0 -164
  320. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +0 -255
  321. data/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +0 -143
  322. data/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +0 -6
  323. data/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +0 -112
  324. data/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb +0 -67
  325. data/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +0 -839
  326. data/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +0 -46
  327. data/lib/bundler/vendor/molinillo/lib/molinillo/state.rb +0 -58
  328. data/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -11
  329. data/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +0 -154
  330. data/lib/bundler/version_ranges.rb +0 -122
@@ -22,6 +22,7 @@ module Bundler
22
22
  @metadata_source = Source::Metadata.new
23
23
 
24
24
  @merged_gem_lockfile_sections = false
25
+ @local_mode = true
25
26
  end
26
27
 
27
28
  def merged_gem_lockfile_sections?
@@ -73,6 +74,10 @@ module Bundler
73
74
  global_rubygems_source
74
75
  end
75
76
 
77
+ def local_mode?
78
+ @local_mode
79
+ end
80
+
76
81
  def default_source
77
82
  global_path_source || global_rubygems_source
78
83
  end
@@ -98,7 +103,7 @@ module Bundler
98
103
  end
99
104
 
100
105
  def get(source)
101
- source_list_for(source).find {|s| equal_source?(source, s) || equivalent_source?(source, s) }
106
+ source_list_for(source).find {|s| equivalent_source?(source, s) }
102
107
  end
103
108
 
104
109
  def lock_sources
@@ -106,14 +111,14 @@ module Bundler
106
111
  end
107
112
 
108
113
  def lock_other_sources
109
- (path_sources + git_sources + plugin_sources).sort_by(&:to_s)
114
+ (path_sources + git_sources + plugin_sources).sort_by(&:identifier)
110
115
  end
111
116
 
112
117
  def lock_rubygems_sources
113
118
  if merged_gem_lockfile_sections?
114
119
  [combine_rubygems_sources]
115
120
  else
116
- rubygems_sources.sort_by(&:to_s)
121
+ rubygems_sources.sort_by(&:identifier)
117
122
  end
118
123
  end
119
124
 
@@ -140,11 +145,17 @@ module Bundler
140
145
  all_sources.each(&:local_only!)
141
146
  end
142
147
 
148
+ def local!
149
+ all_sources.each(&:local!)
150
+ end
151
+
143
152
  def cached!
144
153
  all_sources.each(&:cached!)
145
154
  end
146
155
 
147
156
  def remote!
157
+ @local_mode = false
158
+
148
159
  all_sources.each(&:remote!)
149
160
  end
150
161
 
@@ -157,23 +168,42 @@ module Bundler
157
168
  end
158
169
 
159
170
  def map_sources(replacement_sources)
160
- [@rubygems_sources, @path_sources, @git_sources, @plugin_sources].map do |sources|
171
+ rubygems = @rubygems_sources.map do |source|
172
+ replace_rubygems_source(replacement_sources, source) || source
173
+ end
174
+
175
+ git, plugin = [@git_sources, @plugin_sources].map do |sources|
161
176
  sources.map do |source|
162
177
  replacement_sources.find {|s| s == source } || source
163
178
  end
164
179
  end
180
+
181
+ path = @path_sources.map do |source|
182
+ replacement_sources.find {|s| s == (source.is_a?(Source::Gemspec) ? source.as_path_source : source) } || source
183
+ end
184
+
185
+ [rubygems, path, git, plugin]
165
186
  end
166
187
 
167
188
  def global_replacement_source(replacement_sources)
168
- replacement_source = replacement_sources.find {|s| s == global_rubygems_source }
189
+ replacement_source = replace_rubygems_source(replacement_sources, global_rubygems_source)
169
190
  return global_rubygems_source unless replacement_source
170
191
 
171
192
  replacement_source.local!
172
193
  replacement_source
173
194
  end
174
195
 
196
+ def replace_rubygems_source(replacement_sources, gemfile_source)
197
+ replacement_source = replacement_sources.find {|s| s == gemfile_source }
198
+ return unless replacement_source
199
+
200
+ # locked sources never include credentials so always prefer remotes from the gemfile
201
+ replacement_source.remotes = gemfile_source.remotes
202
+ replacement_source
203
+ end
204
+
175
205
  def different_sources?(lock_sources, replacement_sources)
176
- !equal_sources?(lock_sources, replacement_sources) && !equivalent_sources?(lock_sources, replacement_sources)
206
+ !equivalent_sources?(lock_sources, replacement_sources)
177
207
  end
178
208
 
179
209
  def rubygems_aggregate_class
@@ -202,7 +232,7 @@ module Bundler
202
232
  def warn_on_git_protocol(source)
203
233
  return if Bundler.settings["git.allow_insecure"]
204
234
 
205
- if source.uri =~ /^git\:/
235
+ if /^git\:/.match?(source.uri)
206
236
  Bundler.ui.warn "The git source `#{source.uri}` uses the `git` protocol, " \
207
237
  "which transmits data without encryption. Disable this warning with " \
208
238
  "`bundle config set --local git.allow_insecure true`, or switch to the `https` " \
@@ -210,34 +240,12 @@ module Bundler
210
240
  end
211
241
  end
212
242
 
213
- def equal_sources?(lock_sources, replacement_sources)
214
- lock_sources.sort_by(&:to_s) == replacement_sources.sort_by(&:to_s)
215
- end
216
-
217
- def equal_source?(source, other_source)
218
- return source.include?(other_source) if source.is_a?(Source::Rubygems) && other_source.is_a?(Source::Rubygems)
219
-
220
- source == other_source
221
- end
222
-
223
- def equivalent_source?(source, other_source)
224
- return false unless Bundler.settings[:allow_deployment_source_credential_changes] && source.is_a?(Source::Rubygems)
225
-
226
- equivalent_rubygems_sources?([source], [other_source])
227
- end
228
-
229
243
  def equivalent_sources?(lock_sources, replacement_sources)
230
- return false unless Bundler.settings[:allow_deployment_source_credential_changes]
231
-
232
- lock_rubygems_sources, lock_other_sources = lock_sources.partition {|s| s.is_a?(Source::Rubygems) }
233
- replacement_rubygems_sources, replacement_other_sources = replacement_sources.partition {|s| s.is_a?(Source::Rubygems) }
234
-
235
- equivalent_rubygems_sources?(lock_rubygems_sources, replacement_rubygems_sources) && equal_sources?(lock_other_sources, replacement_other_sources)
244
+ lock_sources.sort_by(&:identifier) == replacement_sources.sort_by(&:identifier)
236
245
  end
237
246
 
238
- def equivalent_rubygems_sources?(lock_sources, replacement_sources)
239
- actual_remotes = replacement_sources.map(&:remotes).flatten.uniq
240
- lock_sources.all? {|s| s.equivalent_remotes?(actual_remotes) }
247
+ def equivalent_source?(source, other_source)
248
+ source == other_source
241
249
  end
242
250
  end
243
251
  end
@@ -2,11 +2,12 @@
2
2
 
3
3
  module Bundler
4
4
  class SourceMap
5
- attr_reader :sources, :dependencies
5
+ attr_reader :sources, :dependencies, :locked_specs
6
6
 
7
- def initialize(sources, dependencies)
7
+ def initialize(sources, dependencies, locked_specs)
8
8
  @sources = sources
9
9
  @dependencies = dependencies
10
+ @locked_specs = locked_specs
10
11
  end
11
12
 
12
13
  def pinned_spec_names(skip = nil)
@@ -54,5 +55,17 @@ module Bundler
54
55
  requirements
55
56
  end
56
57
  end
58
+
59
+ def locked_requirements
60
+ @locked_requirements ||= begin
61
+ requirements = {}
62
+ locked_specs.each do |locked_spec|
63
+ source = locked_spec.source
64
+ source.add_dependency_names(locked_spec.name)
65
+ requirements[locked_spec.name] = source
66
+ end
67
+ requirements
68
+ end
69
+ end
57
70
  end
58
71
  end
@@ -1,57 +1,102 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "tsort"
3
+ require_relative "vendored_tsort"
4
4
 
5
5
  module Bundler
6
6
  class SpecSet
7
7
  include Enumerable
8
8
  include TSort
9
9
 
10
- def initialize(specs)
10
+ attr_reader :incomplete_specs
11
+
12
+ def initialize(specs, incomplete_specs = [])
11
13
  @specs = specs
14
+ @incomplete_specs = incomplete_specs
12
15
  end
13
16
 
14
- def for(dependencies, check = false, match_current_platform = false)
15
- handled = []
16
- deps = dependencies.dup
17
+ def for(dependencies, check = false, platforms = [nil])
18
+ handled = ["bundler"].product(platforms).map {|k| [k, true] }.to_h
19
+ deps = dependencies.product(platforms)
17
20
  specs = []
18
21
 
19
22
  loop do
20
23
  break unless dep = deps.shift
21
- next if handled.any?{|d| d.name == dep.name && (match_current_platform || d.__platform == dep.__platform) } || dep.name == "bundler"
22
24
 
23
- handled << dep
25
+ name = dep[0].name
26
+ platform = dep[1]
27
+ incomplete = false
28
+
29
+ key = [name, platform]
30
+ next if handled.key?(key)
24
31
 
25
- specs_for_dep = spec_for_dependency(dep, match_current_platform)
32
+ handled[key] = true
33
+
34
+ specs_for_dep = specs_for_dependency(*dep)
26
35
  if specs_for_dep.any?
27
- match_current_platform ? specs += specs_for_dep : specs |= specs_for_dep
36
+ specs.concat(specs_for_dep)
28
37
 
29
38
  specs_for_dep.first.dependencies.each do |d|
30
39
  next if d.type == :development
31
- d = DepProxy.get_proxy(d, dep.__platform) unless match_current_platform
32
- deps << d
40
+ incomplete = true if d.name != "bundler" && lookup[d.name].nil?
41
+ deps << [d, dep[1]]
33
42
  end
34
- elsif check
35
- return false
43
+ else
44
+ incomplete = true
45
+ end
46
+
47
+ if incomplete && check
48
+ @incomplete_specs += lookup[name] || [LazySpecification.new(name, nil, nil)]
36
49
  end
37
50
  end
38
51
 
39
- if spec = lookup["bundler"].first
40
- specs << spec
52
+ specs.uniq
53
+ end
54
+
55
+ def add_extra_platforms!(platforms)
56
+ return platforms.concat([Gem::Platform::RUBY]).uniq if @specs.empty?
57
+
58
+ new_platforms = all_platforms.select do |platform|
59
+ next if platforms.include?(platform)
60
+ next unless GemHelpers.generic(platform) == Gem::Platform::RUBY
61
+
62
+ complete_platform(platform)
63
+ end
64
+ return platforms if new_platforms.empty?
65
+
66
+ platforms.concat(new_platforms)
67
+
68
+ less_specific_platform = new_platforms.find {|platform| platform != Gem::Platform::RUBY && Bundler.local_platform === platform && platform === Bundler.local_platform }
69
+ platforms.delete(Bundler.local_platform) if less_specific_platform
70
+
71
+ platforms
72
+ end
73
+
74
+ def validate_deps(s)
75
+ s.runtime_dependencies.each do |dep|
76
+ next if dep.name == "bundler"
77
+
78
+ return :missing unless names.include?(dep.name)
79
+ return :invalid if none? {|spec| dep.matches_spec?(spec) }
41
80
  end
42
81
 
43
- check ? true : specs
82
+ :valid
44
83
  end
45
84
 
46
85
  def [](key)
47
86
  key = key.name if key.respond_to?(:name)
48
- lookup[key].reverse
87
+ lookup[key]&.reverse || []
49
88
  end
50
89
 
51
90
  def []=(key, value)
52
91
  @specs << value
53
- @lookup = nil
54
- @sorted = nil
92
+
93
+ reset!
94
+ end
95
+
96
+ def delete(specs)
97
+ specs.each {|spec| @specs.delete(spec) }
98
+
99
+ reset!
55
100
  end
56
101
 
57
102
  def sort!
@@ -67,14 +112,9 @@ module Bundler
67
112
  end
68
113
 
69
114
  def materialize(deps)
70
- materialized = self.for(deps, false, true)
115
+ materialized = self.for(deps, true)
71
116
 
72
- materialized.map! do |s|
73
- next s unless s.is_a?(LazySpecification)
74
- s.source.local!
75
- s.__materialize__ || s
76
- end
77
- SpecSet.new(materialized)
117
+ SpecSet.new(materialized, incomplete_specs)
78
118
  end
79
119
 
80
120
  # Materialize for all the specs in the spec set, regardless of what platform they're for
@@ -83,34 +123,49 @@ module Bundler
83
123
  def materialized_for_all_platforms
84
124
  @specs.map do |s|
85
125
  next s unless s.is_a?(LazySpecification)
86
- s.source.local!
87
126
  s.source.remote!
88
- spec = s.__materialize__
127
+ spec = s.materialize_for_installation
89
128
  raise GemNotFound, "Could not find #{s.full_name} in any of the sources" unless spec
90
129
  spec
91
130
  end
92
131
  end
93
132
 
133
+ def incomplete_for_platform?(deps, platform)
134
+ return false if @specs.empty?
135
+
136
+ @incomplete_specs = []
137
+
138
+ self.for(deps, true, [platform])
139
+
140
+ @incomplete_specs.any?
141
+ end
142
+
94
143
  def missing_specs
95
144
  @specs.select {|s| s.is_a?(LazySpecification) }
96
145
  end
97
146
 
98
- def merge(set)
99
- arr = sorted.dup
100
- set.each do |set_spec|
101
- full_name = set_spec.full_name
102
- next if arr.any? {|spec| spec.full_name == full_name }
103
- arr << set_spec
104
- end
105
- SpecSet.new(arr)
147
+ def -(other)
148
+ SpecSet.new(to_a - other.to_a)
106
149
  end
107
150
 
108
151
  def find_by_name_and_platform(name, platform)
109
152
  @specs.detect {|spec| spec.name == name && spec.match_platform(platform) }
110
153
  end
111
154
 
155
+ def specs_compatible_with(other)
156
+ select do |spec|
157
+ other.valid?(spec)
158
+ end
159
+ end
160
+
161
+ def delete_by_name(name)
162
+ @specs.reject! {|spec| spec.name == name }
163
+
164
+ reset!
165
+ end
166
+
112
167
  def what_required(spec)
113
- unless req = find {|s| s.dependencies.any? {|d| d.type == :runtime && d.name == spec.name } }
168
+ unless req = find {|s| s.runtime_dependencies.any? {|d| d.name == spec.name } }
114
169
  return [spec]
115
170
  end
116
171
  what_required(req) << spec
@@ -136,8 +191,56 @@ module Bundler
136
191
  sorted.each(&b)
137
192
  end
138
193
 
194
+ def names
195
+ lookup.keys
196
+ end
197
+
198
+ def valid?(s)
199
+ s.matches_current_metadata? && valid_dependencies?(s)
200
+ end
201
+
139
202
  private
140
203
 
204
+ def reset!
205
+ @sorted = nil
206
+ @lookup = nil
207
+ end
208
+
209
+ def complete_platform(platform)
210
+ new_specs = []
211
+
212
+ valid_platform = lookup.all? do |_, specs|
213
+ spec = specs.first
214
+ matching_specs = spec.source.specs.search([spec.name, spec.version])
215
+ platform_spec = GemHelpers.select_best_platform_match(matching_specs, platform).find do |s|
216
+ valid?(s)
217
+ end
218
+
219
+ if platform_spec
220
+ new_specs << LazySpecification.from_spec(platform_spec) unless specs.include?(platform_spec)
221
+ true
222
+ else
223
+ false
224
+ end
225
+ end
226
+
227
+ if valid_platform && new_specs.any?
228
+ @specs.concat(new_specs)
229
+
230
+ reset!
231
+ end
232
+
233
+ valid_platform
234
+ end
235
+
236
+ def all_platforms
237
+ @specs.flat_map {|spec| spec.source.specs.search([spec.name, spec.version]).map(&:platform) }.uniq
238
+ end
239
+
240
+ def valid_dependencies?(s)
241
+ validate_deps(s) == :valid
242
+ end
243
+
141
244
  def sorted
142
245
  rake = @specs.find {|s| s.name == "rake" }
143
246
  begin
@@ -146,7 +249,7 @@ module Bundler
146
249
  cgems = extract_circular_gems(error)
147
250
  raise CyclicDependencyError, "Your bundle requires gems that depend" \
148
251
  " on each other, creating an infinite loop. Please remove either" \
149
- " gem '#{cgems[1]}' or gem '#{cgems[0]}' and try again."
252
+ " gem '#{cgems[0]}' or gem '#{cgems[1]}' and try again."
150
253
  end
151
254
  end
152
255
 
@@ -156,8 +259,9 @@ module Bundler
156
259
 
157
260
  def lookup
158
261
  @lookup ||= begin
159
- lookup = Hash.new {|h, k| h[k] = [] }
160
- Index.sort_specs(@specs).reverse_each do |s|
262
+ lookup = {}
263
+ @specs.each do |s|
264
+ lookup[s.name] ||= []
161
265
  lookup[s.name] << s
162
266
  end
163
267
  lookup
@@ -169,19 +273,25 @@ module Bundler
169
273
  @specs.sort_by(&:name).each {|s| yield s }
170
274
  end
171
275
 
172
- def spec_for_dependency(dep, match_current_platform)
173
- specs_for_platforms = lookup[dep.name]
174
- if match_current_platform
175
- GemHelpers.select_best_platform_match(specs_for_platforms.select{|s| Gem::Platform.match_spec?(s) }, Bundler.local_platform)
276
+ def specs_for_dependency(dep, platform)
277
+ specs_for_name = lookup[dep.name]
278
+ return [] unless specs_for_name
279
+
280
+ if platform
281
+ GemHelpers.select_best_platform_match(specs_for_name, platform, force_ruby: dep.force_ruby_platform)
176
282
  else
177
- GemHelpers.select_best_platform_match(specs_for_platforms, dep.__platform)
283
+ GemHelpers.select_best_local_platform_match(specs_for_name, force_ruby: dep.force_ruby_platform)
178
284
  end
179
285
  end
180
286
 
181
287
  def tsort_each_child(s)
182
288
  s.dependencies.sort_by(&:name).each do |d|
183
289
  next if d.type == :development
184
- lookup[d.name].each {|s2| yield s2 }
290
+
291
+ specs_for_name = lookup[d.name]
292
+ next unless specs_for_name
293
+
294
+ specs_for_name.each {|s2| yield s2 }
185
295
  end
186
296
  end
187
297
  end
@@ -9,6 +9,7 @@ module Bundler
9
9
  spec
10
10
  end
11
11
 
12
+ attr_reader :checksum
12
13
  attr_accessor :stub, :ignored
13
14
 
14
15
  def source=(source)
@@ -16,7 +17,8 @@ module Bundler
16
17
  # Stub has no concept of source, which means that extension_dir may be wrong
17
18
  # This is the case for git-based gems. So, instead manually assign the extension dir
18
19
  return unless source.respond_to?(:extension_dir_name)
19
- path = File.join(stub.extensions_dir, source.extension_dir_name)
20
+ unique_extension_dir = [source.extension_dir_name, File.basename(full_gem_path)].uniq.join("-")
21
+ path = File.join(stub.extensions_dir, unique_extension_dir)
20
22
  stub.extension_dir = File.expand_path(path)
21
23
  end
22
24
 
@@ -56,7 +58,7 @@ module Bundler
56
58
  end
57
59
 
58
60
  def gem_build_complete_path
59
- File.join(extension_dir, "gem.build_complete")
61
+ stub.gem_build_complete_path
60
62
  end
61
63
 
62
64
  def default_gem?
@@ -64,15 +66,25 @@ module Bundler
64
66
  end
65
67
 
66
68
  def full_gem_path
67
- # deleted gems can have their stubs return nil, so in that case grab the
68
- # expired path from the full spec
69
- stub.full_gem_path || method_missing(:full_gem_path)
69
+ stub.full_gem_path
70
+ end
71
+
72
+ def full_gem_path=(path)
73
+ stub.full_gem_path = path
70
74
  end
71
75
 
72
76
  def full_require_paths
73
77
  stub.full_require_paths
74
78
  end
75
79
 
80
+ def require_paths
81
+ stub.require_paths
82
+ end
83
+
84
+ def base_dir=(path)
85
+ stub.base_dir = path
86
+ end
87
+
76
88
  def load_paths
77
89
  full_require_paths
78
90
  end
@@ -106,6 +118,7 @@ module Bundler
106
118
  end
107
119
 
108
120
  rs.source = source
121
+ rs.base_dir = stub.base_dir
109
122
 
110
123
  rs
111
124
  end
@@ -8,14 +8,12 @@
8
8
  # this file is here to facilitate running it.
9
9
  #
10
10
 
11
- require "pathname"
12
- ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../<%= relative_gemfile_path %>",
13
- Pathname.new(__FILE__).realpath)
11
+ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("<%= relative_gemfile_path %>", __dir__)
14
12
 
15
- bundle_binstub = File.expand_path("../bundle", __FILE__)
13
+ bundle_binstub = File.expand_path("bundle", __dir__)
16
14
 
17
15
  if File.file?(bundle_binstub)
18
- if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
16
+ if File.read(bundle_binstub, 300).include?("This file was generated by Bundler")
19
17
  load(bundle_binstub)
20
18
  else
21
19
  abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
@@ -27,7 +27,7 @@ m = Module.new do
27
27
  bundler_version = nil
28
28
  update_index = nil
29
29
  ARGV.each_with_index do |a, i|
30
- if update_index && update_index.succ == i && a =~ Gem::Version::ANCHORED_VERSION_PATTERN
30
+ if update_index && update_index.succ == i && a.match?(Gem::Version::ANCHORED_VERSION_PATTERN)
31
31
  bundler_version = a
32
32
  end
33
33
  next unless a =~ /\A--bundler(?:[= ](#{Gem::Version::VERSION_PATTERN}))?\z/
@@ -41,13 +41,13 @@ m = Module.new do
41
41
  gemfile = ENV["BUNDLE_GEMFILE"]
42
42
  return gemfile if gemfile && !gemfile.empty?
43
43
 
44
- File.expand_path("../<%= relative_gemfile_path %>", __FILE__)
44
+ File.expand_path("<%= relative_gemfile_path %>", __dir__)
45
45
  end
46
46
 
47
47
  def lockfile
48
48
  lockfile =
49
49
  case File.basename(gemfile)
50
- when "gems.rb" then gemfile.sub(/\.rb$/, gemfile)
50
+ when "gems.rb" then gemfile.sub(/\.rb$/, ".locked")
51
51
  else "#{gemfile}.lock"
52
52
  end
53
53
  File.expand_path(lockfile)
@@ -62,8 +62,9 @@ m = Module.new do
62
62
 
63
63
  def bundler_requirement
64
64
  @bundler_requirement ||=
65
- env_var_version || cli_arg_version ||
66
- bundler_requirement_for(lockfile_version)
65
+ env_var_version ||
66
+ cli_arg_version ||
67
+ bundler_requirement_for(lockfile_version)
67
68
  end
68
69
 
69
70
  def bundler_requirement_for(version)
@@ -71,13 +72,7 @@ m = Module.new do
71
72
 
72
73
  bundler_gem_version = Gem::Version.new(version)
73
74
 
74
- requirement = bundler_gem_version.approximate_recommendation
75
-
76
- return requirement unless Gem::Version.new(Gem::VERSION) < Gem::Version.new("2.7.0")
77
-
78
- requirement += ".a" if bundler_gem_version.prerelease?
79
-
80
- requirement
75
+ bundler_gem_version.approximate_recommendation
81
76
  end
82
77
 
83
78
  def load_bundler!
@@ -1,4 +1,6 @@
1
1
  #!/usr/bin/env <%= Bundler.settings[:shebang] || RbConfig::CONFIG["ruby_install_name"] %>
2
+ # frozen_string_literal: true
3
+
2
4
  #
3
5
  # This file was generated by Bundler.
4
6
  #
@@ -6,9 +8,7 @@
6
8
  # this file is here to facilitate running it.
7
9
  #
8
10
 
9
- require "pathname"
10
- path = Pathname.new(__FILE__)
11
- $:.unshift File.expand_path "../<%= standalone_path %>", path.realpath
11
+ $:.unshift File.expand_path "<%= standalone_path %>", __dir__
12
12
 
13
13
  require "bundler/setup"
14
- load File.expand_path "../<%= executable_path %>", path.realpath
14
+ load File.expand_path "<%= executable_path %>", __dir__
@@ -2,6 +2,4 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
6
-
7
5
  # gem "rails"