class Checkups::Checkup
Attributes
name[R]
status[R]
status_message[R]
url[R]
verbose[R]
Public Class Methods
checkups_by_frequency(frequency, _verbose: false)
click to toggle source
TODO: Remove verbose from method signature
# File lib/checkups/checkup.rb, line 20 def self.checkups_by_frequency(frequency, _verbose: false) checkup_classes = ObjectSpace.each_object(::Class).select { |klass| klass < self } checkup_classes.select { |klass| klass.frequency == frequency } end
daily()
click to toggle source
# File lib/checkups/checkup.rb, line 15 def self.daily checkups_by_frequency(:daily) end
frequency()
click to toggle source
# File lib/checkups/checkup.rb, line 25 def self.frequency :never end
hourly()
click to toggle source
# File lib/checkups/checkup.rb, line 11 def self.hourly checkups_by_frequency(:hourly) end
new(verbose: false)
click to toggle source
# File lib/checkups/checkup.rb, line 29 def initialize(verbose: false) @notify_frequency = :always @verbose = verbose @name = nil ok end
Public Instance Methods
check()
click to toggle source
# File lib/checkups/checkup.rb, line 54 def check ok end
check_and_notify!(&block)
click to toggle source
# File lib/checkups/checkup.rb, line 36 def check_and_notify!(&block) check(&block) send_notification rescue => e # rubocop:disable Style/RescueStandardError handle_error(e) end
notify_message()
click to toggle source
# File lib/checkups/checkup.rb, line 58 def notify_message "Checkup #{@status.to_s.capitalize}: " + @status_message end
passed?()
click to toggle source
# File lib/checkups/checkup.rb, line 43 def passed? case check when nil, :ok, :info true when :warning, :error false else raise "Unknown status: #{check}" end end
Protected Instance Methods
error(message)
click to toggle source
# File lib/checkups/checkup.rb, line 77 def error(message) set_status(:error, message) end
handle_error(error)
click to toggle source
rubocop:disable Style/RescueStandardError
# File lib/checkups/checkup.rb, line 105 def handle_error(error) message = "Error running Checkup class #{self.class.name}: #{error.message} #{error.backtrace[0]}" set_status(:fatal, message) notifier.notify(self) rescue # Last chance for gas logger.error("Checkup handle_error error! #{error.message}") rescue nil # rubocop:disable Style/RescueModifier end
info(message)
click to toggle source
# File lib/checkups/checkup.rb, line 68 def info(message) set_status(:info, message) end
logger()
click to toggle source
# File lib/checkups/checkup.rb, line 91 def logger @logger ||= Checkups.configuration.logger end
need_notification?()
click to toggle source
# File lib/checkups/checkup.rb, line 95 def need_notification? @status_message && NotificationTimer.new(@notify_frequency, @status).now? end
notifier()
click to toggle source
# File lib/checkups/checkup.rb, line 87 def notifier @notifier ||= Checkups.configuration.notifier end
ok()
click to toggle source
# File lib/checkups/checkup.rb, line 64 def ok set_status(:ok, nil) end
send_notification()
click to toggle source
# File lib/checkups/checkup.rb, line 81 def send_notification puts "#{status}#{status_message ? ': ' + status_message : ''}" if verbose notifier.notify(self) if need_notification? end
set_status(status, message)
click to toggle source
# File lib/checkups/checkup.rb, line 99 def set_status(status, message) @status_message = message @status = status end
warning(message)
click to toggle source
# File lib/checkups/checkup.rb, line 72 def warning(message) set_status(:warning, message) end
Also aliased as: warn