Class: CaskDependent Private
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.
An adapter for casks to provide dependency information in a formula-like interface.
Defined Under Namespace
Classes: Requirement
Instance Attribute Summary collapse
- #cask ⇒ Cask::Cask readonly private
Instance Method Summary collapse
- #any_version_installed? ⇒ Boolean private
- #deps ⇒ Array<Dependency> private
- #full_name ⇒ String private
- #initialize(cask) ⇒ void constructor private
- #name ⇒ String private
- #recursive_dependencies(&block) ⇒ Array<::Dependency> private
- #recursive_requirements(&block) ⇒ Requirements private
- #requirements ⇒ Array<::Requirement> private
- #runtime_dependencies ⇒ Array<Dependency> private
Constructor Details
#initialize(cask) ⇒ void
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.
27 28 29 |
# File 'cask_dependent.rb', line 27 def initialize(cask) @cask = cask end |
Instance Attribute Details
#cask ⇒ Cask::Cask (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.
24 25 26 |
# File 'cask_dependent.rb', line 24 def cask @cask end |
Instance Method Details
#any_version_installed? ⇒ Boolean
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.
111 112 113 |
# File 'cask_dependent.rb', line 111 def any_version_installed? @cask.installed? end |
#deps ⇒ Array<Dependency>
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.
47 48 49 50 51 52 53 54 |
# File 'cask_dependent.rb', line 47 def deps @deps ||= T.let( @cask.depends_on.formula.map do |f| Dependency.new f end, T.nilable(T::Array[Dependency]), ) end |
#full_name ⇒ 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.
37 38 39 |
# File 'cask_dependent.rb', line 37 def full_name @cask.full_name end |
#name ⇒ 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.
32 33 34 |
# File 'cask_dependent.rb', line 32 def name @cask.token end |
#recursive_dependencies(&block) ⇒ Array<::Dependency>
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.
96 97 98 |
# File 'cask_dependent.rb', line 96 def recursive_dependencies(&block) Dependency.(self, &block) end |
#recursive_requirements(&block) ⇒ Requirements
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.
106 107 108 |
# File 'cask_dependent.rb', line 106 def recursive_requirements(&block) Requirement.(self, &block) end |
#requirements ⇒ Array<::Requirement>
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.
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
# File 'cask_dependent.rb', line 57 def requirements @requirements ||= T.let( begin requirements = [] dsl_reqs = @cask.depends_on dsl_reqs.arch&.each do |arch| arch = if arch[:bits] == 64 if arch[:type] == :intel :x86_64 else :"#{arch[:type]}64" end elsif arch[:type] == :intel && arch[:bits] == 32 :i386 else arch[:type] end requirements << ArchRequirement.new([arch]) end dsl_reqs.cask.each do |cask_ref| requirements << CaskDependent::Requirement.new([{ cask: cask_ref }]) end requirements << dsl_reqs.linux if dsl_reqs.linux requirements << dsl_reqs.macos if dsl_reqs.macos requirements << dsl_reqs.maximum_macos if dsl_reqs.maximum_macos requirements end, T.nilable(T::Array[::Requirement]), ) end |
#runtime_dependencies ⇒ Array<Dependency>
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.
42 43 44 |
# File 'cask_dependent.rb', line 42 def runtime_dependencies deps.flat_map { |dep| [dep, *dep.to_installed_formula.runtime_dependencies] }.uniq end |