Module: Vedeu::Terminal
Instance Method Summary collapse
- #centre ⇒ Object
-
#clear_last_line ⇒ Object
:nocov:.
- #console ⇒ Object
- #height ⇒ Object
-
#initialize_screen(&block) ⇒ Object
:nocov:.
- #input ⇒ Object
-
#open(mode, &block) ⇒ Object
:nocov:.
-
#output(stream = '') ⇒ Object
:nocov:.
- #raw_mode? ⇒ Boolean
- #restore_screen ⇒ Object
- #set_cursor_mode ⇒ Object
- #size ⇒ Object
- #width ⇒ Object
Instance Method Details
#centre ⇒ Object
75 76 77 |
# File 'lib/vedeu/support/terminal.rb', line 75 def centre [(height / 2), (width / 2)] end |
#clear_last_line ⇒ Object
:nocov:
71 72 73 |
# File 'lib/vedeu/support/terminal.rb', line 71 def clear_last_line Esc.set_position((height - 1), 1) + "\e[2K" end |
#console ⇒ Object
91 92 93 |
# File 'lib/vedeu/support/terminal.rb', line 91 def console IO.console end |
#height ⇒ Object
83 84 85 |
# File 'lib/vedeu/support/terminal.rb', line 83 def height size.first end |
#initialize_screen(&block) ⇒ Object
:nocov:
48 49 50 51 52 53 54 |
# File 'lib/vedeu/support/terminal.rb', line 48 def initialize_screen(&block) output Esc.string 'reset' output Esc.string 'clear' output Esc.string 'hide_cursor' yield end |
#input ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/vedeu/support/terminal.rb', line 25 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 |
#open(mode, &block) ⇒ Object
:nocov:
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/vedeu/support/terminal.rb', line 9 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 |
#output(stream = '') ⇒ Object
:nocov:
41 42 43 44 45 |
# File 'lib/vedeu/support/terminal.rb', line 41 def output(stream = '') console.print(stream) stream end |
#raw_mode? ⇒ Boolean
66 67 68 |
# File 'lib/vedeu/support/terminal.rb', line 66 def raw_mode? @mode == :raw end |
#restore_screen ⇒ Object
56 57 58 59 60 |
# File 'lib/vedeu/support/terminal.rb', line 56 def restore_screen output Esc.string 'show_cursor' output Esc.string 'reset' output clear_last_line end |
#set_cursor_mode ⇒ Object
62 63 64 |
# File 'lib/vedeu/support/terminal.rb', line 62 def set_cursor_mode output Esc.string 'show_cursor' unless raw_mode? end |
#size ⇒ Object
87 88 89 |
# File 'lib/vedeu/support/terminal.rb', line 87 def size console.winsize end |
#width ⇒ Object
79 80 81 |
# File 'lib/vedeu/support/terminal.rb', line 79 def width size.last end |