Class: Cask::Artifact::AbstractUninstall Private

Inherits:
AbstractArtifact show all
Includes:
OS::Mac::Cask::Artifact::AbstractUninstall, SystemCommand::Mixin
Defined in:
cask/artifact/abstract_uninstall.rb

Overview

This class is part of a private API. This class may only be used in the Homebrew/brew repository. Third parties should avoid using this class if possible, as it may be removed or changed without warning.

Abstract superclass for uninstall artifacts.

Direct Known Subclasses

Uninstall, Zap

Constant Summary collapse

ORDERED_DIRECTIVES =

This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.

[
  :early_script,
  :launchctl,
  :quit,
  :signal,
  :login_item,
  :kext,
  :script,
  :pkgutil,
  :delete,
  :trash,
  :rmdir,
].freeze
METADATA_KEYS =

This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.

[
  :on_upgrade,
].freeze

Instance Attribute Summary collapse

Attributes inherited from AbstractArtifact

#cask

Class Method Summary collapse

Instance Method Summary collapse

Methods included from SystemCommand::Mixin

#system_command, #system_command!

Methods inherited from AbstractArtifact

#config, dirmethod, dsl_key, english_article, english_name, read_script_arguments, #sort_order, #staged_path_join_executable, #to_args

Methods included from Utils::Output::Mixin

#odebug, #odeprecated, #odie, #odisabled, #ofail, #oh1, #oh1_title, #ohai, #ohai_title, #onoe, #opoo, #opoo_outside_github_actions, #pretty_duration, #pretty_installed, #pretty_outdated, #pretty_uninstalled

Constructor Details

#initialize(cask, **directives) ⇒ AbstractUninstall

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns a new instance of AbstractUninstall.



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'cask/artifact/abstract_uninstall.rb', line 42

def initialize(cask, **directives)
  directives.assert_valid_keys(*ORDERED_DIRECTIVES, *METADATA_KEYS)

  super
  directives[:signal] = Array(directives[:signal]).flatten.each_slice(2).to_a
  @directives = directives

  # This is already included when loading from the API.
  return if cask.loaded_from_api?
  return unless directives.key?(:kext)

  cask.caveats do
    T.bind(self, ::Cask::DSL::Caveats)
    kext
  end
end

Instance Attribute Details

#directivesObject (readonly)

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.



40
41
42
# File 'cask/artifact/abstract_uninstall.rb', line 40

def directives
  @directives
end

Class Method Details

.from_args(cask, **directives) ⇒ Object

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.



36
37
38
# File 'cask/artifact/abstract_uninstall.rb', line 36

def self.from_args(cask, **directives)
  new(cask, **directives)
end

Instance Method Details

#summarizeString

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:



64
65
66
# File 'cask/artifact/abstract_uninstall.rb', line 64

def summarize
  to_h.flat_map { |key, val| Array(val).map { |v| "#{key.inspect} => #{v.inspect}" } }.join(", ")
end

#to_hObject

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.



59
60
61
# File 'cask/artifact/abstract_uninstall.rb', line 59

def to_h
  directives.to_h
end