Spec-Zone.ru › Homebrew

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

Наследует:
EmbeddedPatch
  • Object
  • EmbeddedPatch
  • LocalPatch
показать всё
Определён в:
local_patch.rb

Обзор

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

Файл патча, хранящийся локально в репозитории формулы.

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

  • #file ⇒ String, Pathname только для чтения закрытый
  • #owner ⇒ Resource::Owner? только для чтения закрытый
  • #type ⇒ Symbol? только для чтения закрытый

Атрибуты, унаследованные от EmbeddedPatch

#directory, #strip

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

  • .valid_path?(path_string) ⇒ Boolean закрытый

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

  • #contents ⇒ String закрытый
  • #initialize(strip, file, directory = nil, resolves: [], type: nil) ⇒ void конструктор закрытый
  • #resolves ⇒ Array<String> закрытый

Методы, унаследованные от EmbeddedPatch

#apply, #external?

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

Параметры:

  • strip (String, Symbol)
  • file (String, Pathname)
  • directory (String, Pathname, nil) (по умолчанию: nil)
  • resolves (Array<String>) (по умолчанию: [])
  • type (Symbol, nil) (по умолчанию: nil)


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

Возвращает:

  • (String, Pathname)


9
10
11
# File 'local_patch.rb', line 9

def file
  @file
end

#owner ⇒ Resource::Owner? (только для чтения)

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

Возвращает:

  • (Resource::Owner, nil)


12
13
14
# File 'local_patch.rb', line 12

def owner
  @owner
end

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

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

Возвращает:

  • (Symbol, nil)


25
26
27
# File 'local_patch.rb', line 25

def type
  @type
end

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

.valid_path?(path_string) ⇒ Boolean

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

Параметры:

  • path_string (String)

Возвращает:

  • (Boolean)


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

Возвращает:

  • (String)

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

  • (ArgumentError)


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.expand_path.ascend.any?(api_repository_path.expand_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. Третьим лицам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (Array<String>)


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

Spec-Zone.ru

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