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