def prompt(position = 0)
      @selected_position = position_selector(position)
      colonel.system("clear")
      header_proc.call
      print_flash
      Downup::OptionsPrinter.new(
        options: options,
        selected_position: @selected_position,
        multi_selected_positions: @multi_selected_positions,
        multi_select_selector: multi_select_selector,
        default_color: default_color,
        selected_color: selected_color,
        selector: selector,
        stdin: stdin,
        stdout: stdout,
      ).print_options
      stdout.print "\n> "
      input = read_char
      process_input input
    end
def prompt(position = 0)
      @selected_position = position_selector(position)
      colonel.system("clear")
      header_proc.call
      print_flash
      Downup::OptionsPrinter.new(
        options: options,
        selected_position: @selected_position,
        multi_selected_positions: @multi_selected_positions,
        multi_select_selector: multi_select_selector,
        default_color: default_color,
        selected_color: selected_color,
        selector: selector,
        stdin: stdin,
        stdout: stdout,
      ).print_options
      stdout.print "\n> "
      input = read_char
      process_input input
    end
@param options [Hash|Array] collection of options to choose from
 @param flash_message [String] A message to be displayed above the downup menu
 @param flash_color [Symbol] color of flash message
 @param default_color [Symbol] The color an unchoosen item
 @param selected_color [Symbol] The color a choosen item
 @param multi_select_selector [String] The charactor for selected items in multi mode
 @param selector [String] The charactor for the moving selector in non-multi mode
 @param type [Symbol] single select/default or multi select mode, `:default` or `:multi_select`
 @param header_proc [Proc] a proc that will called before each render of option selection

 @example array of options
   Downup::Base.new(options: ["option 1", "option 2"])

 @example hash of options
   Downup::Base.new(options: {"a" => "option 1", "b" => "option 2"})

 @example hash with "value" and "display" keys
   Downup::Base.new(options: {"a" => {"value" => "option 1", "display" => "Option 1"}})

 @example header_proc example
   Downup::Base.new(options: [], header_proc: Proc.new {puts "Hello"})
 Prompts the user to make selection from the options
 the object with initialized with.
 @param position [Integer] where the selector will start at
 @return [String] a string of the user's selection