lib/byebug/commands/display.rb in byebug-3.5.1 vs lib/byebug/commands/display.rb in byebug-4.0.0
- old
+ new
@@ -1,28 +1,9 @@
+require 'byebug/command'
+
module Byebug
#
- # Custom display utilities.
- #
- module DisplayFunctions
- def display_expression(exp)
- "#{exp} = #{bb_warning_eval(exp).inspect}"
- end
-
- def active_display_expressions?
- @state.display.select { |d| d[0] }.size > 0
- end
-
- def print_display_expressions
- n = 1
- @state.display.each do |d|
- puts "#{n}: #{display_expression(d[1])}" if d[0]
- n += 1
- end
- end
- end
-
- #
# Implements the functionality of adding custom expressions to be displayed
# every time the debugger stops.
#
class AddDisplayCommand < Command
self.allow_in_post_mortem = false
@@ -32,24 +13,35 @@
end
def execute
exp = @match[1]
@state.display.push [true, exp]
- puts "#{@state.display.size}: #{display_expression(exp)}"
+ display_expression(exp)
end
class << self
def names
%w(display)
end
def description
- %(disp[lay] <expression>
+ prettify <<-EOD
+ disp[lay] <expression>
- Add <expression> into display expression list.)
+ Add <expression> into display expression list.
+ EOD
end
end
+
+ private
+
+ def display_expression(exp)
+ print pr('display.result',
+ n: @state.display.size,
+ exp: exp,
+ result: bb_warning_eval(exp).inspect)
+ end
end
#
# Displays the value of enabled expressions.
#
@@ -72,10 +64,26 @@
def names
%w(display)
end
def description
- %(disp[lay] Display expression list.)
+ prettify <<-EOD
+ disp[lay] Display expression list.
+ EOD
end
+ end
+
+ private
+
+ def print_display_expressions
+ result = prc('display.result', @state.display) do |item, index|
+ is_active, expression = item
+ if is_active
+ { n: index + 1,
+ exp: expression,
+ result: bb_warning_eval(expression).inspect }
+ end
+ end
+ print result
end
end
end