summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Giddins <segiddins@segiddins.me>2016-12-12 11:52:09 +0000
committerSamuel Giddins <segiddins@segiddins.me>2016-12-21 18:40:55 +0100
commite5b7153465558deaa74928bd9a4643c748bd8fdb (patch)
tree5c516e089c1e39725a204cd73dc3f72d4b4ba620
parentb05c823f6e47c7483aedbb72ae8d2a852fd8244a (diff)
downloadbundler-e5b7153465558deaa74928bd9a4643c748bd8fdb.tar.gz
[SharedHelpers] Speed up #clean_load_path
-rw-r--r--lib/bundler/shared_helpers.rb18
1 files changed, 8 insertions, 10 deletions
diff --git a/lib/bundler/shared_helpers.rb b/lib/bundler/shared_helpers.rb
index f2b043ed62..613609f25f 100644
--- a/lib/bundler/shared_helpers.rb
+++ b/lib/bundler/shared_helpers.rb
@@ -216,22 +216,20 @@ module Bundler
def bundler_ruby_lib
File.expand_path("../..", __FILE__)
end
- private :bundler_ruby_lib
def clean_load_path
# handle 1.9 where system gems are always on the load path
- if defined?(::Gem)
- me = File.expand_path("../../", __FILE__)
- me = /^#{Regexp.escape(me)}/
+ return unless defined?(::Gem)
- loaded_gem_paths = Bundler.rubygems.loaded_gem_paths
+ bundler_lib = bundler_ruby_lib
- $LOAD_PATH.reject! do |p|
- next if File.expand_path(p) =~ me
- loaded_gem_paths.delete(p)
- end
- $LOAD_PATH.uniq!
+ loaded_gem_paths = Bundler.rubygems.loaded_gem_paths
+
+ $LOAD_PATH.reject! do |p|
+ next if File.expand_path(p).start_with?(bundler_lib)
+ loaded_gem_paths.delete(p)
end
+ $LOAD_PATH.uniq!
end
def prints_major_deprecations?