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 19
    def self.description
      <<-DESCRIPTION
        disp[lay][ <expression>]

        #{short_description}

        If <expression> specified, adds <expression> into display expression
        list. Otherwise, it lists all expressions.
      DESCRIPTION
    end
regexp() click to toggle source
# File lib/byebug/commands/display.rb, line 15
def self.regexp
  /^\s* disp(?:lay)? (?:\s+ (.+))? \s*$/x
end
short_description() click to toggle source
# File lib/byebug/commands/display.rb, line 30
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 34
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 43
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 59
def eval_expr(expression)
  error_eval(expression).inspect
rescue StandardError
  "(undefined)"
end
print_display_expressions() click to toggle source