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<CaskDependent::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.
19 20 21 |
# File 'cask_dependent.rb', line 19 def initialize(cask) @cask = T.let(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.
16 17 18 |
# File 'cask_dependent.rb', line 16 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.
91 92 93 |
# File 'cask_dependent.rb', line 91 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.
39 40 41 42 43 44 45 46 |
# File 'cask_dependent.rb', line 39 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.
29 30 31 |
# File 'cask_dependent.rb', line 29 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.
24 25 26 |
# File 'cask_dependent.rb', line 24 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.
81 82 83 |
# File 'cask_dependent.rb', line 81 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.
86 87 88 |
# File 'cask_dependent.rb', line 86 def recursive_requirements(&block) Requirement.(self, &block) end |
#requirements ⇒ Array<CaskDependent::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.
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'cask_dependent.rb', line 49 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.macos if dsl_reqs.macos requirements end, T.nilable(T::Array[CaskDependent::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.
34 35 36 |
# File 'cask_dependent.rb', line 34 def runtime_dependencies deps.flat_map { |dep| [dep, *dep.to_formula.runtime_dependencies] }.uniq end |