mirror of
https://github.com/pyenv/pyenv.git
synced 2025-11-18 00:03:45 -05:00
This bakes in the functionality of rbenv-gem-rehash plugin. The Rubygems hook is improved: - It will not rehash for gems installed in locations that rbenv otherwise doesn't search for binstubs; for instance in case of `bundle --path vendor/bundle`. - It rescues exceptions and makes them non-lethal by warning on stderr.
19 lines
482 B
Ruby
19 lines
482 B
Ruby
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
|