1.9.2p290 :001 >require.class ArgumentError: wrong number of arguments (0for1) from /home/user/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:34:in`require' from (irb):1 from /home/user/.rvm/rubies/ruby-1.9.2-p290/bin/irb:16:in `<main>'
#-- # Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others. # All rights reserved. # See LICENSE.txt for permissions. #++
moduleKernel
ifdefined?(gem_original_require) then # Ruby ships with a custom_require, override its require remove_method :require else ## # The Kernel#require from before RubyGems was loaded.
alias gem_original_require require private:gem_original_require end
## # When RubyGems is required, Kernel#require is replaced with our own which # is capable of loading gems on demand. # # When you call <tt>require 'x'</tt>, this is what happens: # * If the file can be loaded from the existing Ruby loadpath, it # is. # * Otherwise, installed gems are searched for a file that matches. # If it's found in gem 'y', that gem is activated (added to the # loadpath). # # The normal <tt>require</tt> functionality of returning false if # that file has already been loaded is preserved.
defrequire path ifGem.unresolved_deps.empty? then gem_original_require path else spec = Gem::Specification.find { |s| s.activated? and s.contains_requirable_file? path }
unless spec then found_specs = Gem::Specification.find_in_unresolved path unless found_specs.empty? then found_specs = [found_specs.last] else found_specs = Gem::Specification.find_in_unresolved_tree path end
found_specs.each do |found_spec| found_spec.activate end end
return gem_original_require path end rescueLoadError => load_error if load_error.message.end_with?(path) andGem.try_activate(path) then return gem_original_require(path) end