Sha256: fc7c1cf6d76d9f0dc059cfc8ae4f5464b63f03cf876c44a14cfe2ddd4e7c8a02

Contents?: true

Size: 1.43 KB

Versions: 18

Compression:

Stored size: 1.43 KB

Contents

require 'irt/commands/log'
require 'irt/commands/test'
require 'irt/commands/edit'
require 'irt/commands/core'
require 'irt/commands/help'
require 'irt/commands/ri'
require 'fileutils'

module IRB
  module ExtendCommandBundle #:nodoc:

    include IRT::Commands::Log
    include IRT::Commands::Test
    include IRT::Commands::Edit
    include IRT::Commands::Core
    include IRT::Commands::Help
    include IRT::Commands::Ri
    include FileUtils

    alias_method :x, :irb_exit
    alias_method :q, :irb_exit
    alias_method :irb, :irt

    alias_method :original_abort, :abort
    def abort
      ensure_cli
      IRT::Session.exit_all = true
      IRT::History.save_history
      original_abort
    end
    alias_method :xx, :abort
    alias_method :qq, :abort

    def method_missing(method, *args, &block)
      IRB.conf[:MAIN_CONTEXT] && IRB.conf[:MAIN_CONTEXT].irt_mode == :file && IRT::Directives.respond_to?(method) ?
        IRT::Directives.send(method, *args, &block) :
        super
    end

  private

    def ensure_session
      if context.irt_mode == :file
        m = caller[0].match(/`(\w*)'$/).captures[0]
        raise IRT::SessionModeError, "You cannot use the :#{m} method in #{context.irt_mode} mode."
      end
    end

    def ensure_cli
      unless IRT.cli?
        m = caller[0].match(/`(\w*)'$/).captures[0]
        raise IRT::SessionModeError, ":#{m} command not available. IRT didn't start with the CLI"
      end
    end

  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
irt-1.3.3 lib/irt/extensions/irb/commands.rb
irt-1.3.2 lib/irt/extensions/irb/commands.rb
irt-1.3.1 lib/irt/extensions/irb/commands.rb
irt-1.3.0 lib/irt/extensions/irb/commands.rb
irt-1.2.12 lib/irt/extensions/irb/commands.rb
irt-1.2.11 lib/irt/extensions/irb/commands.rb
irt-1.2.10 lib/irt/extensions/irb/commands.rb
irt-1.2.9 lib/irt/extensions/irb/commands.rb
irt-1.2.8 lib/irt/extensions/irb/commands.rb
irt-1.2.7 lib/irt/extensions/irb/commands.rb
irt-1.2.6 lib/irt/extensions/irb/commands.rb
irt-1.2.5 lib/irt/extensions/irb/commands.rb
irt-1.2.4 lib/irt/extensions/irb/commands.rb
irt-1.2.3 lib/irt/extensions/irb/commands.rb
irt-1.2.2 lib/irt/extensions/irb/commands.rb
irt-1.2.1 lib/irt/extensions/irb/commands.rb
irt-1.2.0 lib/irt/extensions/irb/commands.rb
irt-1.2.0.p02 lib/irt/extensions/irb/commands.rb