require 'configuration' require 'check' require 'database_check' require 'website_check' class Checks @@config = "checks.yml" def self.config Configuration.load(@@config) end def initialize @checks = [] end def reload_config return unless !@config || @config.stale? @config ||= self.class.config @checks = @config.map do |check| Kernel.const_get(check[:class]).new(check) end end def check reload_config threads = @checks.map {|check| Thread.new { check.do_it } } threads.each(&:join) end def passed? @checks.map(&:passed?).uniq == [ true ] end def results @checks end end