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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +1129 -4
- data/README.md +4 -8
- data/bundler.gemspec +11 -11
- data/exe/bundle +5 -26
- data/exe/bundler +1 -1
- data/lib/bundler/.document +1 -0
- data/lib/bundler/build_metadata.rb +4 -4
- data/lib/bundler/capistrano.rb +1 -1
- data/lib/bundler/checksum.rb +254 -0
- data/lib/bundler/ci_detector.rb +75 -0
- data/lib/bundler/cli/add.rb +4 -4
- data/lib/bundler/cli/binstubs.rb +10 -6
- data/lib/bundler/cli/cache.rb +1 -1
- data/lib/bundler/cli/check.rb +3 -3
- data/lib/bundler/cli/common.rb +13 -3
- data/lib/bundler/cli/config.rb +18 -8
- data/lib/bundler/cli/console.rb +5 -4
- data/lib/bundler/cli/doctor.rb +12 -5
- data/lib/bundler/cli/exec.rb +1 -1
- data/lib/bundler/cli/fund.rb +1 -1
- data/lib/bundler/cli/gem.rb +141 -48
- data/lib/bundler/cli/info.rb +27 -17
- data/lib/bundler/cli/init.rb +6 -2
- data/lib/bundler/cli/install.rb +22 -39
- data/lib/bundler/cli/issue.rb +5 -4
- data/lib/bundler/cli/lock.rb +36 -29
- data/lib/bundler/cli/open.rb +9 -9
- data/lib/bundler/cli/outdated.rb +19 -12
- data/lib/bundler/cli/platform.rb +8 -6
- data/lib/bundler/cli/plugin.rb +9 -15
- data/lib/bundler/cli/pristine.rb +38 -30
- data/lib/bundler/cli/show.rb +3 -3
- data/lib/bundler/cli/update.rb +12 -7
- data/lib/bundler/cli/viz.rb +1 -1
- data/lib/bundler/cli.rb +266 -285
- data/lib/bundler/compact_index_client/cache.rb +53 -67
- data/lib/bundler/compact_index_client/cache_file.rb +153 -0
- data/lib/bundler/compact_index_client/gem_parser.rb +7 -3
- data/lib/bundler/compact_index_client/parser.rb +84 -0
- data/lib/bundler/compact_index_client/updater.rb +83 -76
- data/lib/bundler/compact_index_client.rb +59 -87
- data/lib/bundler/constants.rb +9 -2
- data/lib/bundler/current_ruby.rb +12 -16
- data/lib/bundler/definition.rb +509 -319
- data/lib/bundler/dependency.rb +33 -71
- data/lib/bundler/digest.rb +71 -0
- data/lib/bundler/dsl.rb +88 -69
- data/lib/bundler/endpoint_specification.rb +32 -15
- data/lib/bundler/env.rb +5 -7
- data/lib/bundler/environment_preserver.rb +8 -22
- data/lib/bundler/errors.rb +101 -13
- data/lib/bundler/feature_flag.rb +0 -2
- data/lib/bundler/fetcher/base.rb +11 -11
- data/lib/bundler/fetcher/compact_index.rb +32 -52
- data/lib/bundler/fetcher/dependency.rb +3 -7
- data/lib/bundler/fetcher/downloader.rb +17 -16
- data/lib/bundler/fetcher/gem_remote_fetcher.rb +16 -0
- data/lib/bundler/fetcher/index.rb +2 -29
- data/lib/bundler/fetcher.rb +87 -79
- data/lib/bundler/force_platform.rb +18 -0
- data/lib/bundler/friendly_errors.rb +29 -40
- data/lib/bundler/gem_helper.rb +11 -23
- data/lib/bundler/gem_helpers.rb +30 -6
- data/lib/bundler/gem_version_promoter.rb +68 -109
- data/lib/bundler/graph.rb +9 -9
- data/lib/bundler/index.rb +71 -79
- data/lib/bundler/injector.rb +23 -11
- data/lib/bundler/inline.rb +11 -23
- data/lib/bundler/installer/gem_installer.rb +18 -11
- data/lib/bundler/installer/parallel_installer.rb +17 -65
- data/lib/bundler/installer/standalone.rb +56 -15
- data/lib/bundler/installer.rb +35 -61
- data/lib/bundler/lazy_specification.rb +92 -61
- data/lib/bundler/lockfile_generator.rb +12 -3
- data/lib/bundler/lockfile_parser.rb +137 -70
- data/lib/bundler/man/bundle-add.1 +19 -26
- data/lib/bundler/man/bundle-add.1.ronn +16 -4
- data/lib/bundler/man/bundle-binstubs.1 +4 -16
- data/lib/bundler/man/bundle-cache.1 +9 -24
- data/lib/bundler/man/bundle-cache.1.ronn +9 -2
- data/lib/bundler/man/bundle-check.1 +5 -12
- data/lib/bundler/man/bundle-check.1.ronn +3 -0
- data/lib/bundler/man/bundle-clean.1 +4 -11
- data/lib/bundler/man/bundle-clean.1.ronn +1 -1
- data/lib/bundler/man/bundle-config.1 +47 -224
- data/lib/bundler/man/bundle-config.1.ronn +40 -28
- data/lib/bundler/man/bundle-console.1 +35 -0
- data/lib/bundler/man/bundle-console.1.ronn +44 -0
- data/lib/bundler/man/bundle-doctor.1 +4 -18
- data/lib/bundler/man/bundle-exec.1 +16 -77
- data/lib/bundler/man/bundle-exec.1.ronn +8 -9
- data/lib/bundler/man/bundle-gem.1 +45 -72
- data/lib/bundler/man/bundle-gem.1.ronn +32 -5
- data/lib/bundler/man/bundle-help.1 +9 -0
- data/lib/bundler/man/bundle-help.1.ronn +12 -0
- data/lib/bundler/man/bundle-info.1 +5 -11
- data/lib/bundler/man/bundle-info.1.ronn +3 -3
- data/lib/bundler/man/bundle-init.1 +6 -11
- data/lib/bundler/man/bundle-init.1.ronn +2 -0
- data/lib/bundler/man/bundle-inject.1 +8 -18
- data/lib/bundler/man/bundle-inject.1.ronn +3 -1
- data/lib/bundler/man/bundle-install.1 +32 -155
- data/lib/bundler/man/bundle-install.1.ronn +11 -33
- data/lib/bundler/man/bundle-list.1 +4 -19
- data/lib/bundler/man/bundle-lock.1 +5 -29
- data/lib/bundler/man/bundle-open.1 +18 -18
- data/lib/bundler/man/bundle-open.1.ronn +9 -1
- data/lib/bundler/man/bundle-outdated.1 +17 -72
- data/lib/bundler/man/bundle-outdated.1.ronn +13 -18
- data/lib/bundler/man/bundle-platform.1 +16 -28
- data/lib/bundler/man/bundle-platform.1.ronn +14 -7
- data/lib/bundler/man/bundle-plugin.1 +58 -0
- data/lib/bundler/man/bundle-plugin.1.ronn +63 -0
- data/lib/bundler/man/bundle-pristine.1 +5 -16
- data/lib/bundler/man/bundle-remove.1 +4 -14
- data/lib/bundler/man/bundle-show.1 +3 -10
- data/lib/bundler/man/bundle-update.1 +19 -138
- data/lib/bundler/man/bundle-update.1.ronn +2 -1
- data/lib/bundler/man/bundle-version.1 +22 -0
- data/lib/bundler/man/bundle-version.1.ronn +24 -0
- data/lib/bundler/man/bundle-viz.1 +6 -15
- data/lib/bundler/man/bundle-viz.1.ronn +2 -0
- data/lib/bundler/man/bundle.1 +17 -51
- data/lib/bundler/man/bundle.1.ronn +12 -7
- data/lib/bundler/man/gemfile.5 +130 -346
- data/lib/bundler/man/gemfile.5.ronn +121 -86
- data/lib/bundler/man/index.txt +4 -0
- data/lib/bundler/match_metadata.rb +17 -0
- data/lib/bundler/match_platform.rb +1 -2
- data/lib/bundler/match_remote_metadata.rb +29 -0
- data/lib/bundler/mirror.rb +8 -10
- data/lib/bundler/plugin/api/source.rb +9 -13
- data/lib/bundler/plugin/index.rb +13 -5
- data/lib/bundler/plugin/installer/git.rb +0 -4
- data/lib/bundler/plugin/installer/path.rb +18 -0
- data/lib/bundler/plugin/installer/rubygems.rb +0 -8
- data/lib/bundler/plugin/installer.rb +42 -19
- data/lib/bundler/plugin/source_list.rb +4 -4
- data/lib/bundler/plugin.rb +16 -7
- data/lib/bundler/process_lock.rb +1 -1
- data/lib/bundler/remote_specification.rb +11 -5
- data/lib/bundler/resolver/base.rb +111 -0
- data/lib/bundler/resolver/candidate.rb +82 -0
- data/lib/bundler/resolver/incompatibility.rb +15 -0
- data/lib/bundler/resolver/package.rb +81 -0
- data/lib/bundler/resolver/root.rb +25 -0
- data/lib/bundler/resolver/spec_group.rb +53 -66
- data/lib/bundler/resolver.rb +419 -307
- data/lib/bundler/retry.rb +1 -1
- data/lib/bundler/ruby_dsl.rb +42 -7
- data/lib/bundler/ruby_version.rb +16 -22
- data/lib/bundler/rubygems_ext.rb +250 -64
- data/lib/bundler/rubygems_gem_installer.rb +90 -64
- data/lib/bundler/rubygems_integration.rb +81 -190
- data/lib/bundler/runtime.rb +8 -13
- data/lib/bundler/safe_marshal.rb +31 -0
- data/lib/bundler/self_manager.rb +206 -0
- data/lib/bundler/settings.rb +139 -57
- data/lib/bundler/setup.rb +13 -1
- data/lib/bundler/shared_helpers.rb +67 -36
- data/lib/bundler/source/git/git_proxy.rb +285 -82
- data/lib/bundler/source/git.rb +81 -41
- data/lib/bundler/source/metadata.rb +17 -16
- data/lib/bundler/source/path/installer.rb +1 -22
- data/lib/bundler/source/path.rb +13 -25
- data/lib/bundler/source/rubygems/remote.rb +1 -1
- data/lib/bundler/source/rubygems.rb +164 -234
- data/lib/bundler/source/rubygems_aggregate.rb +1 -1
- data/lib/bundler/source.rb +7 -6
- data/lib/bundler/source_list.rb +40 -32
- data/lib/bundler/source_map.rb +15 -2
- data/lib/bundler/spec_set.rb +156 -46
- data/lib/bundler/stub_specification.rb +18 -5
- data/lib/bundler/templates/Executable +3 -5
- data/lib/bundler/templates/Executable.bundler +7 -12
- data/lib/bundler/templates/Executable.standalone +4 -4
- data/lib/bundler/templates/Gemfile +0 -2
- data/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +77 -29
- data/lib/bundler/templates/newgem/Cargo.toml.tt +7 -0
- data/lib/bundler/templates/newgem/Gemfile.tt +8 -2
- data/lib/bundler/templates/newgem/README.md.tt +7 -11
- data/lib/bundler/templates/newgem/Rakefile.tt +28 -4
- data/lib/bundler/templates/newgem/bin/console.tt +0 -4
- data/lib/bundler/templates/newgem/circleci/config.yml.tt +12 -0
- data/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +15 -0
- data/lib/bundler/templates/newgem/ext/newgem/extconf-c.rb.tt +10 -0
- data/lib/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt +6 -0
- data/lib/bundler/templates/newgem/ext/newgem/newgem.c.tt +1 -1
- data/lib/bundler/templates/newgem/ext/newgem/src/lib.rs.tt +12 -0
- data/lib/bundler/templates/newgem/github/workflows/main.yml.tt +13 -3
- data/lib/bundler/templates/newgem/gitignore.tt +3 -0
- data/lib/bundler/templates/newgem/gitlab-ci.yml.tt +13 -4
- data/lib/bundler/templates/newgem/newgem.gemspec.tt +25 -17
- data/lib/bundler/templates/newgem/rubocop.yml.tt +0 -5
- data/lib/bundler/templates/newgem/sig/newgem.rbs.tt +8 -0
- data/lib/bundler/templates/newgem/standard.yml.tt +3 -0
- data/lib/bundler/templates/newgem/test/minitest/{newgem_test.rb.tt → test_newgem.rb.tt} +1 -1
- data/lib/bundler/ui/rg_proxy.rb +1 -1
- data/lib/bundler/ui/shell.rb +38 -15
- data/lib/bundler/ui/silent.rb +21 -5
- data/lib/bundler/uri_credentials_filter.rb +2 -2
- data/lib/bundler/uri_normalizer.rb +23 -0
- data/lib/bundler/vendor/.document +1 -0
- data/lib/bundler/vendor/connection_pool/.document +1 -0
- data/lib/bundler/vendor/connection_pool/LICENSE +20 -0
- data/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +19 -21
- data/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +1 -1
- data/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +56 -0
- data/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +92 -78
- data/lib/bundler/vendor/fileutils/.document +1 -0
- data/lib/bundler/vendor/fileutils/LICENSE.txt +22 -0
- data/lib/bundler/vendor/fileutils/lib/fileutils.rb +1340 -410
- data/lib/bundler/vendor/net-http-persistent/.document +1 -0
- data/lib/bundler/vendor/net-http-persistent/README.rdoc +82 -0
- data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +4 -3
- data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +23 -11
- data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +1 -1
- data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +57 -57
- data/lib/bundler/vendor/pub_grub/.document +1 -0
- data/lib/bundler/vendor/pub_grub/LICENSE.txt +21 -0
- data/lib/bundler/vendor/pub_grub/lib/pub_grub/assignment.rb +20 -0
- data/lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb +189 -0
- data/lib/bundler/vendor/pub_grub/lib/pub_grub/failure_writer.rb +182 -0
- data/lib/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb +150 -0
- data/lib/bundler/vendor/pub_grub/lib/pub_grub/package.rb +43 -0
- data/lib/bundler/vendor/pub_grub/lib/pub_grub/partial_solution.rb +121 -0
- data/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb +45 -0
- data/lib/bundler/vendor/pub_grub/lib/pub_grub/solve_failure.rb +19 -0
- data/lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb +61 -0
- data/lib/bundler/vendor/pub_grub/lib/pub_grub/term.rb +105 -0
- data/lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb +3 -0
- data/lib/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb +129 -0
- data/lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb +411 -0
- data/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb +248 -0
- data/lib/bundler/vendor/pub_grub/lib/pub_grub/version_union.rb +178 -0
- data/lib/bundler/vendor/pub_grub/lib/pub_grub.rb +31 -0
- data/lib/bundler/vendor/thor/.document +1 -0
- data/lib/bundler/vendor/thor/LICENSE.md +20 -0
- data/lib/bundler/vendor/thor/lib/thor/actions/create_file.rb +3 -2
- data/lib/bundler/vendor/thor/lib/thor/actions/directory.rb +1 -1
- data/lib/bundler/vendor/thor/lib/thor/actions/empty_directory.rb +1 -1
- data/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +12 -14
- data/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +16 -6
- data/lib/bundler/vendor/thor/lib/thor/actions.rb +21 -17
- data/lib/bundler/vendor/thor/lib/thor/base.rb +140 -14
- data/lib/bundler/vendor/thor/lib/thor/command.rb +13 -4
- data/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +10 -0
- data/lib/bundler/vendor/thor/lib/thor/error.rb +16 -20
- data/lib/bundler/vendor/thor/lib/thor/group.rb +1 -1
- data/lib/bundler/vendor/thor/lib/thor/invocation.rb +1 -1
- data/lib/bundler/vendor/thor/lib/thor/nested_context.rb +2 -2
- data/lib/bundler/vendor/thor/lib/thor/parser/argument.rb +20 -1
- data/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb +33 -17
- data/lib/bundler/vendor/thor/lib/thor/parser/option.rb +27 -8
- data/lib/bundler/vendor/thor/lib/thor/parser/options.rb +63 -7
- data/lib/bundler/vendor/thor/lib/thor/rake_compat.rb +2 -2
- data/lib/bundler/vendor/thor/lib/thor/runner.rb +40 -30
- data/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +48 -154
- data/lib/bundler/vendor/thor/lib/thor/shell/color.rb +1 -46
- data/lib/bundler/vendor/thor/lib/thor/shell/column_printer.rb +29 -0
- data/lib/bundler/vendor/thor/lib/thor/shell/html.rb +0 -45
- data/lib/bundler/vendor/thor/lib/thor/shell/table_printer.rb +134 -0
- data/lib/bundler/vendor/thor/lib/thor/shell/terminal.rb +42 -0
- data/lib/bundler/vendor/thor/lib/thor/shell/wrapped_printer.rb +38 -0
- data/lib/bundler/vendor/thor/lib/thor/shell.rb +2 -2
- data/lib/bundler/vendor/thor/lib/thor/util.rb +9 -8
- data/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
- data/lib/bundler/vendor/thor/lib/thor.rb +155 -8
- data/lib/bundler/vendor/tsort/.document +1 -0
- data/lib/bundler/vendor/tsort/LICENSE.txt +22 -0
- data/lib/bundler/vendor/tsort/lib/tsort.rb +455 -0
- data/lib/bundler/vendor/uri/.document +1 -0
- data/lib/bundler/vendor/uri/LICENSE.txt +22 -0
- data/lib/bundler/vendor/uri/lib/uri/common.rb +316 -207
- data/lib/bundler/vendor/uri/lib/uri/file.rb +7 -1
- data/lib/bundler/vendor/uri/lib/uri/ftp.rb +2 -2
- data/lib/bundler/vendor/uri/lib/uri/generic.rb +33 -13
- data/lib/bundler/vendor/uri/lib/uri/http.rb +40 -3
- data/lib/bundler/vendor/uri/lib/uri/https.rb +2 -2
- data/lib/bundler/vendor/uri/lib/uri/ldap.rb +2 -2
- data/lib/bundler/vendor/uri/lib/uri/ldaps.rb +2 -1
- data/lib/bundler/vendor/uri/lib/uri/mailto.rb +2 -3
- data/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +16 -23
- data/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +105 -47
- data/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
- data/lib/bundler/vendor/uri/lib/uri/ws.rb +83 -0
- data/lib/bundler/vendor/uri/lib/uri/wss.rb +23 -0
- data/lib/bundler/vendor/uri/lib/uri.rb +3 -3
- data/lib/bundler/vendored_net_http.rb +23 -0
- data/lib/bundler/vendored_persistent.rb +0 -36
- data/lib/bundler/{vendored_molinillo.rb → vendored_pub_grub.rb} +1 -1
- data/lib/bundler/vendored_timeout.rb +12 -0
- data/lib/bundler/{vendored_tmpdir.rb → vendored_tsort.rb} +1 -1
- data/lib/bundler/vendored_uri.rb +18 -1
- data/lib/bundler/version.rb +5 -1
- data/lib/bundler/vlad.rb +1 -1
- data/lib/bundler/worker.rb +7 -9
- data/lib/bundler/yaml_serializer.rb +21 -12
- data/lib/bundler.rb +114 -121
- metadata +87 -41
- data/lib/bundler/dep_proxy.rb +0 -55
- data/lib/bundler/gemdeps.rb +0 -29
- data/lib/bundler/psyched_yaml.rb +0 -22
- data/lib/bundler/templates/gems.rb +0 -8
- data/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt +0 -5
- data/lib/bundler/templates/newgem/travis.yml.tt +0 -6
- data/lib/bundler/vendor/connection_pool/lib/connection_pool/monotonic_time.rb +0 -66
- data/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +0 -57
- data/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +0 -88
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb +0 -36
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +0 -66
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +0 -62
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +0 -63
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +0 -61
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +0 -126
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +0 -46
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +0 -36
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +0 -164
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +0 -255
- data/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +0 -143
- data/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +0 -6
- data/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +0 -112
- data/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb +0 -67
- data/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +0 -839
- data/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +0 -46
- data/lib/bundler/vendor/molinillo/lib/molinillo/state.rb +0 -58
- data/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -11
- data/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +0 -154
- data/lib/bundler/version_ranges.rb +0 -122
data/lib/bundler/source_list.rb
CHANGED
@@ -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|
|
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(&:
|
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(&:
|
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
|
-
|
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
|
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
|
-
!
|
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
|
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
|
-
|
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
|
239
|
-
|
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
|
data/lib/bundler/source_map.rb
CHANGED
@@ -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
|
data/lib/bundler/spec_set.rb
CHANGED
@@ -1,57 +1,102 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
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
|
-
|
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,
|
15
|
-
handled = []
|
16
|
-
deps = dependencies.
|
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
|
-
|
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
|
-
|
32
|
+
handled[key] = true
|
33
|
+
|
34
|
+
specs_for_dep = specs_for_dependency(*dep)
|
26
35
|
if specs_for_dep.any?
|
27
|
-
|
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
|
-
|
32
|
-
deps << d
|
40
|
+
incomplete = true if d.name != "bundler" && lookup[d.name].nil?
|
41
|
+
deps << [d, dep[1]]
|
33
42
|
end
|
34
|
-
|
35
|
-
|
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
|
-
|
40
|
-
|
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
|
-
|
82
|
+
:valid
|
44
83
|
end
|
45
84
|
|
46
85
|
def [](key)
|
47
86
|
key = key.name if key.respond_to?(:name)
|
48
|
-
lookup[key]
|
87
|
+
lookup[key]&.reverse || []
|
49
88
|
end
|
50
89
|
|
51
90
|
def []=(key, value)
|
52
91
|
@specs << value
|
53
|
-
|
54
|
-
|
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,
|
115
|
+
materialized = self.for(deps, true)
|
71
116
|
|
72
|
-
materialized
|
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.
|
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
|
99
|
-
|
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.
|
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[
|
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 =
|
160
|
-
|
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
|
173
|
-
|
174
|
-
|
175
|
-
|
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.
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
68
|
-
|
69
|
-
|
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
|
-
|
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("
|
13
|
+
bundle_binstub = File.expand_path("bundle", __dir__)
|
16
14
|
|
17
15
|
if File.file?(bundle_binstub)
|
18
|
-
if File.read(bundle_binstub, 300)
|
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
|
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("
|
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$/,
|
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 ||
|
66
|
-
|
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
|
-
|
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
|
-
|
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 "
|
14
|
+
load File.expand_path "<%= executable_path %>", __dir__
|