Class: Sangi::StepViewer

Inherits:
Object
  • Object
show all
Defined in:
lib/sangi/step_viewer.rb

Constant Summary collapse

AUTOPLAY_INTERVAL =
0.35

Instance Method Summary collapse

Constructor Details

#initialize(steps:, renderer:, input: STDIN, output: STDOUT, clear_screen: true) ⇒ StepViewer

Returns a new instance of StepViewer.



8
9
10
11
12
13
14
15
16
# File 'lib/sangi/step_viewer.rb', line 8

def initialize(steps:, renderer:, input: STDIN, output: STDOUT, clear_screen: true)
  @steps = steps
  @renderer = renderer
  @input = input
  @output = output
  @clear_screen = clear_screen
  @current_index = 0
  @width_warning = TerminalWidthWarning.new(output: output)
end

Instance Method Details

#startObject



18
19
20
21
22
23
24
25
26
27
# File 'lib/sangi/step_viewer.rb', line 18

def start
  return if @steps.empty?

  @exit_requested = false
  loop do
    render_current
    handle_key(read_key)
    break if @exit_requested
  end
end