Класс: SoftwareSpec
- Наследует:
- Object
- Object
- SoftwareSpec
- Расширен модулем:
- Forwardable
- Подключает:
- Downloadable, OnSystem::MacOSAndLinux
- Определён в:
- software_spec.rb,
sorbet/rbi/dsl/software_spec.rbi
Прямые известные подклассы
Краткое описание атрибутов экземпляра свернуть
- #bottle_specification ⇒ BottleSpecification только для чтения закрытый
- #build ⇒ BuildOptions только для чтения закрытый
- #compiler_failures ⇒ Array<CompilerFailure> только для чтения закрытый
- #dependency_collector ⇒ DependencyCollector только для чтения закрытый
- #depends_on_macos_set_in_block ⇒ Boolean только для чтения закрытый
- #deprecated_flags ⇒ Array<DeprecatedOption> только для чтения закрытый
- #deprecated_options ⇒ Array<DeprecatedOption> только для чтения закрытый
- #full_name ⇒ String? только для чтения закрытый
- #name ⇒ String? только для чтения закрытый
- #options ⇒ Options только для чтения закрытый
- #owner ⇒ Formula, ... закрытый
- #patches ⇒ Array<EmbeddedPatch, ExternalPatch> только для чтения закрытый
- #resources ⇒ Hash{String => Resource} только для чтения закрытый
Атрибуты, включённые из Downloadable
Краткое описание методов экземпляра свернуть
- #add_dep_option(dep) ⇒ void закрытый
- #bottle(&block) ⇒ void закрытый
- #bottle_defined? ⇒ Boolean закрытый
- #bottle_tag?(tag = nil) ⇒ Boolean закрытый
- #bottled?(tag = nil) ⇒ Boolean закрытый
- #cached_download(*args, &block) ⇒ T.untyped закрытый
- #checksum(*args, &block) ⇒ T.untyped закрытый
- #clear_cache(*args, &block) ⇒ T.untyped закрытый
- #declared_deps ⇒ Dependencies закрытый
- #depends_on(spec = nil, set_in_block: false, **spec_kwargs) ⇒ void закрытый
- #depends_on_linux_set_top_level? ⇒ Boolean закрытый
- #depends_on_macos_set_top_level? ⇒ Boolean закрытый
- #deprecated_option(hash) ⇒ void закрытый
- #deps ⇒ Dependencies закрытый
- #download_queue_name(*args, &block) ⇒ T.untyped закрытый
- #download_queue_type(*args, &block) ⇒ T.untyped закрытый
- #downloader(*args, &block) ⇒ T.untyped закрытый
- #fails_with(compiler, &block) ⇒ void закрытый
- #fetch(*args, &block) ⇒ T.untyped закрытый
- #freeze ⇒ T.self_type закрытый
- #initialize(flags: []) ⇒ void конструктор закрытый
- #initialize_dup(other) ⇒ void закрытый
- #mirror(*args, &block) ⇒ T.untyped закрытый
- #mirrors(*args, &block) ⇒ T.untyped закрытый
- #option(name, description = "") ⇒ void закрытый
- #option_defined?(name) ⇒ Boolean закрытый
- #patch(strip = :p1, src = T.unsafe(nil), &block) ⇒ void закрытый
- #record_os_requirement(dep, set_in_block:) ⇒ void закрытый
- #recursive_dependencies ⇒ Array<Dependency> закрытый
- #recursive_requirements ⇒ Requirements закрытый
- #requirements ⇒ Requirements приватный
- #resource(name = T.unsafe(nil), klass = Resource, &block) ⇒ Resource? приватный
- #resource_defined?(name) ⇒ Boolean приватный
- #sha256(*args, &block) ⇒ T.untyped приватный
- #source_modified_time(*args, &block) ⇒ T.untyped приватный
- #specs(*args, &block) ⇒ T.untyped приватный
- #stage(*args, &block) ⇒ T.untyped приватный
- #url(val = nil, specs = {}) ⇒ String? приватный
- #uses_from_macos(dep, bounds = {}) ⇒ void приватный
- #using(*args, &block) ⇒ T.untyped приватный
- #verify_download_integrity(*args, &block) ⇒ T.untyped приватный
- #version(*args, &block) ⇒ T.untyped приватный
Методы, включённые из OnSystem::MacOSAndLinux
included, #on_arch_conditional, #on_macos, #on_system_conditional
Методы, включённые из Downloadable
#download_queue_message, #download_strategy, #downloaded!, #downloaded?, #downloaded_and_valid?, #downloading!, #extracting!, #fetched_size, #total_size, #verified!, #verifying!
Методы, включённые из Utils::Output::Mixin
#issue_reporting_message, #odebug, #odeprecated, #odie, #odisabled, #ofail, #oh1, #oh1_title, #ohai, #ohai_title, #onoe, #opoo, #opoo_outside_github_actions, #opoo_without_github_actions_annotation, #pretty_deprecated, #pretty_disabled, #pretty_duration, #pretty_install_status, #pretty_installed, #pretty_uninstalled, #pretty_upgradable, #pretty_warning
Методы, включённые из Context
current, current=, #debug?, #quiet?, #verbose?, #with_context
Подробное описание конструкторов
#initialize(flags: []) ⇒ void
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 | # File 'software_spec.rb', line 69 def initialize(flags: []) super() @name = T.let(nil, T.nilable(String)) @full_name = T.let(nil, T.nilable(String)) @owner = T.let(nil, T.nilable(T.any(Formula, Cask::Cask))) # Ensure this is synced with `initialize_dup` and `freeze` (excluding simple objects like integers and booleans) @resource = T.let(Resource::Formula.new, Resource::Formula) @resources = T.let({}, T::Hash[String, Resource]) @dependency_collector = T.let(DependencyCollector.new, DependencyCollector) @bottle_specification = T.let(BottleSpecification.new, BottleSpecification) @patches = T.let([], T::Array[T.any(EmbeddedPatch, ExternalPatch)]) @options = T.let(Options.new, Options) @flags = flags @deprecated_flags = T.let([], T::Array[DeprecatedOption]) @deprecated_options = T.let([], T::Array[DeprecatedOption]) @build = T.let(BuildOptions.new(Options.create(@flags), ), BuildOptions) @compiler_failures = T.let([], T::Array[CompilerFailure]) @depends_on_macos_bare_set_top_level = T.let(false, T::Boolean) @depends_on_macos_version_set_top_level = T.let(false, T::Boolean) @depends_on_maximum_macos_set_top_level = T.let(false, T::Boolean) @depends_on_macos_set_in_block = T.let(false, T::Boolean) @depends_on_linux_set_top_level = T.let(false, T::Boolean) end |
Подробное описание атрибутов экземпляра
#bottle_specification ⇒ BottleSpecification (только для чтения)
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
54 55 56 | # File 'software_spec.rb', line 54 def bottle_specification @bottle_specification end |
#build ⇒ BuildOptions (только для чтения)
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
33 34 35 | # File 'software_spec.rb', line 33 def build @build end |
#compiler_failures ⇒ Array<CompilerFailure> (только для чтения)
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
57 58 59 | # File 'software_spec.rb', line 57 def compiler_failures @compiler_failures end |
#dependency_collector ⇒ DependencyCollector (только для чтения)
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
51 52 53 | # File 'software_spec.rb', line 51 def dependency_collector @dependency_collector end |
#depends_on_macos_set_in_block ⇒ Boolean (только для чтения)
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
60 61 62 | # File 'software_spec.rb', line 60 def depends_on_macos_set_in_block @depends_on_macos_set_in_block end |
#deprecated_flags ⇒ Array<DeprecatedOption> (только для чтения)
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
45 46 47 | # File 'software_spec.rb', line 45 def deprecated_flags @deprecated_flags end |
#deprecated_options ⇒ Array<DeprecatedOption> (только для чтения)
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
48 49 50 | # File 'software_spec.rb', line 48 def @deprecated_options end |
#full_name ⇒ String? (только для чтения)
Этот метод является частью приватного API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
27 28 29 | # File 'software_spec.rb', line 27 def full_name @full_name end |
#name ⇒ String? (только для чтения)
Этот метод является частью приватного API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
24 25 26 | # File 'software_spec.rb', line 24 def name @name end |
#options ⇒ Options (только для чтения)
Этот метод является частью приватного API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
42 43 44 | # File 'software_spec.rb', line 42 def @options end |
#owner ⇒ Formula, ...
Этот метод является частью приватного API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
30 31 32 | # File 'software_spec.rb', line 30 def owner @owner end |
#patches ⇒ Array<EmbeddedPatch, ExternalPatch> (только для чтения)
Этот метод является частью приватного API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
39 40 41 | # File 'software_spec.rb', line 39 def patches @patches end |
#resources ⇒ Hash{String => Resource} (только для чтения)
Этот метод является частью приватного API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
36 37 38 | # File 'software_spec.rb', line 36 def resources @resources end |
Подробное описание методов экземпляра
#add_dep_option(dep) ⇒ void
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
Этот метод возвращает неопределённое значение.
409 410 411 412 413 414 415 416 417 | # File 'software_spec.rb', line 409 def add_dep_option(dep) dep.option_names.each do |name| if dep.optional? && !option_defined?("with-#{name}") << Option.new("with-#{name}", "Build with #{name} support") elsif dep.recommended? && !option_defined?("without-#{name}") << Option.new("without-#{name}", "Build without #{name} support") end end end |
#bottle(&block) ⇒ void
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
Этот метод возвращает неопределённое значение.
177 178 179 | # File 'software_spec.rb', line 177 def bottle(&block) bottle_specification.instance_eval(&block) end |
#bottle_defined? ⇒ Boolean
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
154 155 156 | # File 'software_spec.rb', line 154 def bottle_defined? !bottle_specification.collector..empty? end |
#bottle_tag?(tag = nil) ⇒ Boolean
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
159 160 161 | # File 'software_spec.rb', line 159 def bottle_tag?(tag = nil) bottle_specification.tag?(Utils::Bottles.tag(tag)) end |
#bottled?(tag = nil) ⇒ Boolean
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
164 165 166 167 168 169 170 171 172 173 174 | # File 'software_spec.rb', line 164 def bottled?(tag = nil) return false unless bottle_tag?(tag) return true if tag.present? return true if bottle_specification.compatible_locations? owner = self.owner return false unless owner.is_a?(Formula) owner.force_bottle end |
#cached_download(*args, &block) ⇒ T.untyped
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
10 | # File 'sorbet/rbi/dsl/software_spec.rbi', line 10 def cached_download(*args, &block); end |
#checksum(*args, &block) ⇒ T.untyped
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
13 | # File 'sorbet/rbi/dsl/software_spec.rbi', line 13 def checksum(*args, &block); end |
#clear_cache(*args, &block) ⇒ T.untyped
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
16 | # File 'sorbet/rbi/dsl/software_spec.rbi', line 16 def clear_cache(*args, &block); end |
#declared_deps ⇒ Dependencies
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
359 360 361 | # File 'software_spec.rb', line 359 def declared_deps dependency_collector.deps end |
#depends_on(spec = nil, set_in_block: false, **spec_kwargs) ⇒ void
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
Метод возвращает неопределённое значение.
254 255 256 257 258 259 | # File 'software_spec.rb', line 254 def depends_on(spec = nil, set_in_block: false, **spec_kwargs) spec = spec_kwargs if spec.nil? && spec_kwargs.present? dep = dependency_collector.add(spec) record_os_requirement(dep, set_in_block:) add_dep_option(dep) if dep end |
#depends_on_linux_set_top_level? ⇒ Boolean
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
269 270 271 | # File 'software_spec.rb', line 269 def depends_on_linux_set_top_level? @depends_on_linux_set_top_level end |
#depends_on_macos_set_top_level? ⇒ Boolean
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
262 263 264 265 266 | # File 'software_spec.rb', line 262 def depends_on_macos_set_top_level? @depends_on_macos_bare_set_top_level || @depends_on_macos_version_set_top_level || @depends_on_maximum_macos_set_top_level end |
#deprecated_option(hash) ⇒ void
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
Метод возвращает неопределённое значение.
223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 | # File 'software_spec.rb', line 223 def deprecated_option(hash) raise ArgumentError, "deprecated_option hash must not be empty" if hash.empty? hash.each do |, | Array().each do |old_option| Array().each do |new_option| deprecated_option = DeprecatedOption.new(old_option, new_option) << deprecated_option old_flag = deprecated_option.old_flag new_flag = deprecated_option.current_flag next unless @flags.include? old_flag @flags -= [old_flag] @flags |= [new_flag] @deprecated_flags << deprecated_option end end end @build = BuildOptions.new(Options.create(@flags), ) end |
#deps ⇒ Dependencies
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности третьим лицам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
354 355 356 | # File 'software_spec.rb', line 354 def deps dependency_collector.deps.dup_without_system_deps end |
#download_queue_name(*args, &block) ⇒ T.untyped
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности третьим лицам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
19 | # File 'sorbet/rbi/dsl/software_spec.rbi', line 19 def download_queue_name(*args, &block); end |
#download_queue_type(*args, &block) ⇒ T.untyped
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности третьим лицам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
22 | # File 'sorbet/rbi/dsl/software_spec.rbi', line 22 def download_queue_type(*args, &block); end |
#downloader(*args, &block) ⇒ T.untyped
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности третьим лицам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
25 | # File 'sorbet/rbi/dsl/software_spec.rbi', line 25 def downloader(*args, &block); end |
#fails_with(compiler, &block) ⇒ void
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности третьим лицам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
Этот метод возвращает неопределённое значение.
404 405 406 | # File 'software_spec.rb', line 404 def fails_with(compiler, &block) compiler_failures << CompilerFailure.create(compiler, &block) end |
#fetch(*args, &block) ⇒ T.untyped
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности третьим лицам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
28 | # File 'sorbet/rbi/dsl/software_spec.rbi', line 28 def fetch(*args, &block); end |
#freeze ⇒ T.self_type
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
112 113 114 115 116 117 118 119 120 121 122 123 124 125 | # File 'software_spec.rb', line 112 def freeze @resource.freeze @resources.freeze @dependency_collector.freeze @bottle_specification.freeze @patches.freeze @options.freeze @flags.freeze @deprecated_flags.freeze @deprecated_options.freeze @build.freeze @compiler_failures.freeze super end |
#initialize_dup(other) ⇒ void
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
Этот метод возвращает неопределённое значение.
96 97 98 99 100 101 102 103 104 105 106 107 108 109 | # File 'software_spec.rb', line 96 def initialize_dup(other) super @resource = @resource.dup @resources = @resources.dup @dependency_collector = @dependency_collector.dup @bottle_specification = @bottle_specification.dup @patches = @patches.dup @options = @options.dup @flags = @flags.dup @deprecated_flags = @deprecated_flags.dup @deprecated_options = @deprecated_options.dup @build = @build.dup @compiler_failures = @compiler_failures.dup end |
#mirror(*args, &block) ⇒ T.untyped
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
31 | # File 'sorbet/rbi/dsl/software_spec.rbi', line 31 def mirror(*args, &block); end |
#mirrors(*args, &block) ⇒ T.untyped
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
34 | # File 'sorbet/rbi/dsl/software_spec.rbi', line 34 def mirrors(*args, &block); end |
#option(name, description = "") ⇒ void
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
Этот метод возвращает неопределённое значение.
214 215 216 217 218 219 220 | # File 'software_spec.rb', line 214 def option(name, description = "") raise ArgumentError, "option name is required" if name.empty? raise ArgumentError, "option name must be longer than one character: #{name}" if name.length <= 1 raise ArgumentError, "option name must not start with dashes: #{name}" if name.start_with?("-") << Option.new(name, description) end |
#option_defined?(name) ⇒ Boolean
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
209 210 211 | # File 'software_spec.rb', line 209 def option_defined?(name) .include?(name) end |
#patch(strip = :p1, src = T.unsafe(nil), &block) ⇒ void
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
Этот метод возвращает неопределённое значение.
395 396 397 398 399 400 401 | # File 'software_spec.rb', line 395 def patch(strip = :p1, src = T.unsafe(nil), &block) p = Patch.create(strip, src, &block) return if p.is_a?(ExternalPatch) && p.url.blank? dependency_collector.add(p.resource) if p.is_a? ExternalPatch patches << p end |
#record_os_requirement(dep, set_in_block:) ⇒ void
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
Этот метод возвращает неопределённое значение.
274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 | # File 'software_spec.rb', line 274 def record_os_requirement(dep, set_in_block:) case dep when MacOSRequirement if set_in_block @depends_on_macos_set_in_block = true return end if @depends_on_linux_set_top_level raise ArgumentError, "`depends_on :linux` cannot be combined with `depends_on macos:`" end if !dep.version_specified? if @depends_on_macos_bare_set_top_level raise ArgumentError, "`depends_on :macos` cannot be combined with another macOS `depends_on`" end if @depends_on_macos_version_set_top_level || @depends_on_maximum_macos_set_top_level odeprecated "`depends_on :macos` with `depends_on macos:`", "`depends_on :macos` with `depends_on macos:` inside an `on_macos` block" end @depends_on_macos_bare_set_top_level = true elsif dep.comparator == "<=" if @depends_on_macos_bare_set_top_level odeprecated "`depends_on :macos` with `depends_on maximum_macos:`", "`depends_on :macos` with `depends_on maximum_macos:` inside an `on_macos` block" end if @depends_on_maximum_macos_set_top_level raise ArgumentError, "`depends_on maximum_macos:` cannot be combined with another macOS `depends_on`" end @depends_on_maximum_macos_set_top_level = true else if @depends_on_macos_bare_set_top_level odeprecated "`depends_on :macos` with `depends_on macos:`", "`depends_on :macos` with `depends_on macos:` inside an `on_macos` block" end if @depends_on_macos_version_set_top_level raise ArgumentError, "`depends_on macos:` cannot be combined with another macOS `depends_on`" end @depends_on_macos_version_set_top_level = true end when LinuxRequirement return if set_in_block if depends_on_macos_set_top_level? raise ArgumentError, "`depends_on :linux` cannot be combined with `depends_on macos:`" end @depends_on_linux_set_top_level = true end end |
#recursive_dependencies ⇒ Array<Dependency>
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 | # File 'software_spec.rb', line 364 def recursive_dependencies deps_f = [] recursive_dependencies = deps.filter_map do |dep| deps_f << dep.to_formula dep rescue TapFormulaUnavailableError # Don't complain about missing cross-tap dependencies next end.uniq deps_f.compact.each do |f| f.recursive_dependencies.each do |dep| recursive_dependencies << dep unless recursive_dependencies.include?(dep) end end recursive_dependencies end |
#recursive_requirements ⇒ Requirements
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
387 388 389 | # File 'software_spec.rb', line 387 def recursive_requirements Requirement.(self) end |
#requirements ⇒ Requirements
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
382 383 384 | # File 'software_spec.rb', line 382 def requirements dependency_collector.requirements end |
#resource(name = T.unsafe(nil), klass = Resource, &block) ⇒ Resource?
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 | # File 'software_spec.rb', line 190 def resource(name = T.unsafe(nil), klass = Resource, &block) if block raise ArgumentError, "Resource must have a name." if name.nil? raise DuplicateResourceError, name if resource_defined?(name) res = klass.new(name, &block) return unless res.url resources[name] = res dependency_collector.add(res) res else return @resource if name.nil? resources.fetch(name) { raise ResourceMissingError.new(owner, name) } end end |
#resource_defined?(name) ⇒ Boolean
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
182 183 184 | # File 'software_spec.rb', line 182 def resource_defined?(name) resources.key?(name) end |
#sha256(*args, &block) ⇒ T.untyped
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
37 | # File 'sorbet/rbi/dsl/software_spec.rbi', line 37 def sha256(*args, &block); end |
#source_modified_time(*args, &block) ⇒ T.untyped
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
40 | # File 'sorbet/rbi/dsl/software_spec.rbi', line 40 def source_modified_time(*args, &block); end |
#specs(*args, &block) ⇒ T.untyped
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
43 | # File 'sorbet/rbi/dsl/software_spec.rbi', line 43 def specs(*args, &block); end |
#stage(*args, &block) ⇒ T.untyped
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
46 | # File 'sorbet/rbi/dsl/software_spec.rbi', line 46 def stage(*args, &block); end |
#url(val = nil, specs = {}) ⇒ String?
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
145 146 147 148 149 150 151 | # File 'software_spec.rb', line 145 def url(val = nil, specs = {}) if val @resource.url(val, **specs) dependency_collector.add(@resource) end @resource.url end |
#uses_from_macos(dep, bounds = {}) ⇒ void
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
Этот метод возвращает неопределённое значение.
339 340 341 342 343 344 345 346 347 348 349 350 351 | # File 'software_spec.rb', line 339 def uses_from_macos(dep, bounds = {}) if dep.is_a?(Hash) bounds = dep.dup dep, = bounds.shift dep = T.cast(dep, String) = [*] bounds = T.cast(bounds, T::Hash[Symbol, Symbol]) else = [] end depends_on UsesFromMacOSDependency.new(dep, , bounds:) end |
#using(*args, &block) ⇒ T.untyped
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
49 | # File 'sorbet/rbi/dsl/software_spec.rbi', line 49 def using(*args, &block); end |
#verify_download_integrity(*args, &block) ⇒ T.untyped
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
52 | # File 'sorbet/rbi/dsl/software_spec.rbi', line 52 def verify_download_integrity(*args, &block); end |
#version(*args, &block) ⇒ T.untyped
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
55 | # File 'sorbet/rbi/dsl/software_spec.rbi', line 55 def version(*args, &block); end |
© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/rubydoc/SoftwareSpec.html