class ExtendedLogger

Constants

Logger
Message

Attributes

clock[W]
label[RW]
level[W]
sink[R]

Public Class Methods

build(device=nil, level: nil, **sink_arguments) click to toggle source
# File lib/extended_logger/extended_logger.rb, line 11
def self.build device=nil, level: nil, **sink_arguments
  sink = self.sink device: device, **sink_arguments

  instance = new sink
  instance.level = level if level
  instance
end
define(levels=nil, **sink_defaults) click to toggle source
# File lib/extended_logger/define.rb, line 2
def self.define levels=nil, **sink_defaults
  levels ||= Defaults.levels

  subclass = Class.new self
  Define.(subclass, levels, sink_defaults)
  subclass
end
empty_message() click to toggle source
# File lib/extended_logger/extended_logger.rb, line 19
def self.empty_message
  '<empty message>'
end
levels() click to toggle source
# File lib/extended_logger/extended_logger.rb, line 23
def self.levels
end
new(sink) click to toggle source
# File lib/extended_logger/extended_logger.rb, line 7
def initialize sink
  @sink = sink
end
sink(device: nil, **sink_arguments) click to toggle source
# File lib/extended_logger/extended_logger.rb, line 26
def self.sink device: nil, **sink_arguments
  sink_arguments = sink_defaults.merge sink_arguments

  sink_arguments[:levels] ||= levels if levels

  Sink.build device, **sink_arguments
end
sink_defaults() click to toggle source
# File lib/extended_logger/extended_logger.rb, line 34
def self.sink_defaults
  {}
end

Public Instance Methods

<<(message) click to toggle source
# File lib/extended_logger/extended_logger.rb, line 38
def << message
  sink << message
end
add(level, prose=nil, label: nil, &block) click to toggle source
# File lib/extended_logger/extended_logger.rb, line 42
def add level, prose=nil, label: nil, &block
  block ||= ->{ prose }
  label ||= self.label

  time = clock.now

  message = Message.new block, level, time, label

  self << message
end
clock() click to toggle source
# File lib/extended_logger/extended_logger.rb, line 53
def clock
  @clock ||= Time
end
device() click to toggle source
# File lib/extended_logger/extended_logger.rb, line 57
def device
  sink.device
end
level() click to toggle source
# File lib/extended_logger/extended_logger.rb, line 61
def level
  sink.level
end
lower_verbosity() click to toggle source
# File lib/extended_logger/extended_logger.rb, line 69
def lower_verbosity
  sink.lower_verbosity
end
raise_verbosity() click to toggle source
# File lib/extended_logger/extended_logger.rb, line 73
def raise_verbosity
  sink.raise_verbosity
end