Класс: Utils::TopologicalHash Приватный
- Наследует:
- Hash показать все
- Расширен модулем:
- T::Generic
- Подключает:
- TSort
- Определён в:
- utils/topological_hash.rb
Обзор
Этот класс является частью приватного API. Этот класс можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот класс, поскольку он может быть удалён или изменён без предупреждения.
Хеш-таблица с топологической сортировкой.
Краткое описание констант свернуть
- CaskOrFormula =
Эта константа является частью приватного API. Эту константу можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать эту константу, поскольку она может быть удалена или изменена без предупреждения.
T.type_alias { T.any(Cask::Cask, Formula) }
- K =
Эта константа является частью приватного API. Эту константу можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать эту константу, поскольку она может быть удалена или изменена без предупреждения.
type_member { { fixed: CaskOrFormula } }
- V =
Эта константа является частью приватного API. Эту константу можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать эту константу, поскольку она может быть удалена или изменена без предупреждения.
type_member { { fixed: T::Array[CaskOrFormula] } }
- Elem =
Эта константа является частью приватного API. Эту константу можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать эту константу, поскольку она может быть удалена или изменена без предупреждения.
type_member(:out) { { fixed: [CaskOrFormula, T::Array[CaskOrFormula]] } }
Краткое описание методов класса свернуть
- .graph_package_dependencies(packages, accumulator = TopologicalHash.new) ⇒ TopologicalHash приватный
Методы, унаследованные от Hash
#assert_valid_keys, #blank?, #compact_blank, #deep_dup, #deep_merge, #deep_merge!, #deep_stringify_keys, #deep_symbolize_keys, #deep_transform_keys, #deep_transform_keys!, #deep_transform_values, #present?
Подробное описание методов класса
.graph_package_dependencies(packages, accumulator = TopologicalHash.new) ⇒ TopologicalHash
Этот метод является частью приватного API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | # File 'utils/topological_hash.rb', line 24 def self.graph_package_dependencies(packages, accumulator = TopologicalHash.new) packages = Array(packages) packages.each do |cask_or_formula| next if accumulator.key?(cask_or_formula) case cask_or_formula when Cask::Cask formula_deps = cask_or_formula.depends_on .formula .map { |f| Formula[f] } cask_deps = cask_or_formula.depends_on .cask .map { |c| Cask::CaskLoader.load(c, config: nil) } when Formula formula_deps = cask_or_formula.deps .filter_map { |d| d.to_formula if !d.build? && !d.test? } cask_deps = cask_or_formula.requirements .filter_map(&:cask) .map { |c| Cask::CaskLoader.load(c, config: nil) } else T.absurd(cask_or_formula) end accumulator[cask_or_formula] = formula_deps + cask_deps graph_package_dependencies(formula_deps, accumulator) graph_package_dependencies(cask_deps, accumulator) end accumulator end |
© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/rubydoc/Utils/TopologicalHash.html