1#
2#   load.rb -
3#   	$Release Version: 0.9.6$
4#   	$Revision: 38358 $
5#   	by Keiju ISHITSUKA(keiju@ruby-lang.org)
6#
7# --
8#
9#
10#
11
12require "irb/cmd/nop.rb"
13require "irb/ext/loader"
14
15# :stopdoc:
16module IRB
17  module ExtendCommand
18    class Load<Nop
19      include IrbLoader
20
21      def execute(file_name, priv = nil)
22#	return ruby_load(file_name) unless IRB.conf[:USE_LOADER]
23	return irb_load(file_name, priv)
24      end
25    end
26
27    class Require<Nop
28      include IrbLoader
29
30      def execute(file_name)
31#	return ruby_require(file_name) unless IRB.conf[:USE_LOADER]
32
33	rex = Regexp.new("#{Regexp.quote(file_name)}(\.o|\.rb)?")
34	return false if $".find{|f| f =~ rex}
35
36	case file_name
37	when /\.rb$/
38	  begin
39	    if irb_load(file_name)
40	      $".push file_name
41	      return true
42	    end
43	  rescue LoadError
44	  end
45	when /\.(so|o|sl)$/
46	  return ruby_require(file_name)
47	end
48
49	begin
50	  irb_load(f = file_name + ".rb")
51	  $".push f
52	  return true
53	rescue LoadError
54	  return ruby_require(file_name)
55	end
56      end
57    end
58
59    class Source<Nop
60      include IrbLoader
61      def execute(file_name)
62	source_file(file_name)
63      end
64    end
65  end
66
67end
68# :startdoc:
69