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_description}

    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