Class: TicTacToe::TUI

Inherits:
Object
  • Object
show all
Defined in:
lib/tic_tac_toe/tui.rb,
lib/tic_tac_toe/tui/board.rb,
lib/tic_tac_toe/tui/setup.rb,
lib/tic_tac_toe/tui/cursor.rb,
lib/tic_tac_toe/tui/status.rb

Overview

Textual User Inteface

Defined Under Namespace

Classes: Board, Cursor, Setup, Status

Instance Method Summary collapse

Constructor Details

#initializeTUI

Returns a new instance of TUI.



10
11
12
# File 'lib/tic_tac_toe/tui.rb', line 10

def initialize
  TUI::Setup.call
end

Instance Method Details

#board!(*args) ⇒ Object



22
23
24
25
# File 'lib/tic_tac_toe/tui.rb', line 22

def board!(*args)
  @board ||= TUI::Board.new(*args)
  @board.update(*args)
end

#clearObject



37
38
39
40
41
42
43
# File 'lib/tic_tac_toe/tui.rb', line 37

def clear
  @board.window.close
  Curses.clear
  Curses.refresh

  @board = @cursor = @status = nil
end

#cursor!(*args) ⇒ Object



27
28
29
30
# File 'lib/tic_tac_toe/tui.rb', line 27

def cursor!(*args)
  @cursor ||= TUI::Cursor.new(@board.window)
  @cursor.update(*args)
end

#listenObject



14
15
16
17
18
19
20
# File 'lib/tic_tac_toe/tui.rb', line 14

def listen
  loop do
    key = getch
    yield key
  end
rescue Interrupt
end

#status!(*args) ⇒ Object



32
33
34
35
# File 'lib/tic_tac_toe/tui.rb', line 32

def status!(*args)
  @status ||= TUI::Status.new(@board.window)
  @status.update(*args)
end