diff --git a/rbenv.d/exec/gem-rehash.bash b/rbenv.d/exec/gem-rehash.bash new file mode 100644 index 00000000..99614b53 --- /dev/null +++ b/rbenv.d/exec/gem-rehash.bash @@ -0,0 +1 @@ +export RUBYLIB="${BASH_SOURCE%.bash}:$RUBYLIB" diff --git a/rbenv.d/exec/gem-rehash/rubygems_plugin.rb b/rbenv.d/exec/gem-rehash/rubygems_plugin.rb new file mode 100644 index 00000000..e1d7b262 --- /dev/null +++ b/rbenv.d/exec/gem-rehash/rubygems_plugin.rb @@ -0,0 +1,18 @@ +hook = lambda do |installer| + begin + # Ignore gems that aren't installed in locations that rbenv searches for binstubs + if installer.spec.executables.any? && + [Gem.default_bindir, Gem.bindir(Gem.user_dir)].include?(installer.bin_dir) + system "rbenv", "rehash" + end + rescue + warn "rbenv: error in gem-rehash (#{$!})" + end +end + +begin + Gem.post_install(&hook) + Gem.post_uninstall(&hook) +rescue + warn "rbenv: error installing gem-rehash hooks (#{$!})" +end