[rubygems/rubygems] Fix gem update --system
leaving old default bundler executables around
https://github.com/rubygems/rubygems/commit/4b81add54c
This commit is contained in:
parent
ec0d0449dd
commit
1e1a37220b
@ -361,9 +361,15 @@ By default, this RubyGems will install gem as:
|
|||||||
def install_default_bundler_gem(bin_dir)
|
def install_default_bundler_gem(bin_dir)
|
||||||
current_default_spec = Gem::Specification.default_stubs.find {|s| s.name == "bundler" }
|
current_default_spec = Gem::Specification.default_stubs.find {|s| s.name == "bundler" }
|
||||||
specs_dir = if current_default_spec && default_dir == Gem.default_dir
|
specs_dir = if current_default_spec && default_dir == Gem.default_dir
|
||||||
|
all_specs_current_version = Gem::Specification.stubs.select {|s| s.full_name == current_default_spec.full_name }
|
||||||
|
|
||||||
Gem::Specification.remove_spec current_default_spec
|
Gem::Specification.remove_spec current_default_spec
|
||||||
loaded_from = current_default_spec.loaded_from
|
loaded_from = current_default_spec.loaded_from
|
||||||
File.delete(loaded_from)
|
File.delete(loaded_from)
|
||||||
|
|
||||||
|
# Remove previous default gem executables if they were not shadowed by a regular gem
|
||||||
|
FileUtils.rm_rf current_default_spec.full_gem_path if all_specs_current_version.size == 1
|
||||||
|
|
||||||
File.dirname(loaded_from)
|
File.dirname(loaded_from)
|
||||||
else
|
else
|
||||||
target_specs_dir = File.join(default_dir, "specifications", "default")
|
target_specs_dir = File.join(default_dir, "specifications", "default")
|
||||||
|
@ -224,8 +224,10 @@ class TestGemCommandsSetupCommand < Gem::TestCase
|
|||||||
# expect to remove normal gem that was same version. because it's promoted default gems.
|
# expect to remove normal gem that was same version. because it's promoted default gems.
|
||||||
assert_path_not_exist File.join(Gem.dir, "specifications", "bundler-#{bundler_version}.gemspec")
|
assert_path_not_exist File.join(Gem.dir, "specifications", "bundler-#{bundler_version}.gemspec")
|
||||||
|
|
||||||
|
# expect to remove the previous default version
|
||||||
|
assert_path_not_exist "#{Gem.dir}/gems/bundler-1.15.4"
|
||||||
|
|
||||||
assert_path_exist "#{Gem.dir}/gems/bundler-#{bundler_version}"
|
assert_path_exist "#{Gem.dir}/gems/bundler-#{bundler_version}"
|
||||||
assert_path_exist "#{Gem.dir}/gems/bundler-1.15.4"
|
|
||||||
assert_path_exist "#{Gem.dir}/gems/bundler-audit-1.0.0"
|
assert_path_exist "#{Gem.dir}/gems/bundler-audit-1.0.0"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user