Skip to content

Commit

Permalink
Fix reshim behavior on gem uninstall and bundle install.
Browse files Browse the repository at this point in the history
  • Loading branch information
djmarcin committed Apr 21, 2020
1 parent f272de2 commit 08a2f79
Showing 1 changed file with 16 additions and 7 deletions.
23 changes: 16 additions & 7 deletions rubygems-plugin/rubygems_plugin.rb
@@ -1,11 +1,20 @@
# Yes borrowed from rbenv. Couldn't take my mind off that implementation

Gem.post_install do |installer|
module ReshimInstaller
def install(options)
super
# We don't know which gems were installed, so always reshim.
`asdf reshim ruby`
end
end

if installer.spec.executables.any? && installer.bin_dir == Gem.default_bindir
installer.spec.executables.each do |executable|
`asdf reshim ruby #{RUBY_VERSION} bin/#{executable}`
if defined?(Bundler::Installer)
Bundler::Installer.prepend ReshimInstaller
else
maybe_reshim = lambda do |installer|
# If any gems with executables were installed or uninstalled, reshim.
if installer.spec.executables.any?
`asdf reshim ruby`
end
end

Gem.post_install &maybe_reshim
Gem.post_uninstall &maybe_reshim
end

0 comments on commit 08a2f79

Please sign in to comment.