[rubygems/rubygems] Make the "auto-user-install" logic easier to follow

https://github.com/rubygems/rubygems/commit/4b4d9c0106
This commit is contained in:
Vít Ondruch 2023-12-08 14:03:07 +01:00 committed by Hiroshi SHIBATA
parent c032dfb5cb
commit b37288c047
No known key found for this signature in database
GPG Key ID: F9CF13417264FAC2

View File

@ -675,16 +675,20 @@ class Gem::Installer
@build_args = options[:build_args]
@gem_home = @install_dir || Gem.dir
@gem_home = @install_dir
# `--build-root` overrides `--user-install` and auto-user-install
if @build_root.nil? && @install_dir.nil?
if options[:user_install]
@gem_home = Gem.user_dir
elsif !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
unless @gem_home
# `--build-root` overrides `--user-install` and auto-user-install
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))
say "Defaulting to user installation because default installation directory (#{Gem.dir}) is not writable."
@gem_home = Gem.user_dir
end
end
@gem_home ||= Gem.dir
end
# If the user has asked for the gem to be installed in a directory that is