diff options
author | David RodrÃguez <deivid.rodriguez@riseup.net> | 2020-02-03 11:50:59 +0100 |
---|---|---|
committer | David RodrÃguez <deivid.rodriguez@riseup.net> | 2020-02-03 12:27:26 +0100 |
commit | 2a62902a202c3fc0d576b016d28a93f0d18f955f (patch) | |
tree | d57243bffe1d1e4dce98db5eb7ea29a76c7124da | |
parent | 203d02c3670083a95733afc1a9d7a870d1ae1c34 (diff) | |
download | bundler-app_config_path_absolute.tar.gz |
Fix config location edge caseapp_config_path_absolute
If `BUNDLE_APP_CONFIG` is set to an absolute path, and there's no
Gemfile up in the directory hierarchy, bundler would end up using the
default config location instead of the customized one.
This commit fixes that.
-rw-r--r-- | lib/bundler.rb | 8 | ||||
-rw-r--r-- | spec/commands/config_spec.rb | 12 |
2 files changed, 18 insertions, 2 deletions
diff --git a/lib/bundler.rb b/lib/bundler.rb index df345539c8..f081d4d63f 100644 --- a/lib/bundler.rb +++ b/lib/bundler.rb @@ -285,7 +285,13 @@ module Bundler def app_config_path if app_config = ENV["BUNDLE_APP_CONFIG"] - Pathname.new(app_config).expand_path(root) + app_config_pathname = Pathname.new(app_config) + + if app_config_pathname.absolute? + app_config_pathname + else + app_config_pathname.expand_path(root) + end else root.join(".bundle") end diff --git a/spec/commands/config_spec.rb b/spec/commands/config_spec.rb index 7a45dd0dd7..3a6b72d988 100644 --- a/spec/commands/config_spec.rb +++ b/spec/commands/config_spec.rb @@ -35,7 +35,7 @@ RSpec.describe ".bundle/config" do end end - describe "location" do + describe "location with a gemfile" do before :each do gemfile <<-G source "#{file_uri_for(gem_repo1)}" @@ -64,6 +64,16 @@ RSpec.describe ".bundle/config" do end end + describe "location without a gemfile" do + it "works with an absolute path" do + ENV["BUNDLE_APP_CONFIG"] = tmp("foo/bar").to_s + bundle "config set --local path vendor/bundle" + + expect(bundled_app(".bundle")).not_to exist + expect(tmp("foo/bar/config")).to exist + end + end + describe "global" do before(:each) do install_gemfile <<-G |