Class: PaperTrailDiff::DiagnosticReport

Inherits:
Object
  • Object
show all
Defined in:
lib/paper_trail_diff/diagnostics.rb,
sig/generated/paper_trail_diff/diagnostics.rbs

Overview

Immutable diagnostics for a requested historical association comparison.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(issues:) ⇒ DiagnosticReport

: (issues: Array) -> void

Parameters:



40
41
42
43
# File 'lib/paper_trail_diff/diagnostics.rb', line 40

def initialize(issues:)
  @issues = issues.dup.freeze
  freeze
end

Instance Attribute Details

#issuesArray[DiagnosticIssue] (readonly)

Signature:

  • Array[DiagnosticIssue]

Returns:



37
38
39
# File 'lib/paper_trail_diff/diagnostics.rb', line 37

def issues
  @issues
end

Instance Method Details

#errorsArray[DiagnosticIssue]

: () -> Array

Returns:



46
47
48
# File 'lib/paper_trail_diff/diagnostics.rb', line 46

def errors
  issues.select { |issue| issue.severity == :error }.freeze
end

#ok?Boolean

: () -> bool

Returns:

  • (Boolean)


56
57
58
# File 'lib/paper_trail_diff/diagnostics.rb', line 56

def ok?
  errors.empty?
end

#to_hHash[Symbol, untyped]

: () -> Hash[Symbol, untyped]

Returns:

  • (Hash[Symbol, untyped])


61
62
63
# File 'lib/paper_trail_diff/diagnostics.rb', line 61

def to_h
  { ok: ok?, issues: Support.serialize(issues) }
end

#warningsArray[DiagnosticIssue]

: () -> Array

Returns:



51
52
53
# File 'lib/paper_trail_diff/diagnostics.rb', line 51

def warnings
  issues.select { |issue| issue.severity == :warning }.freeze
end