summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/bundler.rb8
-rw-r--r--spec/commands/config_spec.rb12
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