# module IRB::ContextExtender

Extends methods for the `Context` module

### Public Class Methods

def_extend_command(cmd_name, load_file, *aliases) click to toggle source

Evaluate the given `command` from the given `load_file` on the `Context` module.

Will also define any given `aliases` for the method.

    # File lib/irb/extend-command.rb, line 237
    def self.def_extend_command(cmd_name, load_file, *aliases)
      line = __LINE__; Context.module_eval %[
        def #{cmd_name}(*opts, &b)
          Context.module_eval {remove_method(:#{cmd_name})}
          require "#{load_file}"
          send :#{cmd_name}, *opts, &b
        end
        for ali in aliases
          alias_method ali, cmd_name
        end
      ], __FILE__, line
    end

install_extend_commands() click to toggle source

Installs the default context extensions as irb commands:

`Context#eval_history=`

  `irb/ext/history.rb`

`Context#use_tracer=`

  `irb/ext/tracer.rb`

`Context#use_loader=`

  `irb/ext/use-loader.rb`

`Context#save_history=`

  `irb/ext/save-history.rb`

    # File lib/irb/extend-command.rb, line 227
    def self.install_extend_commands
      for args in @EXTEND_COMMANDS
        def_extend_command(*args)
      end
    end