class Urbivore::MessagePacket
Attributes
logger[R]
instance methods
Public Class Methods
logger(logger = nil)
click to toggle source
# File lib/urbivore/message_packet.rb, line 6 def logger(logger = nil) if logger @logger = logger else @logger end end
new(options = {})
click to toggle source
# File lib/urbivore/message_packet.rb, line 19 def initialize(options = {}) @logger = options[:default_level] || self.class.logger || default_logger @default_level = options[:default_level] @message_store = {} unless @logger.ancestors.include?(Urbivore::Logger) raise Urbivore::Exceptions::TypeError.new("MessagePacket expected a Logger") end end
Public Instance Methods
message_collector(message_object)
click to toggle source
# File lib/urbivore/message_packet.rb, line 28 def message_collector(message_object) # it may not matter... but keying these in a hash by level # seems like better design than putting them in a big pile # and using #select---if you generate a massive amount of debugging # info you don't want iterate over all of it just to generate a production # log message, right? @message_store[level] ||= [] # shit like this needs to be made threadsafe @message_store[level] << message_object end
messages(requested = nil)
click to toggle source
# File lib/urbivore/message_packet.rb, line 39 def messages(requested = nil) # pull all desired levels and collate current_levels(requested).map { |level| @levels[level] }.flatten.sort end
submit()
click to toggle source
send self to the logging machine
# File lib/urbivore/message_packet.rb, line 45 def submit if @submitted false else logger.submit(self) @submitted = true end end
submit!()
click to toggle source
as above, but raise exception when trying to submit an already submitted log
# File lib/urbivore/message_packet.rb, line 56 def submit! if @submitted raise Urbivore::Exceptions::RuntimeError.new("MessagePacket already submitted") else submit end end