From 67c3f8ff2705a92a2505e46de42ab16f6a70e42b Mon Sep 17 00:00:00 2001 From: Xu Cheng Date: Mon, 7 Sep 2015 18:54:44 +0800 Subject: [PATCH] audit: cache formula names during audit_formula_name Before `audit_formula_name: 15.094845999999986` After `audit_formula_name: 0.5617120000000043` Closes Homebrew/homebrew#43663. Signed-off-by: Xu Cheng --- Library/Homebrew/cmd/audit.rb | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/Library/Homebrew/cmd/audit.rb b/Library/Homebrew/cmd/audit.rb index 5d70944d15..d240fb2178 100644 --- a/Library/Homebrew/cmd/audit.rb +++ b/Library/Homebrew/cmd/audit.rb @@ -235,10 +235,15 @@ class FormulaAuditor return end - same_name_tap_formulae = Formula.tap_names.select do |tap_formula_name| - user_name, _, formula_name = tap_formula_name.split("/", 3) - user_name == "homebrew" && formula_name == name - end + @@local_official_taps_name_map ||= Tap.select(&:official?).flat_map(&:formula_names). + reduce(Hash.new) do |name_map, tap_formula_full_name| + tap_formula_name = tap_formula_full_name.split("/").last + name_map[tap_formula_name] ||= [] + name_map[tap_formula_name] << tap_formula_full_name + name_map + end + + same_name_tap_formulae = @@local_official_taps_name_map[name] || [] if @online @@remote_official_taps ||= OFFICIAL_TAPS - Tap.select(&:official?).map(&:repo)