Class: Cask::Artifact::Symlinked Private

Inherits:
Relocated show all
Extended by:
T::Sig
Defined in:
cask/artifact/symlinked.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.

Superclass for all artifacts which are installed by symlinking them to the target location.

Direct Known Subclasses

Binary, Manpage

Instance Attribute Summary

Attributes inherited from Relocated

#source, #target

Attributes inherited from AbstractArtifact

#cask

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Relocated

from_args, #initialize, #resolve_target, #summarize, #to_a

Methods inherited from AbstractArtifact

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

Methods included from Predicable

#attr_predicate

Constructor Details

This class inherits a constructor from Cask::Artifact::Relocated

Class Method Details

.english_descriptionString

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:



20
21
22
# File 'cask/artifact/symlinked.rb', line 20

def self.english_description
  "#{english_name} #{link_type_english_name}s"
end

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:



15
16
17
# File 'cask/artifact/symlinked.rb', line 15

def self.link_type_english_name
  "Symlink"
end

Instance Method Details

#install_phase(**options) ⇒ 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.



24
25
26
# File 'cask/artifact/symlinked.rb', line 24

def install_phase(**options)
  link(**options)
end

#summarize_installedObject

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
35
36
37
38
39
40
41
42
43
44
# File 'cask/artifact/symlinked.rb', line 32

def summarize_installed
  if target.symlink? && target.exist? && target.readlink.exist?
    "#{printable_target} -> #{target.readlink} (#{target.readlink.abv})"
  else
    string = if target.symlink?
      "#{printable_target} -> #{target.readlink}"
    else
      printable_target
    end

    Formatter.error(string, label: "Broken Link")
  end
end

#uninstall_phase(**options) ⇒ 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.



28
29
30
# File 'cask/artifact/symlinked.rb', line 28

def uninstall_phase(**options)
  unlink(**options)
end