aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/formulary.rb
diff options
context:
space:
mode:
authorXu Cheng2015-09-27 16:52:14 +0800
committerXu Cheng2015-09-30 16:25:30 +0800
commit3b520cf195b6d766d134a1f2bd033347c714a143 (patch)
tree31001ad53b1fcad563994aa328f82c59a7a805d8 /Library/Homebrew/formulary.rb
parent6240e896b2b3405dd3ffdf892b60e5eed05707b1 (diff)
downloadbrew-3b520cf195b6d766d134a1f2bd033347c714a143.tar.bz2
cache taps
There are plenty of IO operations inside Tap object, and it will be more when implementing formula alias reverse look up(e.g. list all of alias names for a formula). So let's cache them. Some benchmark: $ time brew info $(brew ruby -e 'puts Formula.tap_names') > /dev/null Before: 6.40s user 2.42s system 96% cpu 9.134 total After: 4.75s user 0.77s system 97% cpu 5.637 total Closes Homebrew/homebrew#44377. Signed-off-by: Xu Cheng <xucheng@me.com>
Diffstat (limited to 'Library/Homebrew/formulary.rb')
-rw-r--r--Library/Homebrew/formulary.rb2
1 files changed, 1 insertions, 1 deletions
diff --git a/Library/Homebrew/formulary.rb b/Library/Homebrew/formulary.rb
index a21d6e731..2bdaca752 100644
--- a/Library/Homebrew/formulary.rb
+++ b/Library/Homebrew/formulary.rb
@@ -145,7 +145,7 @@ class Formulary
def initialize(tapped_name)
user, repo, name = tapped_name.split("/", 3).map(&:downcase)
- @tap = Tap.new user, repo.sub(/^homebrew-/, "")
+ @tap = Tap.fetch user, repo.sub(/^homebrew-/, "")
name = @tap.formula_renames.fetch(name, name)
path = @tap.formula_files.detect { |file| file.basename(".rb").to_s == name }