class HealthRack::Renderers::JSONRenderer

Constants

CONTENT_TYPE

Public Class Methods

new(app) click to toggle source
# File lib/health_rack/renderers/json_renderer.rb, line 8
def initialize(app)
  @app = app
end

Public Instance Methods

content_type() click to toggle source
# File lib/health_rack/renderers/json_renderer.rb, line 12
def content_type
  CONTENT_TYPE
end
render(buffer) click to toggle source
# File lib/health_rack/renderers/json_renderer.rb, line 16
def render(buffer)
  buffer.write(json)
end

Private Instance Methods

data() click to toggle source
# File lib/health_rack/renderers/json_renderer.rb, line 26
def data
  {
    title: @app.title,
    status: overall_status,
    summary: summary
  }
end
json() click to toggle source
# File lib/health_rack/renderers/json_renderer.rb, line 22
def json
  JSON.generate(data)
end
overall_status() click to toggle source
# File lib/health_rack/renderers/json_renderer.rb, line 34
def overall_status
  results.all?(&:status)
end
results() click to toggle source
# File lib/health_rack/renderers/json_renderer.rb, line 44
def results
  @results ||= @app.results
end
summary() click to toggle source
# File lib/health_rack/renderers/json_renderer.rb, line 38
def summary
  results.map do |result|
    {title: result.title, status: result.status, duration: result.duration}
  end
end