class Pepin::CursesView::PromptView
Attributes
cursor[R]
Public Class Methods
new(height, width, y, x, query:, prompt:)
click to toggle source
# File lib/pepin/curses_view.rb, line 13 def initialize(height, width, y, x, query:, prompt:) @query, @prompt_string = query, prompt @window = Curses::Window.new(height, width, y, x) @cursor = cursor_range.first @window.keypad true @query.add_observer -> { render }, :call end
Public Instance Methods
input_char()
click to toggle source
# File lib/pepin/curses_view.rb, line 23 def input_char @window.getch end
move_cursor(value)
click to toggle source
# File lib/pepin/curses_view.rb, line 27 def move_cursor(value) self.cursor = cursor + value end
move_cursor_to_first()
click to toggle source
# File lib/pepin/curses_view.rb, line 31 def move_cursor_to_first self.cursor = cursor_range.first end
move_cursor_to_last()
click to toggle source
# File lib/pepin/curses_view.rb, line 35 def move_cursor_to_last self.cursor = cursor_range.last end
render()
click to toggle source
# File lib/pepin/curses_view.rb, line 39 def render @window.setpos 0, 0 @window.addstr @prompt_string + @query.to_s @window.clrtoeol end
Private Instance Methods
cursor=(pos)
click to toggle source
# File lib/pepin/curses_view.rb, line 51 def cursor=(pos) return false unless cursor_range.include?(pos) @cursor = pos @window.setpos 0, @prompt_string.length + pos end
cursor_range()
click to toggle source
# File lib/pepin/curses_view.rb, line 47 def cursor_range 0..@query.length end