Bläddra i källkod

Bring automatic gem-rehash functionality to rbenv core

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.
pull/360/head^2
Mislav Marohnić 10 år sedan
förälder
incheckning
67f429c41d
2 ändrade filer med 19 tillägg och 0 borttagningar
  1. +1
    -0
      rbenv.d/exec/gem-rehash.bash
  2. +18
    -0
      rbenv.d/exec/gem-rehash/rubygems_plugin.rb

+ 1
- 0
rbenv.d/exec/gem-rehash.bash Visa fil

@ -0,0 +1 @@
export RUBYLIB="${BASH_SOURCE%.bash}:$RUBYLIB"

+ 18
- 0
rbenv.d/exec/gem-rehash/rubygems_plugin.rb Visa fil

@ -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

Laddar…
Avbryt
Spara