Class: Tkn2::Screen

Inherits:
Object
  • Object
show all
Defined in:
lib/tkn2/screen.rb

Instance Method Summary collapse

Constructor Details

#initializeScreen

Returns a new instance of Screen.



5
6
7
8
9
10
11
12
# File 'lib/tkn2/screen.rb', line 5

def initialize
  Curses.init_screen
  Curses.cbreak
  Curses.nl
  Curses.noecho
  Curses.curs_set 0
  Curses.stdscr.keypad(true)
end

Instance Method Details

#render(deck) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/tkn2/screen.rb', line 14

def render(deck)
  loop do
    break unless deck.current

    Curses.clear
    place_content deck.current.block

    case Curses.getch
    when 'q'
      break
    when 'n', Curses::Key::DOWN, Curses::Key::RIGHT, ' ', Curses::Key::ENTER, Curses::Key::NPAGE
      deck.next
    when 'p', Curses::Key::UP, Curses::Key::LEFT, Curses::Key::BACKSPACE, Curses::Key::PPAGE
      deck.prev
    when Curses::Key::HOME
      deck.first
    end
  end

  Curses.stdscr.close
end