module DoctorStrange

Constants

STATUSES
VERSION

Attributes

configuration[RW]

Public Instance Methods

check(request: nil) click to toggle source
# File lib/doctor_strange/monitor.rb, line 19
def check(request: nil)
  results = configuration.providers.map { |provider| provider_result(provider, request) }

  {
    results: results,
    status: results.all? { |res| res[:status] == STATUSES[:ok] } ? :ok : :service_unavailable,
    timestamp: Time.now.to_s(:rfc2822)
  }
end
configure() { |configuration| ... } click to toggle source
# File lib/doctor_strange/monitor.rb, line 13
def configure
  self.configuration ||= Configuration.new

  yield configuration if block_given?
end

Private Instance Methods

provider_result(provider, request) click to toggle source
# File lib/doctor_strange/monitor.rb, line 31
def provider_result(provider, request)
  monitor = provider.new(request: request)
  monitor.check!

  {
    name: provider.provider_name,
    message: '',
    status: STATUSES[:ok]
  }
rescue StandardError => e
  configuration.error_callback.call(e) if configuration.error_callback

  {
    name: provider.provider_name,
    message: e.message,
    status: STATUSES[:error]
  }
end