Module: IRB::IrbLoader
Relationships & Source Files | |
Extension / Inclusion / Inheritance Descendants | |
Included In:
IRB::ExtendCommand::Load,
IRB::ExtendCommand::Require,
IRB::ExtendCommand::Source
| |
Defined in: | lib/irb/ext/loader.rb |
Overview
Provides a few commands for loading files within an irb session.
See ExtendCommandBundle for more information.
Instance Method Summary
-
#irb_load(fn, priv = nil)
Loads the given file similarly to
Kernel.load
-
#load_file(path, priv = nil)
Loads the given file in the current session's context and evaluates it.
- #ruby_load
- #ruby_require
-
#source_file(path)
Loads a given file in the current session and displays the source lines.
Instance Method Details
#irb_load(fn, priv = nil)
Loads the given file similarly to Kernel.load
# File 'lib/irb/ext/loader.rb', line 26
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)
Loads the given file in the current session's context and evaluates it.
See Irb#suspend_input_method for more information.
# File 'lib/irb/ext/loader.rb', line 72
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 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
#ruby_load
[ GitHub ]# File 'lib/irb/ext/loader.rb', line 22
alias ruby_load load
#ruby_require
[ GitHub ]# File 'lib/irb/ext/loader.rb', line 23
alias ruby_require require
#source_file(path)
Loads a given file in the current session and displays the source lines
See Irb#suspend_input_method for more information.
# File 'lib/irb/ext/loader.rb', line 50
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