Class: Toys::Completion::Enum
- Defined in:
- toys-core/lib/toys/completion.rb
Overview
Defined in the toys-core gem
A Completion whose candidates come from a static list of strings.
Instance Attribute Summary collapse
-
#prefix_constraint ⇒ String, Regexp
readonly
Constraint on the fragment prefix.
-
#values ⇒ Array<String>
readonly
The array of completion candidates.
Instance Method Summary collapse
-
#call(context) ⇒ Array<Toys::Completion::Candidate>
Returns candidates for the current completion.
-
#initialize(values, prefix_constraint: "") ⇒ Enum
constructor
Create a completion from a list of values.
Constructor Details
#initialize(values, prefix_constraint: "") ⇒ Enum
Create a completion from a list of values.
343 344 345 346 347 |
# File 'toys-core/lib/toys/completion.rb', line 343 def initialize(values, prefix_constraint: "") super() @values = values.flatten.map { |v| Candidate.new(v) }.sort @prefix_constraint = prefix_constraint end |
Instance Attribute Details
#prefix_constraint ⇒ String, Regexp (readonly)
Constraint on the fragment prefix.
359 360 361 |
# File 'toys-core/lib/toys/completion.rb', line 359 def prefix_constraint @prefix_constraint end |
#values ⇒ Array<String> (readonly)
The array of completion candidates.
353 354 355 |
# File 'toys-core/lib/toys/completion.rb', line 353 def values @values end |
Instance Method Details
#call(context) ⇒ Array<Toys::Completion::Candidate>
Returns candidates for the current completion.
368 369 370 371 372 |
# File 'toys-core/lib/toys/completion.rb', line 368 def call(context) return [] unless @prefix_constraint === context.fragment_prefix fragment = context.fragment @values.find_all { |val| val.string.start_with?(fragment) } end |