Spec-Zone.ru › Homebrew

Класс: SoftwareSpec

Наследует:
Object
  • Object
  • SoftwareSpec
показать все
Расширен модулем:
Forwardable
Подключает:
Downloadable, OnSystem::MacOSAndLinux
Определён в:
software_spec.rb,
sorbet/rbi/dsl/software_spec.rbi

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

HeadSoftwareSpec

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

  • #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

#phase

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

  • #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. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Параметры:

  • flags (Array<String>) (по умолчанию: [])


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), options), 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. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (BottleSpecification)


54
55
56
# File 'software_spec.rb', line 54

def bottle_specification
  @bottle_specification
end

#build ⇒ BuildOptions (только для чтения)

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

Возвращает:

  • (BuildOptions)


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

def build
  @build
end

#compiler_failures ⇒ Array<CompilerFailure> (только для чтения)

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

Возвращает:

  • (Array<CompilerFailure>)


57
58
59
# File 'software_spec.rb', line 57

def compiler_failures
  @compiler_failures
end

#dependency_collector ⇒ DependencyCollector (только для чтения)

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

Возвращает:

  • (DependencyCollector)


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. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (Boolean)


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. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (Array<DeprecatedOption>)


45
46
47
# File 'software_spec.rb', line 45

def deprecated_flags
  @deprecated_flags
end

#deprecated_options ⇒ Array<DeprecatedOption> (только для чтения)

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

Возвращает:

  • (Array<DeprecatedOption>)


48
49
50
# File 'software_spec.rb', line 48

def deprecated_options
  @deprecated_options
end

#full_name ⇒ String? (только для чтения)

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

Возвращает:

  • (String, nil)


27
28
29
# File 'software_spec.rb', line 27

def full_name
  @full_name
end

#name ⇒ String? (только для чтения)

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

Возвращает:

  • (String, nil)


24
25
26
# File 'software_spec.rb', line 24

def name
  @name
end

#options ⇒ Options (только для чтения)

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

Возвращает:

  • (Options)


42
43
44
# File 'software_spec.rb', line 42

def options
  @options
end

#owner ⇒ Formula, ...

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

Возвращает:

  • (Formula, Cask::Cask, nil)


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

def owner
  @owner
end

#patches ⇒ Array<EmbeddedPatch, ExternalPatch> (только для чтения)

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

Возвращает:

  • (Array<EmbeddedPatch, ExternalPatch>)


39
40
41
# File 'software_spec.rb', line 39

def patches
  @patches
end

#resources ⇒ Hash{String => Resource} (только для чтения)

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

Возвращает:

  • (Hash{String => Resource})


36
37
38
# File 'software_spec.rb', line 36

def resources
  @resources
end

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

#add_dep_option(dep) ⇒ void

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

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

Параметры:

  • dep (Dependable)


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}")
      options << Option.new("with-#{name}", "Build with #{name} support")
    elsif dep.recommended? && !option_defined?("without-#{name}")
      options << Option.new("without-#{name}", "Build without #{name} support")
    end
  end
end

#bottle(&block) ⇒ void

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

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

Параметры:

  • block (T.proc.bind(BottleSpecification).void)


177
178
179
# File 'software_spec.rb', line 177

def bottle(&block)
  bottle_specification.instance_eval(&block)
end

#bottle_defined? ⇒ Boolean

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

Возвращаемое значение:

  • (Boolean)


154
155
156
# File 'software_spec.rb', line 154

def bottle_defined?
  !bottle_specification.collector.tags.empty?
end

#bottle_tag?(tag = nil) ⇒ Boolean

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

Параметры:

  • tag (Utils::Bottles::Tag, Symbol, nil) (по умолчанию: nil)

Возвращаемое значение:

  • (Boolean)


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. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Параметры:

  • tag (Utils::Bottles::Tag, Symbol, nil) (по умолчанию: nil)

Возвращаемое значение:

  • (Boolean)


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. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Параметры:

  • args (T.untyped)
  • block (T.untyped)

Возвращаемое значение:

  • (T.untyped)


10
# File 'sorbet/rbi/dsl/software_spec.rbi', line 10

def cached_download(*args, &block); end

#checksum(*args, &block) ⇒ T.untyped

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

Параметры:

  • args (T.untyped)
  • block (T.untyped)

Возвращаемое значение:

  • (T.untyped)


13
# File 'sorbet/rbi/dsl/software_spec.rbi', line 13

def checksum(*args, &block); end

#clear_cache(*args, &block) ⇒ T.untyped

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

Параметры:

  • args (T.untyped)
  • block (T.untyped)

Возвращает:

  • (T.untyped)


16
# File 'sorbet/rbi/dsl/software_spec.rbi', line 16

def clear_cache(*args, &block); end

#declared_deps ⇒ Dependencies

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

Возвращает:

  • (Dependencies)


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. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

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

Параметры:

  • spec (String, Symbol, Hash{String, Symbol, T::Class[Requirement] => T.untyped}, T::Class[Requirement], Dependable, nil) (по умолчанию: nil)
  • set_in_block (Boolean) (по умолчанию: false)
  • spec_kwargs (T.untyped)


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. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (Boolean)


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. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (Boolean)


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. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

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

Параметры:

  • hash (Hash{String, Array<String> => String, Array<String>})

