diff --git a/lib/jekyll/log_adapter.rb b/lib/jekyll/log_adapter.rb index 63e23fcd..46e0fe1f 100644 --- a/lib/jekyll/log_adapter.rb +++ b/lib/jekyll/log_adapter.rb @@ -1,6 +1,6 @@ module Jekyll class LogAdapter - attr_reader :writer + attr_reader :writer, :messages LOG_LEVELS = { :debug => ::Logger::DEBUG, @@ -16,6 +16,7 @@ module Jekyll # # Returns nothing def initialize(writer, level = :info) + @messages = [] @writer = writer self.log_level = level end @@ -87,7 +88,9 @@ module Jekyll # # Returns the formatted message def message(topic, message) - formatted_topic(topic) + message.to_s.gsub(/\s+/, ' ') + msg = formatted_topic(topic) + message.to_s.gsub(/\s+/, ' ') + messages << msg + msg end # Internal: Format the topic diff --git a/test/test_log_adapter.rb b/test/test_log_adapter.rb index 3dd3465e..71272569 100644 --- a/test/test_log_adapter.rb +++ b/test/test_log_adapter.rb @@ -3,6 +3,11 @@ require 'helper' class TestLogAdapter < Test::Unit::TestCase class LoggerDouble attr_accessor :level + + def debug(*); end + def info(*); end + def warn(*); end + def error(*); end end context "#log_level=" do @@ -56,4 +61,20 @@ class TestLogAdapter < Test::Unit::TestCase assert_raise(SystemExit) { logger.abort_with('topic', 'log message') } end end + + context "#messages" do + should "return an array" do + assert_equal [], Jekyll::LogAdapter.new(LoggerDouble.new).messages + end + + should "store each log value in the array" do + logger = Jekyll::LogAdapter.new(LoggerDouble.new) + values = %w{one two three four} + logger.debug(values[0]) + logger.info(values[1]) + logger.warn(values[2]) + logger.error(values[3]) + assert_equal values.map { |value| "#{value} ".rjust(20) }, logger.messages + end + end end