[rubygems/rubygems] Also load user installed rubygems plugins

https://github.com/rubygems/rubygems/commit/82960c262f
This commit is contained in:
David Rodríguez 2021-08-06 12:21:23 +02:00 коммит произвёл Hiroshi SHIBATA
Родитель 21db5876ca
Коммит 9fa5c4cd07
2 изменённых файлов: 28 добавлений и 1 удалений

Просмотреть файл

@ -1050,7 +1050,9 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
# Find rubygems plugin files in the standard location and load them
def self.load_plugins
load_plugin_files Gem::Util.glob_files_in_dir("*#{Gem.plugin_suffix_pattern}", plugindir)
Gem.path.each do |gem_path|
load_plugin_files Gem::Util.glob_files_in_dir("*#{Gem.plugin_suffix_pattern}", plugindir(gem_path))
end
end
##

Просмотреть файл

@ -1578,6 +1578,31 @@ class TestGem < Gem::TestCase
assert_equal %w[plugin], PLUGINS_LOADED
end
def test_load_user_installed_plugins
plugin_path = File.join "lib", "rubygems_plugin.rb"
Dir.chdir @tempdir do
FileUtils.mkdir_p 'lib'
File.open plugin_path, "w" do |fp|
fp.puts "class TestGem; PLUGINS_LOADED << 'plugin'; end"
end
foo = util_spec 'foo', '1' do |s|
s.files << plugin_path
end
install_gem_user foo
end
Gem.paths = { "GEM_PATH" => [Gem.dir, Gem.user_dir].join(File::PATH_SEPARATOR) }
gem 'foo'
Gem.load_plugins
assert_equal %w[plugin], PLUGINS_LOADED
end
def test_load_env_plugins
with_plugin('load') { Gem.load_env_plugins }
assert_equal :loaded, TEST_PLUGIN_LOAD rescue nil