Class: TTY2::Prompt::Suggestion
- Inherits:
-
Object
- Object
- TTY2::Prompt::Suggestion
- Defined in:
- lib/tty2/prompt/suggestion.rb
Overview
A class representing a suggestion out of possible choices
Constant Summary collapse
- DEFAULT_INDENT =
8
- SINGLE_TEXT =
"Did you mean this?"
- PLURAL_TEXT =
"Did you mean one of these?"
Instance Attribute Summary collapse
-
#indent ⇒ Object
readonly
Number of spaces.
-
#plural_text ⇒ Object
readonly
Text for multiple suggestions.
-
#single_text ⇒ Object
readonly
Text for a single suggestion.
Instance Method Summary collapse
-
#initialize(**options) ⇒ Suggestion
constructor
Initialize a Suggestion.
-
#suggest(message, possibilities) ⇒ Object
Suggest matches out of possibile strings.
Constructor Details
#initialize(**options) ⇒ Suggestion
Initialize a Suggestion
36 37 38 39 40 41 42 |
# File 'lib/tty2/prompt/suggestion.rb', line 36 def initialize(**) @indent = .fetch(:indent) { DEFAULT_INDENT } @single_text = .fetch(:single_text) { SINGLE_TEXT } @plural_text = .fetch(:plural_text) { PLURAL_TEXT } @suggestions = [] @comparator = Distance.new end |
Instance Attribute Details
#indent ⇒ Object (readonly)
Number of spaces
21 22 23 |
# File 'lib/tty2/prompt/suggestion.rb', line 21 def indent @indent end |
#plural_text ⇒ Object (readonly)
Text for multiple suggestions
31 32 33 |
# File 'lib/tty2/prompt/suggestion.rb', line 31 def plural_text @plural_text end |
#single_text ⇒ Object (readonly)
Text for a single suggestion
26 27 28 |
# File 'lib/tty2/prompt/suggestion.rb', line 26 def single_text @single_text end |
Instance Method Details
#suggest(message, possibilities) ⇒ Object
Suggest matches out of possibile strings
51 52 53 54 55 56 57 58 59 60 |
# File 'lib/tty2/prompt/suggestion.rb', line 51 def suggest(, possibilities) distances = measure_distances(, possibilities) minimum_distance = distances.keys.min max_distance = distances.keys.max if minimum_distance < max_distance @suggestions = distances[minimum_distance].sort end evaluate end |