Class: SolidQueueGuard::Report

Inherits:
Object
  • Object
show all
Defined in:
lib/solid_queue_guard/report.rb

Constant Summary collapse

STATUSES =
%i[healthy degraded unhealthy].freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(results) ⇒ Report

Returns a new instance of Report.



9
10
11
# File 'lib/solid_queue_guard/report.rb', line 9

def initialize(results)
  @results = results
end

Instance Attribute Details

#resultsObject (readonly)

Returns the value of attribute results.



7
8
9
# File 'lib/solid_queue_guard/report.rb', line 7

def results
  @results
end

Instance Method Details

#exit_code(strict: false) ⇒ Object



28
29
30
31
32
33
# File 'lib/solid_queue_guard/report.rb', line 28

def exit_code(strict: false)
  return 1 if results.any?(&:fail?)
  return 1 if strict && results.any?(&:warn?)

  0
end

#statusObject



13
14
15
16
17
18
# File 'lib/solid_queue_guard/report.rb', line 13

def status
  return :unhealthy if results.any?(&:fail?)
  return :degraded if results.any?(&:warn?)

  :healthy
end

#suggestionsObject



24
25
26
# File 'lib/solid_queue_guard/report.rb', line 24

def suggestions
  results.filter_map(&:suggestion).uniq
end

#to_hObject



35
36
37
38
39
40
41
42
# File 'lib/solid_queue_guard/report.rb', line 35

def to_h
  {
    status: status.to_s,
    warnings: warnings,
    suggestions: suggestions,
    checks: results.map(&:to_h)
  }
end

#warningsObject



20
21
22
# File 'lib/solid_queue_guard/report.rb', line 20

def warnings
  results.select(&:warn?).map(&:message)
end