[前][次][番号順一覧][スレッド一覧]

ruby-changes:67443

From: David <ko1@a...>
Date: Tue, 31 Aug 2021 19:07:32 +0900 (JST)
Subject: [ruby-changes:67443] 9fa5c4cd07 (master): [rubygems/rubygems] Also load user installed rubygems plugins

https://git.ruby-lang.org/ruby.git/commit/?id=9fa5c4cd07

From 9fa5c4cd0721f720282dfc9efe5657b136c7e99b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?David=20Rodr=C3=ADguez?= <deivid.rodriguez@r...>
Date: Fri, 6 Aug 2021 12:21:23 +0200
Subject: [rubygems/rubygems] Also load user installed rubygems plugins

https://github.com/rubygems/rubygems/commit/82960c262f
---
 lib/rubygems.rb           |  4 +++-
 test/rubygems/test_gem.rb | 25 +++++++++++++++++++++++++
 2 files changed, 28 insertions(+), 1 deletion(-)

diff --git a/lib/rubygems.rb b/lib/rubygems.rb
index a631cde..17881e2 100644
--- a/lib/rubygems.rb
+++ b/lib/rubygems.rb
@@ -1050,7 +1050,9 @@ An Array (#{env.inspect}) was passed in from #{caller[3]} https://github.com/ruby/ruby/blob/trunk/lib/rubygems.rb#L1050
   # 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
 
   ##
diff --git a/test/rubygems/test_gem.rb b/test/rubygems/test_gem.rb
index 0d4b157..da154da 100644
--- a/test/rubygems/test_gem.rb
+++ b/test/rubygems/test_gem.rb
@@ -1578,6 +1578,31 @@ class TestGem < Gem::TestCase https://github.com/ruby/ruby/blob/trunk/test/rubygems/test_gem.rb#L1578
     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
-- 
cgit v1.1


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]