Fix DescriptionCacheStore searching

This commit is contained in:
Douglas Eichelberger 2023-03-09 18:33:11 -08:00
parent cb5e8298a2
commit de90ddf07c
2 changed files with 7 additions and 9 deletions

View File

@ -82,8 +82,6 @@ class DescriptionCacheStore < CacheStore
end
alias delete_from_cask_tokens! delete_from_formula_names!
private
# `select` from the underlying database.
def select(&block)
database.select(&block)

View File

@ -170,12 +170,12 @@ module Homebrew
[all_formulae, all_casks]
end
def search(array, string_or_regex, &block)
def search(selectable, string_or_regex, &block)
case string_or_regex
when Regexp
search_regex(array, string_or_regex, &block)
search_regex(selectable, string_or_regex, &block)
else
search_string(array, string_or_regex.to_str, &block)
search_string(selectable, string_or_regex.to_str, &block)
end
end
@ -183,17 +183,17 @@ module Homebrew
string.downcase.gsub(/[^a-z\d]/i, "")
end
def search_regex(array, regex)
array.select do |*args|
def search_regex(selectable, regex)
selectable.select do |*args|
args = yield(*args) if block_given?
args = Array(args).flatten.compact
args.any? { |arg| arg.match?(regex) }
end
end
def search_string(array, string)
def search_string(selectable, string)
simplified_string = simplify_string(string)
array.select do |*args|
selectable.select do |*args|
args = yield(*args) if block_given?
args = Array(args).flatten.compact
args.any? { |arg| simplify_string(arg).include?(simplified_string) }