class Byebug::DisplayCommand
Custom expressions to be displayed every time the debugger stops.
Public Class Methods
description()
click to toggle source
# File lib/byebug/commands/display.rb, line 18 def self.description <<-EOD disp[lay][ <expression>] #{short_descripton} If <expression> specified, adds <expression> into display expression list. Otherwise, it lists all expressions. EOD end
regexp()
click to toggle source
# File lib/byebug/commands/display.rb, line 14 def self.regexp /^\s* disp(?:lay)? (?:\s+ (.+))? \s*$/x end
short_description()
click to toggle source
# File lib/byebug/commands/display.rb, line 29 def self.short_description 'Evaluates expressions every time the debugger stops' end
Public Instance Methods
execute()
click to toggle source
# File lib/byebug/commands/display.rb, line 33 def execute return print_display_expressions unless @match && @match[1] Byebug.displays.push [true, @match[1]] display_expression(@match[1]) end
Private Instance Methods
display_expression(exp)
click to toggle source
# File lib/byebug/commands/display.rb, line 42 def display_expression(exp) print pr('display.result', n: Byebug.displays.size, exp: exp, result: eval_expr(exp)) end
eval_expr(expression)
click to toggle source
# File lib/byebug/commands/display.rb, line 58 def eval_expr(expression) error_eval(expression).inspect rescue '(undefined)' end
print_display_expressions()
click to toggle source
# File lib/byebug/commands/display.rb, line 48 def print_display_expressions result = prc('display.result', Byebug.displays) do |item, index| active, exp = item { n: index + 1, exp: exp, result: eval_expr(exp) } if active end print result end