Класс: LocalPatch Закрытый
- Наследует:
- EmbeddedPatch
- Object
- EmbeddedPatch
- LocalPatch
- Определён в:
- local_patch.rb
Обзор
Этот класс является частью закрытого API. Этот класс можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам следует по возможности избегать использования этого класса, поскольку он может быть удалён или изменён без предупреждения.
Файл патча, хранящийся локально в репозитории формулы.
Краткое описание атрибутов экземпляра свернуть
- #file ⇒ String, Pathname только для чтения закрытый
- #owner ⇒ Resource::Owner? только для чтения закрытый
- #type ⇒ Symbol? только для чтения закрытый
Атрибуты, унаследованные от EmbeddedPatch
Краткое описание методов класса свернуть
- .valid_path?(path_string) ⇒ Boolean закрытый
Краткое описание методов экземпляра свернуть
- #contents ⇒ String закрытый
- #initialize(strip, file, directory = nil, resolves: [], type: nil) ⇒ void конструктор закрытый
- #resolves ⇒ Array<String> закрытый
Методы, унаследованные от EmbeddedPatch
Методы, включённые из 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, file, directory = nil, resolves: [], type: nil) ⇒ void
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам следует по возможности избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
36 37 38 39 40 41 42 | # File 'local_patch.rb', line 36 def initialize(strip, file, directory = nil, resolves: [], type: nil) super(strip) @file = file self.directory = directory @resolves = T.let(resolves.dup, T::Array[String]) @type = type end |
Подробное описание атрибутов экземпляра
#file ⇒ String, Pathname (только для чтения)
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам следует по возможности избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
9 10 11 | # File 'local_patch.rb', line 9 def file @file end |
#owner ⇒ Resource::Owner? (только для чтения)
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам следует по возможности избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
12 13 14 | # File 'local_patch.rb', line 12 def owner @owner end |
#type ⇒ Symbol? (только для чтения)
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам следует по возможности избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
25 26 27 | # File 'local_patch.rb', line 25 def type @type end |
Подробное описание методов класса
.valid_path?(path_string) ⇒ Boolean
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам следует по возможности избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
15 16 17 18 19 20 21 22 | # File 'local_patch.rb', line 15 def self.valid_path?(path_string) path = Pathname(path_string).cleanpath path_string.present? && !path_string.end_with?("/") && !path.absolute? && %w[...].exclude?(path.to_s) && !path.to_s.start_with?("../") end |
Подробное описание методов экземпляра
#contents ⇒ String
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Третьим лицам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
50 51 52 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 | # File 'local_patch.rb', line 50 def contents owner = self.owner raise ArgumentError, "LocalPatch#contents called before owner was set!" unless owner formula = T.cast(owner, SoftwareSpec).owner raise ArgumentError, "LocalPatch#contents requires a formula owner!" unless formula.is_a?(::Formula) formula_path = formula.specified_path || formula.path api_repository_path = api_source_repository_path(formula_path) repository_path = api_repository_path || formula.tap&.path || formula_path.dirname file_path = repository_path/Pathname(file) repository_realpath = repository_path.realpath file_realpath = begin file_path.realpath rescue Errno::ENOENT raise ArgumentError, "Patch file does not exist: #{file}" end if file_realpath.ascend.none?(repository_realpath) && !(api_repository_path && begin file_path..ascend.any?(api_repository_path.) && file_realpath.ascend.any?((HOMEBREW_CACHE/"downloads").realpath) rescue Errno::ENOENT false end) raise ArgumentError, "Patch file must be within the formula repository." end raise ArgumentError, "Patch file must be a file: #{file}" unless file_realpath.file? file_realpath.read end |
#resolves ⇒ Array<String>
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Третьим лицам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
45 46 47 | # File 'local_patch.rb', line 45 def resolves (@resolves + Patch.extract_cves(file.to_s)).uniq end |
© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/rubydoc/LocalPatch.html