lib/amp/support/logger.rb in amp-0.5.2 vs lib/amp/support/logger.rb in amp-0.5.3

- old
+ new

@@ -1,20 +1,19 @@ require 'delegate' require 'logger' module Amp module Support + LOGGER_LEVELS = [:warn, :info, :fatal, :error, :debug] module SingletonLogger attr_accessor :singleton_object def global_logger singleton_object end - def warn(*args); global_logger.warn(*args); end - def info(*args); global_logger.info(*args); end - def fatal(*args); global_logger.fatal(*args); end - def error(*args); global_logger.error(*args); end - def debug(*args); global_logger.debug(*args); end + LOGGER_LEVELS.each do |message| + define_method(message) { |*args| global_logger.send(message, *args) } + end def method_missing(meth, *args, &block) if global_logger.respond_to?(meth) global_logger.__send__(meth, *args, &block) else @@ -26,15 +25,13 @@ class IOForwarder def initialize(output) @output = output end - def warn(input); @output.puts(input); end - def info(input); @output.puts(input); end - def fatal(input); @output.puts(input); end - def error(input); @output.puts(input); end - def debug(input); @output.puts(input); end + LOGGER_LEVELS.each do |message| + define_method(message) {|input| @output.puts(input) } + end end class Logger < DelegateClass(::Logger) extend SingletonLogger @@ -70,15 +67,12 @@ def outdent @indent -= 1 self end - def warn(input); @source.warn( "\t\t"*@indent + input); self; end - def info(input); @source.info( "\t\t"*@indent + input); self; end - def fatal(input); @source.fatal("\t\t"*@indent + input); self; end - def error(input); @source.error("\t\t"*@indent + input); self; end - def debug(input); @source.debug("\t\t"*@indent + input); self; end - + LOGGER_LEVELS.each do |message| + define_method(message) { |input| @source.send(message, "\t\t"*@indent + input); self } + end def level=(level) receiver = @source case level when :warn \ No newline at end of file