class Pepin::CursesView

Public Class Methods

new(query, prompt: '> ') click to toggle source
# File lib/pepin/curses_view.rb, line 100
def initialize(query, prompt: '> ')
  @query         = query
  @prompt_string = prompt

  launch
end

Public Instance Methods

launch() click to toggle source
# File lib/pepin/curses_view.rb, line 107
def launch
  @window = Curses.init_screen

  Curses.raw
  Curses.noecho

  @prompt_view = PromptView.new(1,                 Curses.cols, 0, 0, query: @query, prompt: @prompt_string)
  @list_view   = ListView.new(  Curses.lines - 1,  Curses.cols, 0, 0, query: @query)

  render
end
refresh_winsize() click to toggle source
# File lib/pepin/curses_view.rb, line 124
def refresh_winsize
  Curses.clear

  lines = Curses.lines
  cols  = Curses.cols

  Curses.resize       lines,     cols
  @window.resize      lines,     cols
  @prompt_view.resize 1,         cols
  @list_view.resize   lines - 1, cols

  render
end
render() click to toggle source
# File lib/pepin/curses_view.rb, line 119
def render
  @prompt_view.render
  @list_view.render
end
shutdown() click to toggle source
# File lib/pepin/curses_view.rb, line 138
def shutdown
  Curses.close_screen if @window
end