Skip to content

Commit

Permalink
Merge pull request #3534 from djmarcin/fix-env-plugins
Browse files Browse the repository at this point in the history
Load rubygems plugins from RUBYLIB during `bundle install` and `bundle update`

(cherry picked from commit 5bb5583)
  • Loading branch information
deivid-rodriguez committed Dec 7, 2020
1 parent 98b60b1 commit d7f76c9
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 0 deletions.
1 change: 1 addition & 0 deletions bundler/lib/bundler/installer.rb
Expand Up @@ -244,6 +244,7 @@ def load_plugins
end
end.flatten
Bundler.rubygems.load_plugin_files(path_plugin_files)
Bundler.rubygems.load_env_plugins
end

def ensure_specs_are_compatible!
Expand Down
4 changes: 4 additions & 0 deletions bundler/lib/bundler/rubygems_integration.rb
Expand Up @@ -227,6 +227,10 @@ def load_plugin_files(files)
Gem.load_plugin_files(files) if Gem.respond_to?(:load_plugin_files)
end

def load_env_plugins
Gem.load_env_plugins if Gem.respond_to?(:load_env_plugins)
end

def ui=(obj)
Gem::DefaultUserInteraction.ui = obj
end
Expand Down
12 changes: 12 additions & 0 deletions bundler/spec/commands/install_spec.rb
Expand Up @@ -222,6 +222,18 @@
expect(the_bundle).to include_gems "rack 1.0.0", "activesupport 2.3.5"
end

it "loads env plugins" do
plugin_msg = "hello from an env plugin!"
create_file "plugins/rubygems_plugin.rb", "puts '#{plugin_msg}'"
rubylib = ENV["RUBYLIB"].to_s.split(File::PATH_SEPARATOR).unshift(bundled_app("plugins").to_s).join(File::PATH_SEPARATOR)
install_gemfile <<-G, :env => { "RUBYLIB" => rubylib }
source "#{file_uri_for(gem_repo1)}"
gem "rack"
G

expect(last_command.stdboth).to include(plugin_msg)
end

describe "with a gem that installs multiple platforms" do
it "installs gems for the local platform as first choice" do
skip "version is 1.0, not 1.0.0" if Gem.win_platform?
Expand Down

0 comments on commit d7f76c9

Please sign in to comment.