模組 IRB::IrbLoader
提供一些用於在 irb 會話中載入檔案的指令。
請參閱 ExtendCommandBundle
以取得更多資訊。
公開實例方法
irb_load(fn, priv = nil) 按一下以切換來源
載入指定檔案,類似於 Kernel#load
# File lib/irb/ext/loader.rb, line 20 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) 按一下以切換來源
在目前會話的內容中載入指定檔案並對其進行評估。
請參閱 Irb#suspend_input_method
以取得更多資訊。
# File lib/irb/ext/loader.rb, line 69 def load_file(path, priv = nil) irb = irb_context.irb 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 FileInputMethod.open(path) do |io| irb.suspend_input_method(io) 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 end end
source_file(path) 按一下以切換來源
在目前會話中載入指定檔案並顯示來源程式碼行
請參閱 Irb#suspend_input_method
以取得更多資訊。
# File lib/irb/ext/loader.rb, line 44 def source_file(path) irb = irb_context.irb irb.suspend_name(path, File.basename(path)) do FileInputMethod.open(path) do |io| irb.suspend_input_method(io) 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 end