class Pebble::Watch::LogEvent

Attributes

filename[RW]
level[RW]
linenumber[RW]
message[RW]
timestamp[RW]

Public Class Methods

parse(raw_message) click to toggle source
# File lib/pebble/watch/log_event.rb, line 10
def self.parse(raw_message)
  return nil if raw_message.length < 8

  timestamp, level, message_size, linenumber = raw_message[0, 8].unpack("L>CCS>")
  filename  = raw_message[8, 16]
  message   = raw_message[24, message_size]

  log_levels = {
    1   => :error,
    50  => :warning,
    100 => :info,
    200 => :debug,
    250 => :verbose
  }

  event = new

  event.timestamp   = Time.at(timestamp)
  event.level       = log_levels[level] || :unknown
  event.linenumber  = linenumber
  event.filename    = filename
  event.message     = message

  event
end

Public Instance Methods

inspect() click to toggle source
# File lib/pebble/watch/log_event.rb, line 36
def inspect
  "[#{self.level.to_s.capitalize}] #{self.message}"
end