123456789_123456789_123456789_123456789_123456789_

Class: IRB::ExtendCommand::Require

Do not use. This class is for internal use only.
Relationships & Source Files
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
Instance Chain:
Inherits: IRB::ExtendCommand::LoaderCommand
Defined in: lib/irb/cmd/load.rb

Constant Summary

::IRB::IrbLoader - Included

ABSOLUTE_PATH_PATTERN

Class Method Summary

Nop - Inherited

.category, .description,
.execute

See additional method definition at line 39.

.new, .string_literal?

Instance Attribute Summary

Nop - Inherited

Instance Method Summary

LoaderCommand - Inherited

::IRB::IrbLoader - Included

#absolute_path?

See additional method definition at line 35.

#irb_load

Loads the given file similarly to Kernel.load

#load_file

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

#ruby_load, #ruby_require,
#source_file

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

#old, #search_file_from_ruby_path

Nop - Inherited

Constructor Details

This class inherits a constructor from IRB::ExtendCommand::Nop

Instance Method Details

#execute(file_name = nil)

[ GitHub ]

  
# File 'lib/irb/cmd/load.rb', line 41

def execute(file_name = nil)
  raise_cmd_argument_error unless file_name

  rex = Regexp.new("#{Regexp.quote(file_name)}(\.o|\.rb)?")
  return false if $".find{|f| f =~ rex}

  case file_name
  when /\.rb$/
    begin
      if irb_load(file_name)
        $".push file_name
        return true
      end
    rescue LoadError
    end
  when /\.(so|o|sl)$/
    return ruby_require(file_name)
  end

  begin
    irb_load(f = file_name + ".rb")
    $".push f
    return true
  rescue LoadError
    return ruby_require(file_name)
  end
end