diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-04-23 05:37:26 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-04-23 05:37:26 +0000 |
commit | 80db78f51c82cb1290e11810c8c0c03afcdf6996 (patch) | |
tree | 341678d98a7b0ded39c6d288023df029cfcb5271 | |
parent | 9e67f6ecec169787bb489ccb3f71d32a141f01da (diff) | |
download | bundler-80db78f51c82cb1290e11810c8c0c03afcdf6996.tar.gz |
* gem_prelude.rb (Gem::QuickLoader.load_full_rubygems_library):
get rid of creating same regexps many times.
* lib/rubygems/custom_require.rb (Kernel#require): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27455 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | gem_prelude.rb | 10 | ||||
-rw-r--r-- | lib/rubygems/custom_require.rb | 2 |
3 files changed, 11 insertions, 8 deletions
@@ -1,3 +1,10 @@ +Fri Apr 23 14:37:22 2010 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * gem_prelude.rb (Gem::QuickLoader.load_full_rubygems_library): + get rid of creating same regexps many times. + + * lib/rubygems/custom_require.rb (Kernel#require): ditto. + Fri Apr 23 14:07:36 2010 Nobuyoshi Nakada <nobu@ruby-lang.org> * doc/etc.rd, doc/etc.rd.ja: moved from ext/etc. diff --git a/gem_prelude.rb b/gem_prelude.rb index 5928356afa..99dd6e5eb2 100644 --- a/gem_prelude.rb +++ b/gem_prelude.rb @@ -142,9 +142,7 @@ if defined?(Gem) then @loaded_full_rubygems_library = true class << Gem - Gem::GEM_PRELUDE_METHODS.each do |method_name| - undef_method method_name - end + undef_method *Gem::GEM_PRELUDE_METHODS undef_method :const_missing undef_method :method_missing end @@ -154,10 +152,8 @@ if defined?(Gem) then end $".delete path_to_full_rubygems_library - $".each do |path| - if /#{Regexp.escape File::SEPARATOR}rubygems\.rb\z/ =~ path - raise LoadError, "another rubygems is already loaded from #{path}" - end + if $".any? {|path| path.end_with?('/rubygems.rb')} + raise LoadError, "another rubygems is already loaded from #{path}" end require 'rubygems' end diff --git a/lib/rubygems/custom_require.rb b/lib/rubygems/custom_require.rb index 78c7872b6f..43b3136b60 100644 --- a/lib/rubygems/custom_require.rb +++ b/lib/rubygems/custom_require.rb @@ -30,7 +30,7 @@ module Kernel def require(path) # :doc: gem_original_require path rescue LoadError => load_error - if load_error.message =~ /#{Regexp.escape path}\z/ and + if load_error.message.end_with?(path) and spec = Gem.searcher.find(path) then Gem.activate(spec.name, "= #{spec.version}") gem_original_require path |