Sha256: 7585b5b61e69093d06724eebd6bf1bb17cf97e55c8ec4da28c2c1ba667921f9f
Contents?: true
Size: 1.74 KB
Versions: 5
Compression:
Stored size: 1.74 KB
Contents
# -*- coding: utf-8 -*- # # Copyright 2013 whiteleaf. All rights reserved. # require "singleton" require "stringio" require_relative "color" if $disable_color class String def termcolor self.gsub(/<\/?.+?>/, "").gsub("<", "<").gsub(">", ">") end end end module LoggerModule def initialize super @is_silent = false end def silent=(enable) @is_silent = !!enable end def silent @is_silent end def silence(&block) raise "need a block" unless block tmp = self.silent self.silent = true block.call self.silent = tmp end def strip_color(str) if $disable_color str else str.gsub(/(?:\e\[\d*[a-zA-Z])+/, "") end end def save(path) File.write(path, string) end def write_console(str, target) unless @is_silent if $disable_color target.write(str) else write_color(str, target) end end end end class Logger < StringIO include Singleton include LoggerModule def self.get instance end def write(str) str = str.to_s if str.encoding == Encoding::ASCII_8BIT str.force_encoding(Encoding::UTF_8) end super(strip_color(str)) write_console(str, STDOUT) end end class LoggerError < StringIO include Singleton include LoggerModule def self.get instance end def write(str) str = str.to_s if str.encoding == Encoding::ASCII_8BIT str.force_encoding(Encoding::UTF_8) end super(strip_color(str)) write_console(str, STDERR) end end def error(str) warn "<red>[ERROR]</red> #{str}".termcolor end $stdout = Logger.get $stderr = LoggerError.get
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
narou-1.5.11 | lib/logger.rb |
narou-1.5.10.1 | lib/logger.rb |
narou-1.5.10 | lib/logger.rb |
narou-1.5.9 | lib/logger.rb |
narou-1.5.8 | lib/logger.rb |