diff options
-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 |