class Utils::SearchUI

def start

def start
  @output.print clear_screen, move_home, reset
  loop do
    @output.print move_home { @prompt % @answer }
    case getc
    when true
      @output.print clear_screen, move_home, reset
      if result = @found.(@answer, @selector)
        return result
      else
        return nil
      end
    when false
      return nil
    end
    result = @query.(@answer, @selector)
    @output.print clear_screen
    unless @answer.empty?
      @output.print move_home { ?\n + result }
    end
  end
end