Class: RSpecTelemetry::Trace::Viewer::Screen::RankedScreen

Inherits:
Object
  • Object
show all
Defined in:
lib/rspec_telemetry/trace/viewer/screen/ranked_screen.rb

Instance Method Summary collapse

Constructor Details

#initialize(document, list, view) ⇒ RankedScreen

Returns a new instance of RankedScreen.



14
15
16
17
18
19
# File 'lib/rspec_telemetry/trace/viewer/screen/ranked_screen.rb', line 14

def initialize(document, list, view)
  @document = document
  @list = list
  @view = view
  refresh
end

Instance Method Details

#activateObject



27
# File 'lib/rspec_telemetry/trace/viewer/screen/ranked_screen.rb', line 27

def activate = refresh

#countObject



24
# File 'lib/rspec_telemetry/trace/viewer/screen/ranked_screen.rb', line 24

def count = @rows.size

#current_sourceObject



57
58
59
# File 'lib/rspec_telemetry/trace/viewer/screen/ranked_screen.rb', line 57

def current_source
  @view == :examples ? @rows[@list.cursor]&.source : nil
end

#detail_lines(width) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/rspec_telemetry/trace/viewer/screen/ranked_screen.rb', line 38

def detail_lines(width)
  row = @rows[@list.cursor]
  return [] unless row

  if row.payload.is_a?(Document::Action)
    action = row.payload
    DetailLines.for(
      action,
      children: @document.events_for(action.seq),
      duration: action.duration_ms,
      width: width
    )
  else
    ReportView.detail(row.payload).flat_map do |line|
      TuiTui::DisplayText.new(line).wrap(width, indent: "  ").map(&:to_s)
    end
  end
end

#draw_list(canvas, rect, focused:) ⇒ Object



34
35
36
# File 'lib/rspec_telemetry/trace/viewer/screen/ranked_screen.rb', line 34

def draw_list(canvas, rect, focused:)
  ReportPane.new(@rows, list: @list, focus: focused).draw(canvas, rect)
end

#handle_key_event(_event, _app) ⇒ Object



61
# File 'lib/rspec_telemetry/trace/viewer/screen/ranked_screen.rb', line 61

def handle_key_event(_event, _app) = nil

#refreshObject



29
30
31
32
# File 'lib/rspec_telemetry/trace/viewer/screen/ranked_screen.rb', line 29

def refresh
  @rows = ReportView.rows(@document, @view)
  @list.count = @rows.size
end

#source?Boolean

Returns:

  • (Boolean)


25
# File 'lib/rspec_telemetry/trace/viewer/screen/ranked_screen.rb', line 25

def source? = @view == :examples && @rows.any?(&:source)

#time_bar?Boolean

Returns:

  • (Boolean)


22
# File 'lib/rspec_telemetry/trace/viewer/screen/ranked_screen.rb', line 22

def time_bar? = false

#time_bar_currentObject



23
# File 'lib/rspec_telemetry/trace/viewer/screen/ranked_screen.rb', line 23

def time_bar_current = nil

#titleObject



21
# File 'lib/rspec_telemetry/trace/viewer/screen/ranked_screen.rb', line 21

def title = ReportView.title(@view)