Class: Homebrew::Vulns::Match::Hit Private
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.
Instance Attribute Summary collapse
- #evidence ⇒ Array<Evidence> readonly private
- #vulnerability ⇒ Vulnerability readonly private
Instance Method Summary collapse
- #canonical_id ⇒ String private
- #initialize(vulnerability:, evidence:) ⇒ void constructor private
- #primary_evidence ⇒ Evidence private
- #resource ⇒ String? private
- #strategy ⇒ Symbol private
Constructor Details
#initialize(vulnerability:, evidence:) ⇒ 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.
79 80 81 82 83 84 85 86 87 88 |
# File 'vulns/match.rb', line 79 def initialize(vulnerability:, evidence:) raise ArgumentError, "Hit requires at least one Evidence" if evidence.empty? @vulnerability = vulnerability @evidence = T.let( evidence.map { |e| e.with_source(vulnerability) } .sort_by { |e| -STRATEGY_PRECISION.fetch(e.strategy) }.freeze, T::Array[Evidence], ) end |
Instance Attribute Details
#evidence ⇒ Array<Evidence> (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.
76 77 78 |
# File 'vulns/match.rb', line 76 def evidence @evidence end |
#vulnerability ⇒ Vulnerability (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.
73 74 75 |
# File 'vulns/match.rb', line 73 def vulnerability @vulnerability end |
Instance Method Details
#canonical_id ⇒ 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.
106 107 108 |
# File 'vulns/match.rb', line 106 def canonical_id vulnerability.cve_ids.min || vulnerability.id end |
#primary_evidence ⇒ Evidence
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 'vulns/match.rb', line 91 def primary_evidence evidence.fetch(0) end |
#resource ⇒ 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.
101 102 103 |
# File 'vulns/match.rb', line 101 def resource primary_evidence.resource end |
#strategy ⇒ Symbol
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 'vulns/match.rb', line 96 def strategy primary_evidence.strategy end |