#!/usr/bin/env ruby
class Filter
attr_accessor :toSub, :subbed
def initialize(toSub = "", subbed = "")
@toSub = toSub
@subbed = subbed
end
def filter(str)
str.gsub!(@toSub, @subbed)
end
def Filter.filter(str, toSub, subbed)
return str.gsub!(toSub, subbed)
end
end
class Logger
attr_accessor :filter, :quiteFlag
def initialize
@logA = []
@filter = nil
@quiteFlag = false
end
def addLog(io)
raise ParameterError.new if !io.is_a? IO
@logA << io
end
def print(str)
return if @quiteFlag
str = str.to_s
@filter.filter(str) if !@filter.nil?
@logA.each do |io|
io.print str
end
end
def puts(str)
return if @quiteFlag
str = str.to_s
@filter.filter(str) if !@filter.nil?
@logA.each do |io|
io.puts str
end
end
def closeAll
@logA.each {|l| l.close if (l != $stdout) && (l != $stderr)}
end
def Logger.print(str)
$stdout.print str.to_s
end
def Logger.puts(str)
$stdout.puts str.to_s
end
def Logger.f_puts(filter, str)
str = str.to_s
str.gsub! filter(toSub, filter.subbed)
$stdout.puts str
end
def Logger.f_print(filter, str)
str = str.to_s
str.gsub! filter(toSub, filter.subbed)
$stdout.print str
end
end
class Console
def initialize(io)
raise ParameterError.new if !io.kind_of? IO
@io = io
end
def gets
return @io.readline
end
end