Class: Wellness::Report

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

Overview

A simple presenter for the services and details of the Wellness System.

Author:

  • Matthew A. Johnston (warmwaffles)

Instance Method Summary collapse

Constructor Details

#initialize(services, details) ⇒ Report

Returns a new instance of Report.

Parameters:

  • services (Hash)
  • details (Hash)


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

def initialize(services, details)
  @services = services
  @details = details
end

Instance Method Details

#detailedHash

Returns:

  • (Hash)


14
15
16
17
18
19
20
# File 'lib/wellness/report.rb', line 14

def detailed
  {
    status: status,
    services: services,
    details: details
  }
end

#detailsObject



55
56
57
# File 'lib/wellness/report.rb', line 55

def details
  Hash[@details.map { |d| [d.name, d.result] }]
end

#healthy?TrueClass, FalseClass

Returns:

  • (TrueClass, FalseClass)


47
48
49
# File 'lib/wellness/report.rb', line 47

def healthy?
  @services.all?(&:healthy?)
end

#servicesObject



51
52
53
# File 'lib/wellness/report.rb', line 51

def services
  Hash[@services.map { |s| [s.name, s.result] }]
end

#simpleHash

Returns:

  • (Hash)


23
24
25
26
27
# File 'lib/wellness/report.rb', line 23

def simple
  {
    status: status
  }
end

#statusString

Returns:

  • (String)


37
38
39
# File 'lib/wellness/report.rb', line 37

def status
  healthy? ? 'HEALTHY' : 'UNHEALTHY'
end

#status_codeInteger

Returns:

  • (Integer)


42
43
44
# File 'lib/wellness/report.rb', line 42

def status_code
  healthy? ? 200 : 500
end

#to_jsonString

Returns the #detailed hash in json form

Returns:

  • (String)


32
33
34
# File 'lib/wellness/report.rb', line 32

def to_json(*)
  detailed.to_json
end