Вызывает исключение:

  • (ArgumentError)


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 |old_options, new_options|
    Array(old_options).each do |old_option|
      Array(new_options).each do |new_option|
        deprecated_option = DeprecatedOption.new(old_option, new_option)
        deprecated_options << 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), options)
end

#deps ⇒ Dependencies

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

Возвращает:

  • (Dependencies)


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. По возможности третьим лицам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Параметры:

  • args (T.untyped)
  • block (T.untyped)

Возвращает:

  • (T.untyped)


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. По возможности третьим лицам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Параметры:

  • args (T.untyped)
  • block (T.untyped)

Возвращает:

  • (T.untyped)


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. По возможности третьим лицам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Параметры:

  • args (T.untyped)
  • block (T.untyped)

Возвращает:

  • (T.untyped)


25
# File 'sorbet/rbi/dsl/software_spec.rbi', line 25

def downloader(*args, &block); end

#fails_with(compiler, &block) ⇒ void

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

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

Параметры:

  • compiler (Hash{Symbol => String}, Symbol)
  • block (T.proc.bind(CompilerFailure).void, nil)


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. По возможности третьим лицам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Параметры:

  • args (T.untyped)
  • block (T.untyped)

Возвращает:

  • (T.untyped)


28
# File 'sorbet/rbi/dsl/software_spec.rbi', line 28

def fetch(*args, &block); end

#freeze ⇒ T.self_type

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

Возвращает:

  • (T.self_type)


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. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

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

Параметры:

  • other (SoftwareSpec, Downloadable)


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. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Параметры:

  • args (T.untyped)
  • block (T.untyped)

Возвращает:

  • (T.untyped)


31
# File 'sorbet/rbi/dsl/software_spec.rbi', line 31

def mirror(*args, &block); end

#mirrors(*args, &block) ⇒ T.untyped

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

Параметры:

  • args (T.untyped)
  • block (T.untyped)

Возвращает:

  • (T.untyped)


34
# File 'sorbet/rbi/dsl/software_spec.rbi', line 34

def mirrors(*args, &block); end

#option(name, description = "") ⇒ void

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

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

Параметры:

  • name (String)
  • description (String) (по умолчанию: "")

Вызывает исключение:

  • (ArgumentError)


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?("-")

  options << Option.new(name, description)
end

#option_defined?(name) ⇒ Boolean

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

Параметры:

  • name (Option, String)

Возвращает:

  • (Boolean)


209
210
211
# File 'software_spec.rb', line 209

def option_defined?(name)
  options.include?(name)
end

#patch(strip = :p1, src = T.unsafe(nil), &block) ⇒ void

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

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

Параметры:

  • strip (Symbol, String) (по умолчанию: :p1)
  • src (String, Symbol, nil) (по умолчанию: T.unsafe(nil))
  • block (T.proc.bind(Patch).void, nil)


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. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

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

Параметры:

  • dep (T.untyped)
  • set_in_block (Boolean)


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. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (Array<Dependency>)


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. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (Requirements)


387
388
389
# File 'software_spec.rb', line 387

def recursive_requirements
  Requirement.expand(self)
end

#requirements ⇒ Requirements

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

Возвращает:

  • (Requirements)


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. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Параметры:

  • name (String) (по умолчанию: T.unsafe(nil))
  • klass (T.class_of(Resource)) (по умолчанию: Resource)
  • block (T.proc.bind(Resource).void, nil)

Возвращает:

  • (Resource, nil)


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. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Параметры:

  • name (String)

Возвращает:

  • (Boolean)


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. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Параметры:

  • args (T.untyped)
  • block (T.untyped)

Возвращает:

  • (T.untyped)


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. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Параметры:

  • args (T.untyped)
  • block (T.untyped)

Возвращает:

  • (T.untyped)


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. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Параметры:

  • args (T.untyped)
  • block (T.untyped)

Возвращает:

  • (T.untyped)


43
# File 'sorbet/rbi/dsl/software_spec.rbi', line 43

def specs(*args, &block); end

#stage(*args, &block) ⇒ T.untyped

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

Параметры:

  • args (T.untyped)
  • block (T.untyped)

Возвращает:

  • (T.untyped)


46
# File 'sorbet/rbi/dsl/software_spec.rbi', line 46

def stage(*args, &block); end

#url(val = nil, specs = {}) ⇒ String?

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

Параметры:

  • val (String, nil) (по умолчанию: nil)
  • specs (Hash{Symbol => T.anything}) (по умолчанию: {})

Возвращает:

  • (String, nil)


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. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

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

Параметры:

  • dep (String, Hash{String, Symbol => Symbol, Array<Symbol>})
  • bounds (Hash{Symbol => Symbol}) (по умолчанию: {})


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, tags = bounds.shift
    dep = T.cast(dep, String)
    tags = [*tags]
    bounds = T.cast(bounds, T::Hash[Symbol, Symbol])
  else
    tags = []
  end

  depends_on UsesFromMacOSDependency.new(dep, tags, bounds:)
end

#using(*args, &block) ⇒ T.untyped

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

Параметры:

  • args (T.untyped)
  • block (T.untyped)

Возвращает:

  • (T.untyped)


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. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Параметры:

  • args (T.untyped)
  • block (T.untyped)

Возвращает:

  • (T.untyped)


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. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Параметры:

  • args (T.untyped)
  • block (T.untyped)

Возвращает:

  • (T.untyped)


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

Spec-Zone.ru

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