Class: CaskDependent
Overview
An adapter for casks to provide dependency information in a formula-like interface.
Defined Under Namespace
Classes: Requirement
Instance Attribute Summary collapse
-
#cask ⇒ Object
readonly
Returns the value of attribute cask.
Instance Method Summary collapse
-
#any_version_installed? ⇒ Boolean
-
#deps ⇒ Object
-
#full_name ⇒ Object
-
#initialize(cask) ⇒ CaskDependent
constructor
A new instance of CaskDependent.
-
#name ⇒ Object
-
#recursive_dependencies(&block) ⇒ Object
-
#recursive_requirements(&block) ⇒ Object
-
#requirements ⇒ Object
-
#runtime_dependencies ⇒ Object
Constructor Details
#initialize(cask) ⇒ CaskDependent
Returns a new instance of CaskDependent.
17 18 19 |
# File 'cask_dependent.rb', line 17 def initialize(cask) @cask = cask end |
Instance Attribute Details
#cask ⇒ Object (readonly)
Returns the value of attribute cask.
15 16 17 |
# File 'cask_dependent.rb', line 15 def cask @cask end |
Instance Method Details
#any_version_installed? ⇒ Boolean
75 76 77 |
# File 'cask_dependent.rb', line 75 def any_version_installed? @cask.installed? end |
#deps ⇒ Object
33 34 35 36 37 |
# File 'cask_dependent.rb', line 33 def deps @deps ||= @cask.depends_on.formula.map do |f| Dependency.new f end end |
#full_name ⇒ Object
25 26 27 |
# File 'cask_dependent.rb', line 25 def full_name @cask.full_name end |
#name ⇒ Object
21 22 23 |
# File 'cask_dependent.rb', line 21 def name @cask.token end |
#recursive_dependencies(&block) ⇒ Object
67 68 69 |
# File 'cask_dependent.rb', line 67 def recursive_dependencies(&block) Dependency.(self, &block) end |
#recursive_requirements(&block) ⇒ Object
71 72 73 |
# File 'cask_dependent.rb', line 71 def recursive_requirements(&block) Requirement.(self, &block) end |
#requirements ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'cask_dependent.rb', line 39 def requirements @requirements ||= 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 end |
#runtime_dependencies ⇒ Object
29 30 31 |
# File 'cask_dependent.rb', line 29 def runtime_dependencies deps.flat_map { |dep| [dep, *dep.to_formula.runtime_dependencies] }.uniq end |