Class: Milktea::Program

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/milktea/program.rb

Overview

Main program class for running Milktea TUI applications

Constant Summary collapse

FPS =
60
REFRESH_INTERVAL =
1.0 / FPS

Instance Method Summary collapse

Constructor Details

#initialize(model, config: nil) ⇒ Program



21
22
23
24
25
26
# File 'lib/milktea/program.rb', line 21

def initialize(model, config: nil)
  @model = model
  @config = config || Milktea.config
  @timers = Timers::Group.new
  @reader = TTY::Reader.new(interrupt: :error)
end

Instance Method Details

#runObject



28
29
30
31
32
33
34
35
36
# File 'lib/milktea/program.rb', line 28

def run
  start
  setup_screen
  render(@model)
  setup_timers
  @timers.wait while running?
ensure
  restore_screen
end