Class: Debugger::Command

Inherits:
SimpleDelegator
  • Object
show all
Defined in:
lib/ruby-debug-ide/command.rb

Overview

:nodoc:

Defined Under Namespace

Classes: SubcmdStruct

Constant Summary collapse

DEF_OPTIONS =
{
  :event => true, 
  :control => false, 
  :unknown => false,
  :need_context => false,
}

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(state, printer) ⇒ Command

Returns a new instance of Command.



79
80
81
82
# File 'lib/ruby-debug-ide/command.rb', line 79

def initialize(state, printer)
  @state, @printer = state, printer
  super @printer
end

Class Method Details

.commandsObject



24
25
26
# File 'lib/ruby-debug-ide/command.rb', line 24

def commands
  @commands ||= []
end

.file_filter_supported?Boolean

Returns:

  • (Boolean)


74
75
76
# File 'lib/ruby-debug-ide/command.rb', line 74

def file_filter_supported?
  defined?(Debugger.file_filter)
end

.inherited(klass) ⇒ Object



35
36
37
38
39
40
# File 'lib/ruby-debug-ide/command.rb', line 35

def inherited(klass)
  DEF_OPTIONS.each do |o, v|
    klass.options[o] = v if klass.options[o].nil?
  end
  commands << klass
end

.load_commandsObject



42
43
44
45
46
47
48
49
50
# File 'lib/ruby-debug-ide/command.rb', line 42

def load_commands
  dir = File.dirname(__FILE__)
  Dir[File.join(dir, 'commands', '*')].each do |file|
    require file if file =~ /\.rb$/
  end
  Debugger.constants.grep(/Functions$/).map { |name| Debugger.const_get(name) }.each do |mod|
    include mod
  end
end

.method_missing(meth, *args, &block) ⇒ Object



52
53
54
55
56
57
58
59
60
61
62
# File 'lib/ruby-debug-ide/command.rb', line 52

def method_missing(meth, *args, &block)
  if meth.to_s =~ /^(.+?)=$/
    @options[$1.intern] = args.first
  else
    if @options.has_key?(meth)
      @options[meth]
    else
      super
    end
  end
end

.optionsObject



64
65
66
# File 'lib/ruby-debug-ide/command.rb', line 64

def options
  @options ||= {}
end

.unescape_incoming(str) ⇒ Object



68
69
70
71
72
# File 'lib/ruby-debug-ide/command.rb', line 68

def unescape_incoming(str)
  str.gsub(/((?:^|[^\\])(?:\\\\)*)((?:\\n)+)/) do |_|
    $1 + "\n" * ($2.size / 2)
  end.gsub(/\\\\/, '\\')
end

Instance Method Details

#find(subcmds, param) ⇒ Object

Find param in subcmds. param id downcased and can be abbreviated to the minimum length listed in the subcommands



12
13
14
15
16
17
18
19
20
21
# File 'lib/ruby-debug-ide/command.rb', line 12

def find(subcmds, param)
  param.downcase!
  for try_subcmd in subcmds do
    if (param.size >= try_subcmd.min) and
        (try_subcmd.name[0..param.size-1] == param)
      return try_subcmd
    end
  end
  return nil
end

#match(input) ⇒ Object



84
85
86
# File 'lib/ruby-debug-ide/command.rb', line 84

def match(input)
  @match = regexp.match(input)
end