class ToucanCLI::Screen
Attributes
iqueue[RW]
iwin[RW]
owin[RW]
Public Class Methods
new()
click to toggle source
# File lib/toucan_cli/screen.rb, line 5 def initialize @iqueue = Queue.new Curses.init_screen Curses.crmode draw_output_window draw_input_window feed_iqueue end
Public Instance Methods
start() { || ... }
click to toggle source
# File lib/toucan_cli/screen.rb, line 15 def start begin loop do yield end ensure @iwin.close if @iwin @owin.close if @owin Curses.close_screen end end
Private Instance Methods
draw_input_window()
click to toggle source
# File lib/toucan_cli/screen.rb, line 39 def draw_input_window @iwin = Curses::Window.new(1, Curses.cols, (Curses.lines - 1), 0) @iwin.setpos(1, 2) @iwin.scrollok(true) end
draw_output_window()
click to toggle source
Curses::Window.new(height, width, top, left)
# File lib/toucan_cli/screen.rb, line 31 def draw_output_window @owin = Curses::Window.new((Curses.lines - 2), Curses.cols, 0, 0) @owin.setpos(0, 0) @owin.scrollok(true) @owin.setscrreg(0, (Curses.lines - 2)) @owin.refresh end
feed_iqueue()
click to toggle source
# File lib/toucan_cli/screen.rb, line 45 def feed_iqueue Thread.new do loop do @iwin.refresh @iqueue << @iwin.getstr() @iwin.clear end end end