Class: RailVerdict::AnalyzerResult
- Inherits:
-
Object
- Object
- RailVerdict::AnalyzerResult
- Defined in:
- lib/rail_verdict/contracts/analyzer_result.rb
Constant Summary collapse
- EXECUTION_STATUSES =
%w[ succeeded unavailable unsupported timed_out signaled failed parse_failed truncated malformed ].freeze
- FAILURE_CODES =
(EXECUTION_STATUSES - ["succeeded"]).freeze
- EVIDENCE_STATUSES =
%w[complete incomplete].freeze
Instance Attribute Summary collapse
-
#analyzer ⇒ Object
readonly
Returns the value of attribute analyzer.
-
#evidence_status ⇒ Object
readonly
Returns the value of attribute evidence_status.
-
#evidence_summary ⇒ Object
readonly
Returns the value of attribute evidence_summary.
-
#execution_status ⇒ Object
readonly
Returns the value of attribute execution_status.
-
#failure ⇒ Object
readonly
Returns the value of attribute failure.
-
#finding_ids ⇒ Object
readonly
Returns the value of attribute finding_ids.
-
#invocation ⇒ Object
readonly
Returns the value of attribute invocation.
-
#tool_version ⇒ Object
readonly
Returns the value of attribute tool_version.
Instance Method Summary collapse
- #complete? ⇒ Boolean
-
#initialize(analyzer:, invocation:, execution_status:, finding_ids:, tool_version: nil, failure: nil, evidence_summary: nil) ⇒ AnalyzerResult
constructor
A new instance of AnalyzerResult.
- #to_schema_h ⇒ Object
Constructor Details
#initialize(analyzer:, invocation:, execution_status:, finding_ids:, tool_version: nil, failure: nil, evidence_summary: nil) ⇒ AnalyzerResult
Returns a new instance of AnalyzerResult.
15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/rail_verdict/contracts/analyzer_result.rb', line 15 def initialize(analyzer:, invocation:, execution_status:, finding_ids:, tool_version: nil, failure: nil, evidence_summary: nil) @analyzer = require_nonempty_string(analyzer, "analyzer", 256).freeze @invocation = validate_invocation(invocation) @execution_status = validate_execution_status(execution_status) @evidence_status = execution_status == "succeeded" ? "complete" : "incomplete" @tool_version = tool_version && require_nonempty_string(tool_version, "tool_version", 128).freeze @finding_ids = validate_finding_ids(finding_ids) @failure = validate_failure(failure) @evidence_summary = validate_evidence_summary(evidence_summary) enforce_coupling freeze end |
Instance Attribute Details
#analyzer ⇒ Object (readonly)
Returns the value of attribute analyzer.
12 13 14 |
# File 'lib/rail_verdict/contracts/analyzer_result.rb', line 12 def analyzer @analyzer end |
#evidence_status ⇒ Object (readonly)
Returns the value of attribute evidence_status.
12 13 14 |
# File 'lib/rail_verdict/contracts/analyzer_result.rb', line 12 def evidence_status @evidence_status end |
#evidence_summary ⇒ Object (readonly)
Returns the value of attribute evidence_summary.
12 13 14 |
# File 'lib/rail_verdict/contracts/analyzer_result.rb', line 12 def evidence_summary @evidence_summary end |
#execution_status ⇒ Object (readonly)
Returns the value of attribute execution_status.
12 13 14 |
# File 'lib/rail_verdict/contracts/analyzer_result.rb', line 12 def execution_status @execution_status end |
#failure ⇒ Object (readonly)
Returns the value of attribute failure.
12 13 14 |
# File 'lib/rail_verdict/contracts/analyzer_result.rb', line 12 def failure @failure end |
#finding_ids ⇒ Object (readonly)
Returns the value of attribute finding_ids.
12 13 14 |
# File 'lib/rail_verdict/contracts/analyzer_result.rb', line 12 def finding_ids @finding_ids end |
#invocation ⇒ Object (readonly)
Returns the value of attribute invocation.
12 13 14 |
# File 'lib/rail_verdict/contracts/analyzer_result.rb', line 12 def invocation @invocation end |
#tool_version ⇒ Object (readonly)
Returns the value of attribute tool_version.
12 13 14 |
# File 'lib/rail_verdict/contracts/analyzer_result.rb', line 12 def tool_version @tool_version end |
Instance Method Details
#complete? ⇒ Boolean
28 29 30 |
# File 'lib/rail_verdict/contracts/analyzer_result.rb', line 28 def complete? evidence_status == "complete" end |
#to_schema_h ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/rail_verdict/contracts/analyzer_result.rb', line 32 def to_schema_h result = {} result["analyzer"] = analyzer result["tool_version"] = tool_version if tool_version result["invocation"] = invocation result["execution_status"] = execution_status result["evidence_status"] = evidence_status result["finding_ids"] = finding_ids result["failure"] = failure if failure result["evidence_summary"] = evidence_summary if evidence_summary result end |