diff options
| author | Vít Ondruch <vondruch@redhat.com> | 2023-12-08 14:03:07 +0100 |
|---|---|---|
| committer | Hiroshi SHIBATA <hsbt@ruby-lang.org> | 2023-12-12 10:04:56 +0900 |
| commit | b37288c047681e02615b5b484fb265b394ddc612 (patch) | |
| tree | 2bec98aa06a7e714669743851663df36290278a3 | |
| parent | c032dfb5cbd844a8474a1397e65b4e04203d0ddd (diff) | |
[rubygems/rubygems] Make the "auto-user-install" logic easier to follow
https://github.com/rubygems/rubygems/commit/4b4d9c0106
| -rw-r--r-- | lib/rubygems/installer.rb | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/lib/rubygems/installer.rb b/lib/rubygems/installer.rb index 0c3c28e9af..b4375c3f1c 100644 --- a/lib/rubygems/installer.rb +++ b/lib/rubygems/installer.rb @@ -675,16 +675,20 @@ class Gem::Installer @build_args = options[:build_args] - @gem_home = @install_dir || Gem.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 + @gem_home = @install_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 |
