summaryrefslogtreecommitdiff
path: root/lib/rubygems
diff options
context:
space:
mode:
authorVít Ondruch <[email protected]>2023-12-12 14:38:45 +0100
committerHiroshi SHIBATA <[email protected]>2023-12-13 12:16:55 +0900
commit402fd96ddc401cf35bced8d394c44df98d6fc466 (patch)
treeed4d5d5b85874b05fb62c4bfd7a48809dc09a178 /lib/rubygems
parent844759ccdbf9400796259888d613597585ad697a (diff)
[rubygems/rubygems] Make sure `--no-user-install` is respected for auto user installation
The `options[:user_install]` might have three states: * `true`: `--user-install` * `false`: `--no-user-install` and * `nil`: option was not specified However, this had not been respected previously and the `false` and `nil` were treated the same. This could lead to auto user installation despite `--no-user-install` being specified on the command line. Fixes https://github.com/rubygems/rubygems/pull/7237 https://github.com/rubygems/rubygems/commit/9281545474
Diffstat (limited to 'lib/rubygems')
-rw-r--r--lib/rubygems/installer.rb2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/rubygems/installer.rb b/lib/rubygems/installer.rb
index b4375c3f1c..acb49f510a 100644
--- a/lib/rubygems/installer.rb
+++ b/lib/rubygems/installer.rb
@@ -682,7 +682,7 @@ class Gem::Installer
if @build_root.nil?
if options[:user_install]
@gem_home = Gem.user_dir
- elsif !ENV.key?("GEM_HOME") && (File.exist?(Gem.dir) && !File.writable?(Gem.dir))
+ elsif options[:user_install].nil? && !ENV.key?("GEM_HOME") && (File.exist?(Gem.dir) && !File.writable?(Gem.dir))
say "Defaulting to user installation because default installation directory (#{Gem.dir}) is not writable."
@gem_home = Gem.user_dir
end