lib/ollama/utils/chooser.rb in ollama-ruby-0.6.0 vs lib/ollama/utils/chooser.rb in ollama-ruby-0.7.0
- old
+ new
@@ -6,27 +6,33 @@
include SearchUI
include Term::ANSIColor
module_function
- def choose(entries)
+ def choose(entries, prompt: 'Search? %s')
entry = Search.new(
+ prompt:,
match: -> answer {
matcher = Amatch::PairDistance.new(answer.downcase)
matches = entries.map { |n| [ n, -matcher.similar(n.to_s.downcase) ] }.
select { |_, s| s < 0 }.sort_by(&:last).map(&:first)
matches.empty? and matches = entries
matches.first(Tins::Terminal.lines - 1)
},
query: -> _answer, matches, selector {
matches.each_with_index.map { |m, i|
- i == selector ? "#{blue{?⮕}} #{on_blue{m}}" : " #{m}"
+ i == selector ? "#{blue{?⮕}} #{on_blue{m}}" : " #{m.to_s}"
} * ?\n
},
found: -> _answer, matches, selector {
matches[selector]
},
output: STDOUT
).start
- return entry if entry
+ if entry
+ entry
+ else
+ print clear_screen, move_home
+ nil
+ end
end
end