From b21430b13cd6c2a77cd316fca4e3e21084d0e81f Mon Sep 17 00:00:00 2001 From: Markus Reiter Date: Wed, 13 Jun 2018 07:49:01 +0200 Subject: [PATCH] Use `extend/os` pattern. --- Library/Homebrew/cmd/search.rb | 32 +++--------------------- Library/Homebrew/extend/os/mac/search.rb | 26 +++++++++++++++++++ Library/Homebrew/extend/os/search.rb | 1 + Library/Homebrew/search.rb | 27 ++++++++++++-------- 4 files changed, 46 insertions(+), 40 deletions(-) create mode 100644 Library/Homebrew/extend/os/mac/search.rb create mode 100644 Library/Homebrew/extend/os/search.rb diff --git a/Library/Homebrew/cmd/search.rb b/Library/Homebrew/cmd/search.rb index 68302f2672..2771d06f79 100644 --- a/Library/Homebrew/cmd/search.rb +++ b/Library/Homebrew/cmd/search.rb @@ -18,7 +18,6 @@ require "missing_formula" require "descriptions" require "cli_parser" require "search" -require "hbc/cask_loader" module Homebrew module_function @@ -63,38 +62,13 @@ module Homebrew query = args.remaining.join(" ") string_or_regex = query_regexp(query) - remote_results = if query.match?(HOMEBREW_TAP_FORMULA_REGEX) || query.match?(HOMEBREW_TAP_CASK_REGEX) - _, _, name = query.split("/", 3) - search_taps(name, silent: true) - else - search_taps(query, silent: true) - end - - local_formulae = if query.match?(HOMEBREW_TAP_FORMULA_REGEX) - begin - [Formulary.factory(query).name] - rescue FormulaUnavailableError - [] - end - else - search_formulae(string_or_regex) - end + remote_results = search_taps(query, silent: true) + local_formulae = search_formulae(string_or_regex) remote_formulae = remote_results[:formulae] all_formulae = local_formulae + remote_formulae - local_casks = if !OS.mac? - [] - elsif query.match?(HOMEBREW_TAP_CASK_REGEX) - begin - [Hbc::CaskLoader.load(query).token] - rescue Hbc::CaskUnavailableError - [] - end - else - search_casks(string_or_regex) - end - + local_casks = search_casks(string_or_regex) remote_casks = remote_results[:casks] all_casks = local_casks + remote_casks diff --git a/Library/Homebrew/extend/os/mac/search.rb b/Library/Homebrew/extend/os/mac/search.rb new file mode 100644 index 0000000000..aae84dd7e1 --- /dev/null +++ b/Library/Homebrew/extend/os/mac/search.rb @@ -0,0 +1,26 @@ +require "hbc/cask" +require "hbc/cask_loader" + +module Homebrew + module Search + def search_casks(string_or_regex) + if string_or_regex.is_a?(String) && string_or_regex.match?(HOMEBREW_TAP_CASK_REGEX) + return begin + [Hbc::CaskLoader.load(string_or_regex).token] + rescue Hbc::CaskUnavailableError + [] + end + end + + results = Hbc::Cask.search(string_or_regex, &:token).sort_by(&:token) + + results.map do |cask| + if cask.installed? + pretty_installed(cask.token) + else + cask.token + end + end + end + end +end diff --git a/Library/Homebrew/extend/os/search.rb b/Library/Homebrew/extend/os/search.rb new file mode 100644 index 0000000000..69c6b02543 --- /dev/null +++ b/Library/Homebrew/extend/os/search.rb @@ -0,0 +1 @@ +require "extend/os/mac/search" if OS.mac? diff --git a/Library/Homebrew/search.rb b/Library/Homebrew/search.rb index f43edaf871..3c78faf27e 100644 --- a/Library/Homebrew/search.rb +++ b/Library/Homebrew/search.rb @@ -1,5 +1,4 @@ require "searchable" -require "hbc/cask" module Homebrew module Search @@ -14,6 +13,10 @@ module Homebrew end def search_taps(query, silent: false) + if query.match?(Regexp.union(HOMEBREW_TAP_FORMULA_REGEX, HOMEBREW_TAP_CASK_REGEX)) + _, _, query = query.split("/", 3) + end + results = { formulae: [], casks: [] } return results if ENV["HOMEBREW_NO_GITHUB_API"] @@ -53,6 +56,14 @@ module Homebrew end def search_formulae(string_or_regex) + if string_or_regex.is_a?(String) && string_or_regex.match?(HOMEBREW_TAP_FORMULA_REGEX) + return begin + [Formulary.factory(string_or_regex).name] + rescue FormulaUnavailableError + [] + end + end + aliases = Formula.alias_full_names results = (Formula.full_names + aliases) .extend(Searchable) @@ -78,16 +89,10 @@ module Homebrew end.compact end - def search_casks(string_or_regex) - results = Hbc::Cask.search(string_or_regex, &:token).sort_by(&:token) - - results.map do |cask| - if cask.installed? - pretty_installed(cask.token) - else - cask.token - end - end + def search_casks(_string_or_regex) + [] end end end + +require "extend/os/search"