Класс: 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
Подробное описание конструкторов
#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. Сторонним разработчикам следует по возможности избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
33 34 35 | # File 'dependency_collector.rb', line 33 def requirements @requirements end |
Подробное описание методов класса
.tar_needs_bzip2_dependency? ⇒ Boolean
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
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. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
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. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
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. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
106 | # File 'dependency_collector.rb', line 106 def bubblewrap_dep_if_needed(); end |
#build(spec) ⇒ T.untyped
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
94 95 96 97 | # File 'dependency_collector.rb', line 94 def build(spec) spec, = spec.is_a?(Hash) ? spec.first : spec parse_spec(spec, Array()) end |
#bzip2_dep_if_needed(tags) ⇒ Dependency?
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
150 151 152 | # File 'dependency_collector.rb', line 150 def bzip2_dep_if_needed() Dependency.new("bzip2", [*, :implicit]) unless which("bzip2") end |
#cache_key(spec) ⇒ T.untyped
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
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. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
117 118 119 | # File 'dependency_collector.rb', line 117 def curl_dep_if_needed() Dependency.new("curl", [*, :implicit]) end |
#cvs_dep_if_needed(tags) ⇒ Dependency?
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
130 131 132 | # File 'dependency_collector.rb', line 130 def cvs_dep_if_needed() Dependency.new("cvs", [*, :implicit]) unless which("cvs") end |
#fetch(spec) ⇒ T.untyped
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
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. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
100 | # File 'dependency_collector.rb', line 100 def gcc_dep_if_needed(); end |
#git_dep_if_needed(tags) ⇒ Dependency?
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
109 110 111 112 113 114 | # File 'dependency_collector.rb', line 109 def git_dep_if_needed() require "utils/git" return if Utils::Git.available? Dependency.new("git", [*, :implicit]) end |
#glibc_dep_if_needed(related_formula_names) ⇒ Dependency?
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
103 | # File 'dependency_collector.rb', line 103 def glibc_dep_if_needed(); end |
#initialize_dup(other) ⇒ void
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Третьим сторонам по возможности следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.
Этот метод возвращает неопределённое значение.
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. Третьим сторонам по возможности следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.
122 123 124 125 126 127 | # File 'dependency_collector.rb', line 122 def subversion_dep_if_needed() require "utils/svn" return if Utils::Svn.available? Dependency.new("subversion", [*, :implicit]) end |
#unzip_dep_if_needed(tags) ⇒ Dependency?
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Третьим сторонам по возможности следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.
145 146 147 | # File 'dependency_collector.rb', line 145 def unzip_dep_if_needed() Dependency.new("unzip", [*, :implicit]) unless which("unzip") end |
#xz_dep_if_needed(tags) ⇒ Dependency?
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Третьим сторонам по возможности следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.
135 136 137 | # File 'dependency_collector.rb', line 135 def xz_dep_if_needed() Dependency.new("xz", [*, :implicit]) unless which("xz") end |
#zstd_dep_if_needed(tags) ⇒ Dependency?
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Третьим сторонам по возможности следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.
140 141 142 | # File 'dependency_collector.rb', line 140 def zstd_dep_if_needed() Dependency.new("zstd", [*, :implicit]) unless which("zstd") end |
© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/rubydoc/DependencyCollector.html