module Output

Constants

DEFAULT_DEVICE
DEFAULT_LOGGER_LEVEL
DEFAULT_PATTERN

Public Class Methods

included(base) click to toggle source
# File lib/output/output.rb, line 8
def self.included(base)
  base.extend ClassMethods
end

Public Instance Methods

add_device(device) click to toggle source
# File lib/output/output.rb, line 175
def add_device(device)
  each_writer do |writer|
    writer.add_device device
  end
  device
end
build_writer(name, level, device_options = nil, message_transformer=nil) click to toggle source
# File lib/output/output.rb, line 44
def build_writer(name, level, device_options = nil, message_transformer=nil)
  device_options ||= {}
  device_options = self.class.device_options.merge device_options
  logger_name = Writer::Naming.fully_qualified(self.class, name)
  writer = Writer.build name, level, message_transformer, self.level, logger_name, device_options
  writer
end
disable() { || ... } click to toggle source
# File lib/output/output.rb, line 12
def disable
  each_writer { |w| w.disable }
  if block_given?
    yield
    enable
  end
end
each_writer() { |writer| ... } click to toggle source
# File lib/output/output.rb, line 52
def each_writer
  self.class.writer_names.each do |name|
    writer = send self.class.writer_attribute(name)
    yield writer
  end
end
enable() click to toggle source
# File lib/output/output.rb, line 20
def enable
  each_writer { |w| w.enable }
end
initial_level?() click to toggle source
# File lib/output/output.rb, line 69
def initial_level?
  level == self.class.logger_level
end
last_method() click to toggle source
# File lib/output/output.rb, line 32
def last_method
  @last_method
end
last_method=(val) click to toggle source
# File lib/output/output.rb, line 36
def last_method=(val)
  @last_method = val
end
last_method?(*methods) click to toggle source
# File lib/output/output.rb, line 40
def last_method?(*methods)
  methods.include? last_method
end
level() click to toggle source
# File lib/output/output.rb, line 59
def level
  @level ||= self.class.logger_level
end
level=(level) click to toggle source
# File lib/output/output.rb, line 63
def level=(level)
  @level = level
  each_writer { |w| w.logger_level = level }
  level
end
levels() click to toggle source
# File lib/output/output.rb, line 73
def levels
  @levels ||= []
end
pop_device() click to toggle source
# File lib/output/output.rb, line 168
def pop_device
  each_writer do |writer|
    writer.pop_device
  end
  nil
end
pop_level() click to toggle source
# File lib/output/output.rb, line 97
def pop_level
  level = levels.shift unless levels.empty?
  self.level = level
  level
end
push_device(device, options = {}, &block) click to toggle source
# File lib/output/output.rb, line 143
def push_device(device, options = {}, &block)
  return device if device.nil?

  return push_device__obj(device, &block) if device.is_a? Logging::Appender

  push_device__opts(type = device, options, &block)
end
push_device__obj(device) { || ... } click to toggle source
# File lib/output/output.rb, line 157
def push_device__obj(device, &block)
  each_writer do |writer|
    writer.push_device device
  end
  if block_given?
    yield
    pop_device
  end
  device
end
push_device__opts(type, options = {}, &block) click to toggle source
# File lib/output/output.rb, line 151
def push_device__opts(type, options = {}, &block)
  options = self.class.device_options.merge(options)
  device = Output::Devices.build_device(type, options)
  push_device__obj device, &block
end
push_level(level) { || ... } click to toggle source
# File lib/output/output.rb, line 85
def push_level(level)
  levels.unshift self.level
  self.level = level

  if block_given?
    yield
    self.level = pop_level
  end
  
  level
end
reset_level() click to toggle source
# File lib/output/output.rb, line 77
def reset_level
  @level = self.class.logger_level

  each_writer do |writer|
    writer.reset_level
  end
end
suspend_devices(device, &block) click to toggle source
# File lib/output/output.rb, line 103
def suspend_devices(device, &block)
  return suspend_devices__obj(device, &block) if device.is_a? Logging::Appender
  suspend_devices__name device, &block
end
suspend_devices__device_selector(device_selector) { || ... } click to toggle source
# File lib/output/output.rb, line 118
def suspend_devices__device_selector(device_selector, &block)
  suspensions = []

  each_writer do |writer|
    device = device_selector.call writer
    suspension = Writer::DeviceSuspension.new writer, device
    suspensions << suspension
    suspension.suspend
  end

  yield

  suspensions.each { |suspension| suspension.restore }
end
suspend_devices__name(name, &block) click to toggle source
# File lib/output/output.rb, line 113
def suspend_devices__name(name, &block)
  device_selector = ->(writer) { writer.device name }
  suspend_devices__device_selector device_selector, &block
end
suspend_devices__obj(device, &block) click to toggle source
# File lib/output/output.rb, line 108
def suspend_devices__obj(device, &block)
  device_selector = ->(writer) { device }
  suspend_devices__device_selector device_selector, &block
end
to_s() click to toggle source
# File lib/output/output.rb, line 133
def to_s
  details = "Output : #{self.class.name} - Object Id:#{self.object_id}\n"
  details << "Level: #{self.level}\n"
  details << "Writer Details: \n"
  each_writer do |writer|
    details << "#{writer.to_s}\n"
  end
  details
end
write(method, message) click to toggle source
# File lib/output/output.rb, line 24
def write(method, message)
  send method, message
end
writer(name) click to toggle source
# File lib/output/output.rb, line 28
def writer(name)
  send self.class.writer_attribute(name)
end