Module | IRB::IrbLoader |
In: |
lib/irb/ext/loader.rb
|
load | -> | ruby_load |
require | -> | ruby_require |
# File lib/irb/ext/loader.rb, line 23 23: def irb_load(fn, priv = nil) 24: path = search_file_from_ruby_path(fn) 25: raise LoadError, "No such file to load -- #{fn}" unless path 26: 27: load_file(path, priv) 28: end
# File lib/irb/ext/loader.rb, line 63 63: def load_file(path, priv = nil) 64: irb.suspend_name(path, File.basename(path)) do 65: 66: if priv 67: ws = WorkSpace.new(Module.new) 68: else 69: ws = WorkSpace.new 70: end 71: irb.suspend_workspace(ws) do 72: irb.suspend_input_method(FileInputMethod.new(path)) do 73: |back_io| 74: irb.signal_status(:IN_LOAD) do 75: # p irb.conf 76: if back_io.kind_of?(FileInputMethod) 77: irb.eval_input 78: else 79: begin 80: irb.eval_input 81: rescue LoadAbort 82: print "load abort!!\n" 83: end 84: end 85: end 86: end 87: end 88: end 89: end
# File lib/irb/ext/loader.rb, line 91 91: def old 92: back_io = @io 93: back_path = @irb_path 94: back_name = @irb_name 95: back_scanner = @irb.scanner 96: begin 97: @io = FileInputMethod.new(path) 98: @irb_name = File.basename(path) 99: @irb_path = path 100: @irb.signal_status(:IN_LOAD) do 101: if back_io.kind_of?(FileInputMethod) 102: @irb.eval_input 103: else 104: begin 105: @irb.eval_input 106: rescue LoadAbort 107: print "load abort!!\n" 108: end 109: end 110: end 111: ensure 112: @io = back_io 113: @irb_name = back_name 114: @irb_path = back_path 115: @irb.scanner = back_scanner 116: end 117: end
# File lib/irb/ext/loader.rb, line 30 30: def search_file_from_ruby_path(fn) 31: if /^#{Regexp.quote(File::Separator)}/ =~ fn 32: return fn if File.exist?(fn) 33: return nil 34: end 35: 36: for path in $: 37: if File.exist?(f = File.join(path, fn)) 38: return f 39: end 40: end 41: return nil 42: end
# File lib/irb/ext/loader.rb, line 44 44: def source_file(path) 45: irb.suspend_name(path, File.basename(path)) do 46: irb.suspend_input_method(FileInputMethod.new(path)) do 47: |back_io| 48: irb.signal_status(:IN_LOAD) do 49: if back_io.kind_of?(FileInputMethod) 50: irb.eval_input 51: else 52: begin 53: irb.eval_input 54: rescue LoadAbort 55: print "load abort!!\n" 56: end 57: end 58: end 59: end 60: end 61: end