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 27
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 73
    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
            
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 51
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.

blog comments powered by Disqus