Class: Debugger::Command
- Inherits:
-
Object
show all
- Defined in:
- lib/ruby-debug/command.rb
Overview
Direct Known Subclasses
AddBreakpoint, BreakpointsCommand, CatchCommand, ConditionCommand, ContinueCommand, DeleteBreakpointCommand, DisableCommand, DownCommand, EnableCommand, EvalCommand, FinishCommand, FrameCommand, InspectCommand, InterruptCommand, JumpCommand, LoadCommand, NextCommand, PPCommand, PauseCommand, QuitCommand, RestartCommand, SetTypeCommand, StartCommand, StepCommand, ThreadCurrentCommand, ThreadListCommand, ThreadResumeCommand, ThreadStopCommand, ThreadSwitchCommand, UpCommand, VarConstantCommand, VarGlobalCommand, VarInstanceCommand, VarLocalCommand, WhereCommand
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.
73
74
75
|
# File 'lib/ruby-debug/command.rb', line 73
def initialize(state, printer)
@state, @printer = state, printer
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(meth, *args, &block) ⇒ Object
83
84
85
86
87
88
89
|
# File 'lib/ruby-debug/command.rb', line 83
def method_missing(meth, *args, &block)
if @printer.respond_to? meth
@printer.send meth, *args, &block
else
super
end
end
|
Class Method Details
.commands ⇒ Object
28
29
30
|
# File 'lib/ruby-debug/command.rb', line 28
def commands
@commands ||= []
end
|
.inherited(klass) ⇒ Object
39
40
41
42
43
44
|
# File 'lib/ruby-debug/command.rb', line 39
def inherited(klass)
DEF_OPTIONS.each do |o, v|
klass.options[o] = v if klass.options[o].nil?
end
commands << klass
end
|
.load_commands ⇒ Object
46
47
48
49
50
51
52
53
54
|
# File 'lib/ruby-debug/command.rb', line 46
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
56
57
58
59
60
61
62
63
64
65
66
|
# File 'lib/ruby-debug/command.rb', line 56
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
|
.options ⇒ Object
68
69
70
|
# File 'lib/ruby-debug/command.rb', line 68
def options
@options ||= {}
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
16
17
18
19
20
21
22
23
24
25
|
# File 'lib/ruby-debug/command.rb', line 16
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
77
78
79
|
# File 'lib/ruby-debug/command.rb', line 77
def match(input)
@match = regexp.match(input)
end
|