Class: Cask::Artifact::AbstractUninstall Private
- Inherits:
-
AbstractArtifact
- Object
- AbstractArtifact
- Cask::Artifact::AbstractUninstall
- Includes:
- 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.
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
- #directives ⇒ Object readonly private
Attributes inherited from AbstractArtifact
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(cask, **directives) ⇒ AbstractUninstall
constructor
private
A new instance of AbstractUninstall.
- #summarize ⇒ String private
- #to_h ⇒ Object private
Methods included from SystemCommand::Mixin
#system_command, #system_command!
Methods inherited from AbstractArtifact
#config, dirmethod, dsl_key, english_article, english_name, read_script_arguments, #staged_path_join_executable, #to_args
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.
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'cask/artifact/abstract_uninstall.rb', line 38 def initialize(cask, **directives) directives.assert_valid_keys(*ORDERED_DIRECTIVES) 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
#directives ⇒ Object (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.
36 37 38 |
# File 'cask/artifact/abstract_uninstall.rb', line 36 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.
32 33 34 |
# File 'cask/artifact/abstract_uninstall.rb', line 32 def self.from_args(cask, **directives) new(cask, **directives) end |
Instance Method Details
#summarize ⇒ String
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.
60 61 62 |
# File 'cask/artifact/abstract_uninstall.rb', line 60 def summarize to_h.flat_map { |key, val| Array(val).map { |v| "#{key.inspect} => #{v.inspect}" } }.join(", ") end |
#to_h ⇒ 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.
55 56 57 |
# File 'cask/artifact/abstract_uninstall.rb', line 55 def to_h directives.to_h end |