In Files

  • irb/ext/loader.rb

IRB::IrbLoader

Provides a few commands for loading files within an irb session.

See ExtendCommandBundle for more information.

Public Instance Methods

irb_load(fn, priv = nil) click to toggle source

Loads the given file similarly to Kernel#load

 
               # File 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) click to toggle source

Loads the given file in the current session’s context and evaluates it.

See IRB::Irb#suspend_input_method for more information.

 
               # File 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
            
source_file(path) click to toggle source

Loads a given file in the current session and displays the source lines

See IRB::Irb#suspend_input_method for more information.

 
               # File 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
            

Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.

If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.

If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.

If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.