Class: Byebug::ConditionCommand
- Inherits:
-
Command
- Object
- Command
- Byebug::ConditionCommand
show all
- Defined in:
- lib/byebug/commands/condition.rb
Overview
Constant Summary
Constants inherited
from Command
Byebug::Command::DEF_OPTIONS
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Command
commands, #find, inherited, #initialize, load_commands, #match, method_missing, options, #print_subcmds, register_setting_get, register_setting_set, register_setting_var, settings, settings_map
Class Method Details
.help(cmd) ⇒ Object
38
39
40
41
42
43
44
45
|
# File 'lib/byebug/commands/condition.rb', line 38
def help(cmd)
%{
Condition breakpoint-number expression
Specify breakpoint number N to break only if COND is true. N is an integer and
COND is an expression to be evaluated whenever breakpoint N is reached. If the
empty string is used, the condition is removed.
}
end
|
.help_command ⇒ Object
34
35
36
|
# File 'lib/byebug/commands/condition.rb', line 34
def help_command
'condition'
end
|
Instance Method Details
#execute ⇒ Object
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
# File 'lib/byebug/commands/condition.rb', line 9
def execute
if not @match[1]
errmsg "\"condition\" must be followed by breakpoint number and expression\n"
else
breakpoints = Byebug.breakpoints.sort_by{|b| b.id }
largest = breakpoints.inject(0) do |tally, b|
tally = b.id if b.id > tally
end
if 0 == largest
print "No breakpoints have been set.\n"
return
end
pos = get_int(@match[1], "Condition", 1, largest)
return unless pos
breakpoints.each do |b|
if b.id == pos
b.expr = @match[2].empty? ? nil : @match[2]
break
end
end
end
end
|
#regexp ⇒ Object
5
6
7
|
# File 'lib/byebug/commands/condition.rb', line 5
def regexp
/^\s* cond(?:ition)? (?:\s+(\d+)\s*(.*))?$/ix
end
|