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 d6f9bd1
Showing 1 changed file with 15 additions and 8 deletions.
23 changes: 15 additions & 8 deletions rubygems-plugin/rubygems_plugin.rb
@@ -1,11 +1,18 @@
# Yes borrowed from rbenv. Couldn't take my mind off that implementation

Gem.post_install do |installer|

if installer.spec.executables.any? && installer.bin_dir == Gem.default_bindir
installer.spec.executables.each do |executable|
`asdf reshim ruby #{RUBY_VERSION} bin/#{executable}`
end
module ReshimInstaller
def install(options)
super
# We don't know which gems were installed, so always reshim.
`asdf reshim ruby`
end
end

if defined?(Bundler::Installer)
Bundler::Installer.prepend ReshimInstaller
else
maybe_reshim = lambda do |installer|
# If any gems with executables were installed or uninstalled, reshim.
`asdf reshim ruby` if installer.spec.executables.any?
end
Gem.post_install &maybe_reshim
Gem.post_uninstall &maybe_reshim
end

0 comments on commit d6f9bd1

Please sign in to comment.