Spec-Zone.ru › Homebrew

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

Наследует:
Object
  • Object
  • DependencyCollector
показать все
Расширен модулями:
Cachable, T::Generic
Подключает модули:
OS::Linux::DependencyCollector, OS::Mac::DependencyCollector
Определён в:
dependency_collector.rb

Обзор

Этот класс является частью приватного API. Этот класс можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого класса, так как он может быть удалён или изменён без предупреждения.

Этот класс используется depends_on в DSL формул для преобразования спецификаций зависимостей в соответствующие типы зависимостей и требований.

Краткое описание констант свернуть

Cache =

Эта константа является частью приватного API. Эту константу можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этой константы, так как она может быть удалена или изменена без предупреждения.

type_template { { fixed: T::Hash[T.untyped, T.untyped] } }

Краткое описание атрибутов экземпляра свернуть

  • #deps ⇒ Object только для чтения приватный
  • #requirements ⇒ Requirements только для чтения приватный

Краткое описание методов класса свернуть

  • .tar_needs_bzip2_dependency? ⇒ Boolean приватный
  • .tar_needs_xz_dependency? ⇒ Boolean приватный

Краткое описание методов экземпляра свернуть

  • #add(spec) ⇒ T.untyped закрытый
  • #bubblewrap_dep_if_needed(related_formula_names) ⇒ Dependency? закрытый
  • #build(spec) ⇒ T.untyped закрытый
  • #bzip2_dep_if_needed(tags) ⇒ Dependency? закрытый
  • #cache_key(spec) ⇒ T.untyped закрытый
  • #curl_dep_if_needed(tags) ⇒ Dependency закрытый
  • #cvs_dep_if_needed(tags) ⇒ Dependency? закрытый
  • #fetch(spec) ⇒ T.untyped закрытый
  • #freeze ⇒ void закрытый
  • #gcc_dep_if_needed(related_formula_names) ⇒ Dependency? закрытый
  • #git_dep_if_needed(tags) ⇒ Dependency? закрытый
  • #glibc_dep_if_needed(related_formula_names) ⇒ Dependency? закрытый
  • #initialize ⇒ void конструктор закрытый
  • #initialize_dup(other) ⇒ void закрытый
  • #subversion_dep_if_needed(tags) ⇒ Dependency? закрытый
  • #unzip_dep_if_needed(tags) ⇒ Dependency? закрытый
  • #xz_dep_if_needed(tags) ⇒ Dependency? закрытый
  • #zstd_dep_if_needed(tags) ⇒ Dependency? закрытый

Методы, включённые из Cachable

cache, clear_cache

Подробное описание конструкторов

#initialize ⇒ void

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам следует по возможности избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.



36
37
38
39
40
41
42
# File 'dependency_collector.rb', line 36

def initialize
  # Ensure this is synced with `initialize_dup` and `freeze` (excluding simple objects like integers and booleans)
  @deps = T.let(Dependencies.new, Dependencies)
  @requirements = T.let(Requirements.new, Requirements)

  init_global_dep_tree_if_needed!
end

Подробное описание атрибутов экземпляра

#deps ⇒ Object (только для чтения)

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам следует по возможности избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.



30
31
32
# File 'dependency_collector.rb', line 30

def deps
  @deps
end

#requirements ⇒ Requirements (только для чтения)

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам следует по возможности избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (Requirements)


33
34
35
# File 'dependency_collector.rb', line 33

def requirements
  @requirements
end

Подробное описание методов класса

.tar_needs_bzip2_dependency? ⇒ Boolean

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (Boolean)


160
161
162
# File 'dependency_collector.rb', line 160

def self.tar_needs_bzip2_dependency?
  !new.bzip2_dep_if_needed([]).nil?
end

.tar_needs_xz_dependency? ⇒ Boolean

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (Boolean)


155
156
157
# File 'dependency_collector.rb', line 155

def self.tar_needs_xz_dependency?
  !new.xz_dep_if_needed([]).nil?
end

Подробное описание методов экземпляра

#add(spec) ⇒ T.untyped

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Параметры:

  • spec (T.untyped)

Возвращает:

  • (T.untyped)


59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'dependency_collector.rb', line 59

def add(spec)
  case dep = fetch(spec)
  when Array
    dep.compact.each { |dep| @deps << dep }
  when Dependency
    @deps << dep
  when Requirement
    @requirements << dep
  when nil
    # no-op when we have a nil value
    nil
  else
    raise ArgumentError, "DependencyCollector#add passed something that isn't a Dependency or Requirement!"
  end
  dep
end

#bubblewrap_dep_if_needed(related_formula_names) ⇒ Dependency?

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Параметры:

  • related_formula_names (Set<String>)

Возвращает:

  • (Dependency, nil)


106
# File 'dependency_collector.rb', line 106

def bubblewrap_dep_if_needed(related_formula_names); end

#build(spec) ⇒ T.untyped

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Параметры:

  • spec (T.untyped)

Возвращает:

  • (T.untyped)


94
95
96
97
# File 'dependency_collector.rb', line 94

def build(spec)
  spec, tags = spec.is_a?(Hash) ? spec.first : spec
  parse_spec(spec, Array(tags))
