2 # irb/loader.rb - irb loader
3 # $Release Version: 0.7.3$
5 # $Date: 2002/02/01 06:36:22 $
6 # by Keiju ISHITSUKA(keiju@ishitsuka.com)
14 class LoadAbort < GlobalExit;end
17 @RCS_ID='-$Id: loader.rb,v 1.1.1.1 2002/02/01 06:36:22 tacyas Exp $-'
20 alias ruby_require require
22 def irb_load(file_name)
23 return ruby_load(file_name) unless IRB.conf[:USE_LOADER]
29 def irb_require(file_name)
30 return ruby_require(file_name) unless IRB.conf[:USE_LOADER]
32 rex = Regexp.new("#{Regexp.quote(file_name)}(\.o|\.rb)?")
33 return false if $".find{|f| f =~ rex}
44 return ruby_require(file_name)
48 load_sub(f = file_name + ".rb")
52 return ruby_require(file_name)
57 if fn =~ /^#{Regexp.quote(File::Separator)}/
58 return false unless File.exist?(fn)
59 return irb_context.load_file(fn)
63 if File.exist?(f = File.join(path, fn))
64 return irb_context.load_file(f)
67 raise LoadError, "No such file to load -- #{file_name}"
71 alias require irb_require
75 # def load_from(file_name)
76 # io = FileInputMethod.new(file_name)
77 # @irb.signal_status(:IN_LOAD) do
78 # switch_io(io, file_name) do
90 back_scanner = @irb.scanner
92 @io = FileInputMethod.new(path)
93 @irb_name = File.basename(path)
95 @irb.signal_status(:IN_LOAD) do
96 if back_io.kind_of?(FileInputMethod)
102 print "load abort!!\n"
108 @irb_name = back_name
109 @irb_path = back_path
110 @irb.scanner = back_scanner