30: def execute(file_name)
31:
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