diff options
| author | Xu Cheng | 2015-09-07 18:54:44 +0800 |
|---|---|---|
| committer | Xu Cheng | 2015-09-08 11:04:49 +0800 |
| commit | 67c3f8ff2705a92a2505e46de42ab16f6a70e42b (patch) | |
| tree | 0699b212a10c996e1f4c1ed6f228bc12d49b3680 /Library | |
| parent | e370f005c0dc8fac6f22c236e87681c2fd81bc82 (diff) | |
| download | brew-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.rb | 13 |
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) |
