Spec-Zone.ru › Homebrew

Класс: Cask::Uninstall Приватный

Наследует:
Object
  • Object
  • Cask::Uninstall
показать всё
Подключено расширением:
Utils::Output::Mixin
Определено в:
cask/uninstall.rb

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

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

  • .check_dependent_casks(*casks, named_args: []) ⇒ void приватный
  • .uninstall_casks(*casks, binaries: false, force: false, verbose: false) ⇒ void приватный
  • .unpin_for_removal?(cask, force:) ⇒ Boolean приватный

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

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

.check_dependent_casks(*casks, named_args: []) ⇒ void

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

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

Параметры:

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


52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'cask/uninstall.rb', line 52

def self.check_dependent_casks(*casks, named_args: [])
  dependents = []
  all_requireds = casks.map(&:token)
  requireds = Set.new
  caskroom = ::Cask::Caskroom.casks

  caskroom.each do |dependent|
    next if all_requireds.include?(dependent.token)

    d = CaskDependent.new(dependent)
    dependencies = d.recursive_requirements.filter_map { |r| r.cask if r.is_a?(CaskDependent::Requirement) }
    found_dependents = dependencies.intersection(all_requireds)
    next if found_dependents.empty?

    requireds += found_dependents
    dependents << dependent.token
  end

  return if dependents.empty?

  DependentsMessage.new(requireds.to_a, dependents, named_args:).output
end

.uninstall_casks(*casks, binaries: false, force: false, verbose: false) ⇒ void

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

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

Параметры:

  • casks (::Cask::Cask)
  • binaries (Boolean) (по умолчанию: false)
  • force (Boolean) (по умолчанию: false)
  • verbose (Boolean) (по умолчанию: false)

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

  • (MultipleCaskErrors)


13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'cask/uninstall.rb', line 13

def self.uninstall_casks(*casks, binaries: false, force: false, verbose: false)
  require "cask/installer"

  caught_exceptions = []

  casks.each do |cask|
    odebug "Uninstalling Cask #{cask}"

    raise CaskNotInstalledError, cask if !cask.installed? && !force

    next unless unpin_for_removal?(cask, force:)

    Installer.new(cask, binaries:, force:, verbose:).uninstall
  rescue => e
    caught_exceptions << e
    next
  end

  return if caught_exceptions.empty?

  raise MultipleCaskErrors, caught_exceptions if caught_exceptions.count > 1

  raise caught_exceptions.fetch(0)
end

.unpin_for_removal?(cask, force:) ⇒ Boolean

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

Параметры:

  • cask (::Cask::Cask)
  • force (Boolean)

Возвращает:

  • (Boolean)


39
40
41
42
43
44
45
46
47
48
49
# File 'cask/uninstall.rb', line 39

def self.unpin_for_removal?(cask, force:)
  return true unless cask.pinned?

  unless force
    onoe "#{cask.full_name} is pinned. You must unpin it to uninstall."
    return false
  end

  cask.unpin
  true
end

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

Spec-Zone.ru

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