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(read_from_tab: true, undeclared: true) ⇒ 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.
24 25 26 |
# File 'cask_dependent.rb', line 24 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.
21 22 23 |
# File 'cask_dependent.rb', line 21 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.
110 111 112 |
# File 'cask_dependent.rb', line 110 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.
46 47 48 49 50 51 52 53 |
# File 'cask_dependent.rb', line 46 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.
34 35 36 |
# File 'cask_dependent.rb', line 34 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.
29 30 31 |
# File 'cask_dependent.rb', line 29 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.
95 96 97 |
# File 'cask_dependent.rb', line 95 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.
105 106 107 |
# File 'cask_dependent.rb', line 105 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.
56 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 |
# File 'cask_dependent.rb', line 56 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(read_from_tab: true, undeclared: true) ⇒ 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 |
# File 'cask_dependent.rb', line 39 def runtime_dependencies(read_from_tab: true, undeclared: true) deps.flat_map do |dep| [dep, *dep.to_installed_formula.runtime_dependencies(read_from_tab:, undeclared:)] end.uniq end |