Spec-Zone.ru › Homebrew

Класс: Utils::TopologicalHash Приватный

Наследует:
Hash
  • Object
  • Hash
  • Utils::TopologicalHash
показать все
Расширен модулем:
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. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.

Параметры:

  • packages (CaskOrFormula, Array<CaskOrFormula>)
  • accumulator (TopologicalHash) (по умолчанию: TopologicalHash.new)

Возвращает:

  • (TopologicalHash)


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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API