Sha256: 2dc9302f18461d9461f9a8828d72354a0af1bc932f655c75408b725ae456267f
Contents?: true
Size: 1.32 KB
Versions: 2
Compression:
Stored size: 1.32 KB
Contents
module Vedeu module Terminal extend self def open(mode, &block) @mode = mode if block_given? if raw_mode? console.raw { initialize_screen { yield } } else console.cooked { initialize_screen { yield } } end end ensure restore_screen end def input if raw_mode? keys = console.getch if keys.ord == 27 keys << console.read_nonblock(3) rescue nil keys << console.read_nonblock(2) rescue nil end keys else console.gets.chomp end end def output(stream = '') console.print(stream) stream end def initialize_screen(&block) output Esc.string 'screen_init' yield end def restore_screen output Esc.string 'screen_exit' output clear_last_line end def set_cursor_mode output Esc.string 'show_cursor' unless raw_mode? end def raw_mode? @mode == :raw end def clear_last_line Esc.set_position((height - 1), 1) + Esc.string('clear_line') end def centre [(height / 2), (width / 2)] end def width size.last end def height size.first end def size console.winsize end def console IO.console end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
vedeu-0.1.12 | lib/vedeu/support/terminal.rb |
vedeu-0.1.10 | lib/vedeu/support/terminal.rb |