Класс: 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. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
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. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
16 17 18 | # File 'external_patch.rb', line 16 def resource @resource end |
#strip ⇒ String, Symbol (только для чтения)
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
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. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
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. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
13 | # File 'sorbet/rbi/dsl/external_patch.rbi', line 13 def clear_cache(*args, &block); end |
#downloaded?(*args, &block) ⇒ Boolean
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
16 | # File 'sorbet/rbi/dsl/external_patch.rbi', line 16 def downloaded?(*args, &block); end |
#external? ⇒ Boolean
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
32 33 34 | # File 'external_patch.rb', line 32 def external? true end |
#fetch(*args, &block) ⇒ T.untyped
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
19 | # File 'sorbet/rbi/dsl/external_patch.rbi', line 19 def fetch(*args, &block); end |
#owner=(owner) ⇒ void
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
Этот метод возвращает неопределённое значение.
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. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
22 | # File 'sorbet/rbi/dsl/external_patch.rbi', line 22 def patch_files(*args, &block); end |
#resolves ⇒ Array<String>
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
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. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
42 43 44 | # File 'external_patch.rb', line 42 def type resource.type end |
#url(*args, &block) ⇒ T.untyped
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
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. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
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