Class: RSpecTelemetry::Trace::Viewer::SourcePane
- Inherits:
-
Object
- Object
- RSpecTelemetry::Trace::Viewer::SourcePane
- Defined in:
- lib/rspec_telemetry/trace/viewer/source_pane.rb
Constant Summary collapse
- HEADER =
TuiTui::Style.new(attrs: [:reverse])
- CODE =
TuiTui::Style.new(attrs: [:dim])
- MARK =
TuiTui::Style.new(fg: :green, attrs: [:bold])
Class Method Summary collapse
Instance Method Summary collapse
- #draw(canvas, rect) ⇒ Object
-
#initialize(location:, lines:, target:) ⇒ SourcePane
constructor
A new instance of SourcePane.
Constructor Details
#initialize(location:, lines:, target:) ⇒ SourcePane
Returns a new instance of SourcePane.
13 14 15 16 17 |
# File 'lib/rspec_telemetry/trace/viewer/source_pane.rb', line 13 def initialize(location:, lines:, target:) @location = location @lines = lines @target = target end |
Class Method Details
.numbered_line(number, text, target:) ⇒ Object
45 46 47 |
# File 'lib/rspec_telemetry/trace/viewer/source_pane.rb', line 45 def self.numbered_line(number, text, target:) "#{number == target ? "→" : " "} #{number.to_s.rjust(4)} #{text}" end |
Instance Method Details
#draw(canvas, rect) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/rspec_telemetry/trace/viewer/source_pane.rb', line 19 def draw(canvas, rect) canvas.fill(TuiTui::Rect.new(row: rect.row, col: rect.col, rows: 1, cols: rect.cols), HEADER) canvas.text( rect.row, rect.col, TuiTui::DisplayText.new(" source: #{@location || "(none for this step)"}").truncate(rect.cols), HEADER ) avail = rect.rows - 1 return canvas if avail < 1 return placeholder(canvas, rect.row + 1, rect.col, rect.cols) if @lines.nil? body = TuiTui::Rect.new(row: rect.row + 1, col: rect.col, rows: avail, cols: rect.cols) draw_window(canvas, body) canvas end |