Class: Cask::Artifact::AbstractUninstall Private

Inherits:
AbstractArtifact show all
Extended by:
T::Sig
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

Instance Attribute Summary collapse

Attributes inherited from AbstractArtifact

#cask

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from AbstractArtifact

#<=>, #config, dirmethod, dsl_key, english_article, english_name, read_script_arguments, #staged_path_join_executable, #to_s

Methods included from Predicable

#attr_predicate

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.



40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'cask/artifact/abstract_uninstall.rb', line 40

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

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

  return unless directives.key?(:kext)

  cask.caveats do
    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.



38
39
40
# File 'cask/artifact/abstract_uninstall.rb', line 38

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.



34
35
36
# File 'cask/artifact/abstract_uninstall.rb', line 34

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:



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

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.



54
55
56
# File 'cask/artifact/abstract_uninstall.rb', line 54

def to_h
  directives.to_h
end