merges r28693, r28695 and r28703 from trunk into ruby_1_9_2.

--
* lib/rubygems/custom_require.rb, gem_prelude.rb: Load code from
  from gems properly.

* lib/rubygems.rb: Load the custom require if --disable-rubygems
  was used.

* gem_prelude.rb: Pull in rubygem's custom require
  [ruby-core:30846]

* lib/rubygems.rb: Handle always having custom require available

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_2@28786 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
mame 2010-07-29 15:14:57 +00:00
parent 14a56523d8
commit 2435ab175f
5 changed files with 73 additions and 114 deletions

View file

@ -4,8 +4,6 @@
# See LICENSE.txt for permissions.
#++
require 'rubygems'
module Kernel
##
@ -30,17 +28,17 @@ module Kernel
def require(path) # :doc:
gem_original_require path
rescue LoadError => load_error
if load_error.message.end_with?(path) and
spec = Gem.searcher.find(path) then
Gem.activate(spec.name, "= #{spec.version}")
gem_original_require path
else
raise load_error
if load_error.message.end_with?(path)
if Gem.try_activate(path)
return gem_original_require(path)
end
end
raise load_error
end
private :require
private :gem_original_require
end
end unless Kernel.private_method_defined?(:gem_original_require)