def run
      statuses = []
      execute
      # Response_pair contains the expectation as key and the expected value as
      # value.
      # Example: {:response_time => 200}
      #
      # status is the status (:up, :down or :warning, for example) that will be returned
      # in case the expectation match current system status.
      if @config.reports && !@config.reports.empty?
        @config.reports.each do |response_pair, status|
          response_pair.each do |expectation, value|
            if self.class.expectations[expectation].nil?
              message = "expectation '#{expectation}' wasn't implemented by #{self.class.name}"
              raise NotImplementedError, message
            end

            if self.class.expectations[expectation].call(self, value)
              statuses << status
            end
          end
        end
      end

      gather_reporting_data
      Report.summarize(statuses)
    end
def run
      statuses = []
      execute
      # Response_pair contains the expectation as key and the expected value as
      # value.
      # Example: {:response_time => 200}
      #
      # status is the status (:up, :down or :warning, for example) that will be returned
      # in case the expectation match current system status.
      if @config.reports && !@config.reports.empty?
        @config.reports.each do |response_pair, status|
          response_pair.each do |expectation, value|
            if self.class.expectations[expectation].nil?
              message = "expectation '#{expectation}' wasn't implemented by #{self.class.name}"
              raise NotImplementedError, message
            end

            if self.class.expectations[expectation].call(self, value)
              statuses << status
            end
          end
        end
      end

      gather_reporting_data
      Report.summarize(statuses)
    end
@param [String, #read] description A string containing a description of
   the Scout so it may be identified in the construction of status reports.
 @param [Hash, #read] config A hash containing any number of
   configurations that will be passed to the #setup method
 Executes the Scout and go through all the registered expectations to find
 out all expectations that match and return the associated status.

 @return [Symbol] the current status of the Scout (:up, :down, :warning)
 @raise [NotImplementedError] raised when a configured expectation was not
   registered in the Scout.