class SimplyGenius::Atmos::Logging::CaptureStream

Public Class Methods

new(logger_name, appender, stream, color=nil) click to toggle source
Calls superclass method
# File lib/simplygenius/atmos/logging.rb, line 27
def initialize(logger_name, appender, stream, color=nil)
  super(stream)
  @color = stream.tty? && color ? color : nil
  @logger = ::Logging.logger[logger_name]
  @logger.appenders = [appender]
  @logger.additive = false
end

Public Instance Methods

strip_color(str) click to toggle source
# File lib/simplygenius/atmos/logging.rb, line 35
def strip_color(str)
  str.gsub(/\e\[\d+m/, '')
end
write(data) click to toggle source
Calls superclass method
# File lib/simplygenius/atmos/logging.rb, line 39
def write(data)
  @logger.info(strip_color(data))
  if @color
    count = 0
    d = data.lines.each do |l|
      cl = Kernel.send(:Rainbow, l).send(@color)
      count += super(cl)
    end
    return count
  else
    return super(data)
  end
end