Merge pull request #3244 from jekyll/store-messages

This commit is contained in:
Parker Moore 2014-12-29 20:48:23 -05:00
commit 7cd5847826
2 changed files with 26 additions and 2 deletions

View File

@ -1,6 +1,6 @@
module Jekyll module Jekyll
class LogAdapter class LogAdapter
attr_reader :writer attr_reader :writer, :messages
LOG_LEVELS = { LOG_LEVELS = {
:debug => ::Logger::DEBUG, :debug => ::Logger::DEBUG,
@ -16,6 +16,7 @@ module Jekyll
# #
# Returns nothing # Returns nothing
def initialize(writer, level = :info) def initialize(writer, level = :info)
@messages = []
@writer = writer @writer = writer
self.log_level = level self.log_level = level
end end
@ -87,7 +88,9 @@ module Jekyll
# #
# Returns the formatted message # Returns the formatted message
def message(topic, 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 end
# Internal: Format the topic # Internal: Format the topic

View File

@ -3,6 +3,11 @@ require 'helper'
class TestLogAdapter < Test::Unit::TestCase class TestLogAdapter < Test::Unit::TestCase
class LoggerDouble class LoggerDouble
attr_accessor :level attr_accessor :level
def debug(*); end
def info(*); end
def warn(*); end
def error(*); end
end end
context "#log_level=" do context "#log_level=" do
@ -56,4 +61,20 @@ class TestLogAdapter < Test::Unit::TestCase
assert_raise(SystemExit) { logger.abort_with('topic', 'log message') } assert_raise(SystemExit) { logger.abort_with('topic', 'log message') }
end end
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 end