class TTY::Prompt::Suggestion

A class representing a suggestion out of possible choices

@api public

Constants

DEFAULT_INDENT
PLURAL_TEXT
SINGLE_TEXT

Attributes

indent[R]

Number of spaces

@api public

plural_text[R]

Text for multiple suggestions

@api public

single_text[R]

Text for a single suggestion

@api public

Public Class Methods

new(options = {}) click to toggle source

Initialize a Suggestion

@api public

# File lib/tty/prompt/suggestion.rb, line 35
def initialize(options = {})
  @indent      = options.fetch(:indent) { DEFAULT_INDENT }
  @single_text = options.fetch(:single_text) { SINGLE_TEXT }
  @plural_text = options.fetch(:plural_text) { PLURAL_TEXT }
  @suggestions = []
  @comparator  = Distance.new
end

Public Instance Methods

suggest(message, possibilities) click to toggle source

Suggest matches out of possibile strings

@param [String] message

@param [Array] possibilities

@api public

# File lib/tty/prompt/suggestion.rb, line 50
def suggest(message, possibilities)
  distances        = measure_distances(message, possibilities)
  minimum_distance = distances.keys.min
  max_distance     = distances.keys.max

  if minimum_distance < max_distance
    @suggestions = distances[minimum_distance].sort
  end
  evaluate
end