summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoel Turkel <jturkel@salsify.com>2019-01-07 10:52:33 -0500
committerJoel Turkel <jturkel@salsify.com>2019-01-07 11:03:31 -0500
commit8b0779a0719ee702c59e1d638cccc32d9a69767b (patch)
treece0865ffd83b5eae1f9bfd0bb4dcbe9f1dbf19d4
parenta63a39d738865665f714f179fe42dd10006da26d (diff)
downloadbundler-8b0779a0719ee702c59e1d638cccc32d9a69767b.tar.gz
Don't check for the existence of a writable home directory if BUNDLE_USER_HOME is set
-rw-r--r--lib/bundler.rb10
-rw-r--r--spec/bundler/bundler_spec.rb1
2 files changed, 6 insertions, 5 deletions
diff --git a/lib/bundler.rb b/lib/bundler.rb
index 137d916cc6..3115b931ec 100644
--- a/lib/bundler.rb
+++ b/lib/bundler.rb
@@ -198,19 +198,19 @@ module Bundler
def user_bundle_path(dir = "home")
env_var, fallback = case dir
when "home"
- ["BUNDLE_USER_HOME", Pathname.new(user_home).join(".bundle")]
+ ["BUNDLE_USER_HOME", proc { Pathname.new(user_home).join(".bundle") }]
when "cache"
- ["BUNDLE_USER_CACHE", user_bundle_path.join("cache")]
+ ["BUNDLE_USER_CACHE", proc { user_bundle_path.join("cache") }]
when "config"
- ["BUNDLE_USER_CONFIG", user_bundle_path.join("config")]
+ ["BUNDLE_USER_CONFIG", proc { user_bundle_path.join("config") }]
when "plugin"
- ["BUNDLE_USER_PLUGIN", user_bundle_path.join("plugin")]
+ ["BUNDLE_USER_PLUGIN", proc { user_bundle_path.join("plugin") }]
else
raise BundlerError, "Unknown user path requested: #{dir}"
end
# `fallback` will already be a Pathname, but Pathname.new() is
# idempotent so it's OK
- Pathname.new(ENV.fetch(env_var, fallback))
+ Pathname.new(ENV.fetch(env_var, &fallback))
end
def user_cache
diff --git a/spec/bundler/bundler_spec.rb b/spec/bundler/bundler_spec.rb
index 194d6752b2..c21fc5f7a5 100644
--- a/spec/bundler/bundler_spec.rb
+++ b/spec/bundler/bundler_spec.rb
@@ -465,6 +465,7 @@ MESSAGE
it "should use custom home path as root for other paths" do
ENV["BUNDLE_USER_HOME"] = bundle_user_home_custom.to_s
+ allow(Bundler.rubygems).to receive(:user_home).and_raise
expect(Bundler.user_bundle_path).to eq(bundle_user_home_custom)
expect(Bundler.user_bundle_path("home")).to eq(bundle_user_home_custom)
expect(Bundler.user_bundle_path("cache")).to eq(bundle_user_home_custom.join("cache"))