Imported File#ftype spec from rubyspecs.
[rbx.git] / lib / irb / cmd / load.rb
blobec470dba97d04bedf2ec46f88861ed4a73acf071
2 #   load.rb - 
3 #       $Release Version: 0.9.5$
4 #       $Revision: 11708 $
5 #       $Date: 2007-02-12 15:01:19 -0800 (Mon, 12 Feb 2007) $
6 #       by Keiju ISHITSUKA(keiju@ruby-lang.org)
8 # --
10 #   
13 require "irb/cmd/nop.rb"
14 require "irb/ext/loader"
16 module IRB
17   module ExtendCommand
18     class Load<Nop
19       include IrbLoader
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
27     class Require<Nop
28       include IrbLoader
29       
30       def execute(file_name)
31 #       return ruby_require(file_name) unless IRB.conf[:USE_LOADER]
33         rex = Regexp.new("#{Regexp.quote(file_name)}(\.o|\.rb)?")
34         return false if $".find{|f| f =~ rex}
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
59     class Source<Nop
60       include IrbLoader
61       def execute(file_name)
62         source_file(file_name)
63       end
64     end
65   end
67 end