Spec-Zone.ru › Homebrew

Класс: ExternalPatch Закрытый

Наследует:
Object
  • Object
  • ExternalPatch
показать все
Расширен модулем:
Forwardable
Подключает:
Utils::Output::Mixin
Определён в:
external_patch.rb,
sorbet/rbi/dsl/external_patch.rbi

Обзор

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

Файл, содержащий патч.

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

  • #resource ⇒ Resource::Patch только для чтения закрытый
  • #strip ⇒ String, Symbol только для чтения закрытый

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

  • #apply ⇒ void закрытый
  • #cached_download(*args, &block) ⇒ T.untyped закрытый
  • #clear_cache(*args, &block) ⇒ T.untyped закрытый
  • #downloaded?(*args, &block) ⇒ Boolean закрытый
  • #external? ⇒ Boolean закрытый
  • #fetch(*args, &block) ⇒ T.untyped закрытый
  • #initialize(strip, &block) ⇒ void конструктор закрытый
  • #owner=(owner) ⇒ void закрытый
  • #patch_files(*args, &block) ⇒ T.untyped закрытый
  • #resolves ⇒ Array<String> закрытый
  • #type ⇒ Symbol? закрытый
  • #url(*args, &block) ⇒ T.untyped закрытый
  • #verify_download_integrity(*args, &block) ⇒ T.untyped закрытый

Методы, подключённые из 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

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

#initialize(strip, &block) ⇒ void

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

Параметры:

  • strip (String, Symbol)
  • block (T.proc.bind(Resource::Patch).void, nil)


26
27
28
29
# File 'external_patch.rb', line 26

def initialize(strip, &block)
  @strip    = strip
  @resource = T.let(Resource::Patch.new(&block), Resource::Patch)
end

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

#resource ⇒ Resource::Patch (только для чтения)

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

Возвращает:

  • (Resource::Patch)


16
17
18
# File 'external_patch.rb', line 16

def resource
  @resource
end

#strip ⇒ String, Symbol (только для чтения)

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

Возвращает:

  • (String, Symbol)


19
20
21
# File 'external_patch.rb', line 19

def strip
  @strip
end

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

#apply ⇒ void

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

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



53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# File 'external_patch.rb', line 53

def apply
  base_dir = Pathname.pwd
  resource.unpack do
    patch_dir = Pathname.pwd
    if patch_files.empty?
      children = patch_dir.children
      if children.length != 1 || !children.fetch(0).file?
        raise MissingApplyError, <<~EOS
          There should be exactly one patch file in the staging directory unless
          the "apply" method was used one or more times in the patch-do block.
        EOS
      end

      patch_files << children.fetch(0).basename
    end
    dir = base_dir
    dir /= T.must(resource.directory) if resource.directory.present?
    dir.cd do
      patch_files.each do |patch_file|
        ohai "Applying #{patch_file}"
        patch_file = patch_dir/patch_file
        Utils.safe_popen_write("patch", "-g", "0", "-f", "-#{strip}") do |p|
          File.foreach(patch_file) do |line|
            data = line.gsub("@@HOMEBREW_PREFIX@@", HOMEBREW_PREFIX)
            p.write(data)
          end
        end
      end
    end
  end
rescue ErrorDuringExecution => e
  onoe e
  spec_owner = T.cast(T.must(resource.owner), SoftwareSpec).owner
  f = spec_owner.is_a?(::Formula) ? spec_owner : nil
  cmd, *args = e.cmd
  raise BuildError.new(f, cmd, args, ENV.to_hash)
end

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

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

Параметры:

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

Возвращает:

  • (T.untyped)


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

def cached_download(*args, &block); end

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

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

Параметры:

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

Возвращает:

  • (T.untyped)


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

def clear_cache(*args, &block); end

#downloaded?(*args, &block) ⇒ Boolean

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

Параметры:

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

Возвращает:

  • (Boolean)


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

def downloaded?(*args, &block); end

#external? ⇒ Boolean

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

Возвращает:

  • (Boolean)


32
33
34
# File 'external_patch.rb', line 32

def external?
  true
end

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

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

Параметры:

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

Возвращает:

  • (T.untyped)


19
# File 'sorbet/rbi/dsl/external_patch.rbi', line 19

def fetch(*args, &block); end

#owner=(owner) ⇒ void

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

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

Параметры:

  • owner (Resource::Owner, nil)


47
48
49
50
# File 'external_patch.rb', line 47

def owner=(owner)
  resource.owner = owner
  resource.version(resource.checksum&.hexdigest || ERB::Util.url_encode(resource.url))
end

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

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

Параметры:

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

Возвращает:

  • (T.untyped)


22
# File 'sorbet/rbi/dsl/external_patch.rbi', line 22

def patch_files(*args, &block); end

#resolves ⇒ Array<String>

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

Возвращает:

  • (Array<String>)


37
38
39
# File 'external_patch.rb', line 37

def resolves
  (resource.resolves + Patch.extract_cves(url.to_s, *resource.patch_files.map(&:to_s))).uniq
end

#type ⇒ Symbol?

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

Возвращает:

  • (Symbol, nil)


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

def type
  resource.type
end

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

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

Параметры:

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

Возвращает:

  • (T.untyped)


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

def url(*args, &block); end

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

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

Параметры:

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

Возвращает:

  • (T.untyped)


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

def verify_download_integrity(*args, &block); end

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

Spec-Zone.ru

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