Module: IRB::IrbLoader (Ruby 2.7.3)
Description: Module : IRB::IrbLoader - Ruby 2.7.3

### Home Classes Methods

### In Files

- irb/ext/loader.rb

### Methods

- #irb_load
- #load_file
- #source_file

### Class/Module Index

Quicksearch

- Binding
- IRB::Abort
- IRB::Canvas
- IRB::Color
- IRB::Color::SymbolState
- IRB::Context
- IRB::ContextExtender
- IRB::ExtendCommandBundle
- IRB::FileInputMethod
- IRB::Frame
- IRB::Frame::FrameOverflow
- IRB::Frame::FrameUnderflow
- IRB::History
- IRB::InputMethod
- IRB::Inspector
- IRB::Irb
- IRB::IrbLoader
- IRB::JobManager
- IRB::LoadAbort
- IRB::MethodExtender
- IRB::Notifier
- IRB::Notifier::AbstractNotifier
- IRB::Notifier::CompositeNotifier
- IRB::Notifier::ErrUndefinedNotifier
- IRB::Notifier::ErrUnrecognizedLevel
- IRB::Notifier::LeveledNotifier
- IRB::Notifier::NoMsgNotifier
- IRB::OutputMethod
- IRB::OutputMethod::NotImplementedError
- IRB::ReadlineInputMethod
- IRB::ReidlineInputMethod
- IRB::RubyModel
- IRB::StdioInputMethod
- IRB::StdioOutputMethod
- IRB::Vec
- IRB::WorkSpace
- Object
- XMP
- XMP::StringInputMethod

No matching classes.

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