Sha256: 3b5ebb9ae90ce288814acd661b24825d0b17851445f3e0c489ccfb3ff9a8f3f1

Contents?: true

Size: 1.25 KB

Versions: 3

Compression:

Stored size: 1.25 KB

Contents

module IsItWorking
  # This class is used to pass the status of a monitoring check. Each status can have multiple
  # messages added to it by calling the +ok+ or +fail+ methods. The status check will only be
  # considered a success if all messages are ok.
  class Status
    # This class is used to contain individual status messages. Eache method can represent either
    # and +ok+ message or a +fail+ message.
    class Message
      attr_reader :message

      def initialize(message, ok)
        @message = message
        @ok = ok
      end

      def ok?
        @ok
      end
    end

    # The name of the status check for display purposes.
    attr_reader :name

    # The messages set on the status check.
    attr_reader :messages

    # The amount of time it takes to complete the status check.
    attr_accessor :time

    def initialize(name)
      @name = name
      @messages = []
    end

    # Add a message indicating that the check passed.
    def ok(message)
      @messages << Message.new(message, true)
    end

    # Add a message indicating that the check failed.
    def fail(message)
      @messages << Message.new(message, false)
    end

    # Returns +true+ only if all checks were OK.
    def success?
      @messages.all?{|m| m.ok?}
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
is_it_working-1.1.0 lib/is_it_working/status.rb
is_it_working-1.0.11 lib/is_it_working/status.rb
is_it_working-1.0.10 lib/is_it_working/status.rb