зеркало из https://github.com/github/ruby.git
[rubygems/rubygems] Also load user installed rubygems plugins
https://github.com/rubygems/rubygems/commit/82960c262f
This commit is contained in:
Родитель
21db5876ca
Коммит
9fa5c4cd07
|
@ -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
|
||||
|
|
Загрузка…
Ссылка в новой задаче