From 7d77a9e97d43ee5bda273277da093078e00325b5 Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Tue, 5 Nov 2019 20:34:24 +0000 Subject: [PATCH] formula: add runtime_installed_formula_dependents method. --- Library/Homebrew/formula.rb | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb index 2213f640d6..538f495869 100644 --- a/Library/Homebrew/formula.rb +++ b/Library/Homebrew/formula.rb @@ -1570,6 +1570,23 @@ class Formula end.compact end + def runtime_installed_formula_dependents + # `opt_or_installed_prefix_keg` and `runtime_dependencies` `select`s ensure + # that we don't end up with something `Formula#runtime_dependencies` can't + # read from a `Tab`. + Formula.cache[:runtime_installed_formula_dependents] = {} + Formula.cache[:runtime_installed_formula_dependents][name] ||= Formula.installed + .select(&:opt_or_installed_prefix_keg) + .select(&:runtime_dependencies) + .select do |f| + f.runtime_formula_dependencies.any? do |dep| + full_name == dep.full_name + rescue + name == dep.name + end + end + end + # Returns a list of formulae depended on by this formula that aren't # installed def missing_dependencies(hide: nil)