diff --git a/Library/Homebrew/cache_store.rb b/Library/Homebrew/cache_store.rb index a94e1e98e1..3328235329 100644 --- a/Library/Homebrew/cache_store.rb +++ b/Library/Homebrew/cache_store.rb @@ -25,6 +25,12 @@ class DatabaseCache @return_value = yield(@db) @db.close end + + def self.use(type) + return_value = nil + DatabaseCache.new(type) { |db| return_value = yield(db) } + return_value + end end # diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb index b130c508ec..2f4fc73ae7 100644 --- a/Library/Homebrew/formula.rb +++ b/Library/Homebrew/formula.rb @@ -1527,13 +1527,13 @@ class Formula keg = opt_or_installed_prefix_keg return [] unless keg - cache = DatabaseCache.new(:linkage) do |database_cache| + undeclared_deps = DatabaseCache.use(:linkage) do |database_cache| use_cache = !ENV["HOMEBREW_LINKAGE_CACHE"].nil? linkage_checker = LinkageChecker.new(keg, database_cache, use_cache, self) linkage_checker.undeclared_deps.map { |n| Dependency.new(n) } end - cache.return_value + undeclared_deps end # Returns a list of formulae depended on by this formula that aren't