Class: RailVerdict::AnalyzerResult

Inherits:
Object
  • Object
show all
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

Instance Method Summary collapse

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

#analyzerObject (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_statusObject (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_summaryObject (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_statusObject (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

#failureObject (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_idsObject (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

#invocationObject (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_versionObject (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

Returns:

  • (Boolean)


28
29
30
# File 'lib/rail_verdict/contracts/analyzer_result.rb', line 28

def complete?
  evidence_status == "complete"
end

#to_schema_hObject



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