end

#bzip2_dep_if_needed(tags) ⇒ Dependency?

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Параметры:

  • tags (Array<String, Symbol>)

Возвращает:

  • (Dependency, nil)


150
151
152
# File 'dependency_collector.rb', line 150

def bzip2_dep_if_needed(tags)
  Dependency.new("bzip2", [*tags, :implicit]) unless which("bzip2")
end

#cache_key(spec) ⇒ T.untyped

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Параметры:

  • spec (T.untyped)

Возвращает:

  • (T.untyped)


82
83
84
85
86
87
88
89
90
91
# File 'dependency_collector.rb', line 82

def cache_key(spec)
  if spec.is_a?(Resource)
    if spec.download_strategy <= CurlDownloadStrategy
      return "#{spec.download_strategy}#{File.extname(T.must(spec.url)).split("?").first}"
    end

    return spec.download_strategy
  end
  spec
end

#curl_dep_if_needed(tags) ⇒ Dependency

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Параметры:

  • tags (Array<String, Symbol>)

Возвращает:

  • (Dependency)


117
118
119
# File 'dependency_collector.rb', line 117

def curl_dep_if_needed(tags)
  Dependency.new("curl", [*tags, :implicit])
end

#cvs_dep_if_needed(tags) ⇒ Dependency?

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Параметры:

  • tags (Array<String, Symbol>)

Возвращает:

  • (Dependency, nil)


130
131
132
# File 'dependency_collector.rb', line 130

def cvs_dep_if_needed(tags)
  Dependency.new("cvs", [*tags, :implicit]) unless which("cvs")
end

#fetch(spec) ⇒ T.untyped

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Параметры:

  • spec (T.untyped)

Возвращает:

  • (T.untyped)


77
78
79
# File 'dependency_collector.rb', line 77

def fetch(spec)
  self.class.cache.fetch(cache_key(spec)) { |key| self.class.cache[key] = build(spec) }
end

#freeze ⇒ void

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Этот метод возвращает неопределённое значение.



52
53
54
55
56
# File 'dependency_collector.rb', line 52

def freeze
  @deps.freeze
  @requirements.freeze
  super
end

#gcc_dep_if_needed(related_formula_names) ⇒ Dependency?

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Параметры:

  • related_formula_names (Set<String>)

Возвращает:

  • (Dependency, nil)


100
# File 'dependency_collector.rb', line 100

def gcc_dep_if_needed(related_formula_names); end

#git_dep_if_needed(tags) ⇒ Dependency?

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Параметры:

  • tags (Array<String, Symbol>)

Возвращает:

  • (Dependency, nil)


109
110
111
112
113
114
# File 'dependency_collector.rb', line 109

def git_dep_if_needed(tags)
  require "utils/git"
  return if Utils::Git.available?

  Dependency.new("git", [*tags, :implicit])
end

#glibc_dep_if_needed(related_formula_names) ⇒ Dependency?

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Параметры:

  • related_formula_names (Set<String>)

Возвращает:

  • (Dependency, nil)


103
# File 'dependency_collector.rb', line 103

def glibc_dep_if_needed(related_formula_names); end

#initialize_dup(other) ⇒ void

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Третьим сторонам по возможности следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.

Этот метод возвращает неопределённое значение.

Параметры:

  • other (DependencyCollector)


45
46
47
48
49
# File 'dependency_collector.rb', line 45

def initialize_dup(other)
  super
  @deps = @deps.dup
  @requirements = @requirements.dup
end

#subversion_dep_if_needed(tags) ⇒ Dependency?

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Третьим сторонам по возможности следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.

Параметры:

  • tags (Array<String, Symbol>)

Возвращает:

  • (Dependency, nil)


122
123
124
125
126
127
# File 'dependency_collector.rb', line 122

def subversion_dep_if_needed(tags)
  require "utils/svn"
  return if Utils::Svn.available?

  Dependency.new("subversion", [*tags, :implicit])
end

#unzip_dep_if_needed(tags) ⇒ Dependency?

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Третьим сторонам по возможности следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.

Параметры:

  • tags (Array<String, Symbol>)

Возвращает:

  • (Dependency, nil)


145
146
147
# File 'dependency_collector.rb', line 145

def unzip_dep_if_needed(tags)
  Dependency.new("unzip", [*tags, :implicit]) unless which("unzip")
end

#xz_dep_if_needed(tags) ⇒ Dependency?

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Третьим сторонам по возможности следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.

Параметры:

  • tags (Array<String, Symbol>)

Возвращает:

  • (Dependency, nil)


135
136
137
# File 'dependency_collector.rb', line 135

def xz_dep_if_needed(tags)
  Dependency.new("xz", [*tags, :implicit]) unless which("xz")
end

#zstd_dep_if_needed(tags) ⇒ Dependency?

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Третьим сторонам по возможности следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.

Параметры:

  • tags (Array<String, Symbol>)

Возвращает:

  • (Dependency, nil)


140
141
142
# File 'dependency_collector.rb', line 140

def zstd_dep_if_needed(tags)
  Dependency.new("zstd", [*tags, :implicit]) unless which("zstd")
end

© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/rubydoc/DependencyCollector.html

Spec-Zone.ru

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