module StatusPage
Constants
- STATUSES
- VERSION
Public Class Methods
check(request: nil)
click to toggle source
# File lib/status-page/monitor.rb, line 18 def check(request: nil) if config.interval > 0 if @cached_status && @cached_status[:timestamp] >= (config.interval || 5).seconds.ago return @cached_status end end providers = config.providers || [] results = providers.map { |provider| provider_result(provider, request) } @cached_status = { results: results, status: results.all? { |result| result[:status] == STATUSES[:ok] } ? :ok : :service_unavailable, timestamp: Time.now } @cached_status end
config()
click to toggle source
# File lib/status-page/monitor.rb, line 8 def config return @config if defined?(@config) @config = Configuration.new @config end
configure(&block)
click to toggle source
# File lib/status-page/monitor.rb, line 14 def configure(&block) config.instance_exec(&block) end
Private Class Methods
provider_result(provider, request)
click to toggle source
# File lib/status-page/monitor.rb, line 38 def provider_result(provider, request) monitor = provider.new(request: request) monitor.check! { name: provider.service_name, message: '', status: STATUSES[:ok] } rescue => e config.error_callback.call(e) if config.error_callback { name: provider.service_name, message: e.message, status: STATUSES[:error] } end