aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorXu Cheng2015-09-07 18:54:44 +0800
committerXu Cheng2015-09-08 11:04:49 +0800
commit67c3f8ff2705a92a2505e46de42ab16f6a70e42b (patch)
tree0699b212a10c996e1f4c1ed6f228bc12d49b3680 /Library
parente370f005c0dc8fac6f22c236e87681c2fd81bc82 (diff)
downloadbrew-67c3f8ff2705a92a2505e46de42ab16f6a70e42b.tar.bz2
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 <xucheng@me.com>
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/cmd/audit.rb13
1 files changed, 9 insertions, 4 deletions
diff --git a/Library/Homebrew/cmd/audit.rb b/Library/Homebrew/cmd/audit.rb
index 5d70944d1..d240fb217 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)