bluepill-rb/bluepill

View on GitHub
lib/bluepill/process_statistics.rb

Summary

Maintainability
A
0 mins
Test Coverage
module Bluepill
  class ProcessStatistics
    STRFTIME = '%m/%d/%Y %H:%I:%S'.freeze
    EVENTS_TO_PERSIST = 10

    attr_reader :events

    # possibly persist this data.
    def initialize
      @events = Util::RotationalArray.new(EVENTS_TO_PERSIST)
    end

    def record_event(event, reason)
      events.push([event, reason, Time.now])
    end

    def to_s
      str = events.reverse.collect do |(event, reason, time)|
        "  #{event} at #{time.strftime(STRFTIME)} - #{reason || 'unspecified'}"
      end.join("\n")

      "event history:\n#{str}"
    end
  end
end