Improve verbose mode output formatting
This commit is contained in:
parent
8291f1bcfd
commit
332bb1a416
@ -31,3 +31,12 @@ Feature: CLI verbose option
|
|||||||
"""
|
"""
|
||||||
When I successfully execute the recipe with option -v
|
When I successfully execute the recipe with option -v
|
||||||
Then the output must match /say_hello.+ action: echo/
|
Then the output must match /say_hello.+ action: echo/
|
||||||
|
|
||||||
|
Scenario: formats message with our simple logger
|
||||||
|
Given a recipe with:
|
||||||
|
"""
|
||||||
|
task :say_hello do
|
||||||
|
end
|
||||||
|
"""
|
||||||
|
When I successfully execute the recipe with option -v
|
||||||
|
Then the output must match /\ATask:.+say_hello.*\n.*condition/
|
||||||
|
@ -28,6 +28,7 @@ require 'producer/core/condition'
|
|||||||
require 'producer/core/condition/dsl'
|
require 'producer/core/condition/dsl'
|
||||||
require 'producer/core/env'
|
require 'producer/core/env'
|
||||||
require 'producer/core/errors'
|
require 'producer/core/errors'
|
||||||
|
require 'producer/core/logger_formatter'
|
||||||
require 'producer/core/prompter'
|
require 'producer/core/prompter'
|
||||||
require 'producer/core/recipe'
|
require 'producer/core/recipe'
|
||||||
require 'producer/core/recipe/dsl'
|
require 'producer/core/recipe/dsl'
|
||||||
|
@ -9,9 +9,6 @@ module Producer
|
|||||||
@output = output
|
@output = output
|
||||||
@registry = registry
|
@registry = registry
|
||||||
@remote = remote
|
@remote = remote
|
||||||
@logger = Logger.new(output)
|
|
||||||
|
|
||||||
self.log_level = Logger::ERROR
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def remote
|
def remote
|
||||||
@ -26,6 +23,15 @@ module Producer
|
|||||||
@registry[key] = value
|
@registry[key] = value
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def logger
|
||||||
|
@logger ||= begin
|
||||||
|
logger = Logger.new(output)
|
||||||
|
logger.level = Logger::ERROR
|
||||||
|
logger.formatter = LoggerFormatter.new
|
||||||
|
logger
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def log(message)
|
def log(message)
|
||||||
logger.info message
|
logger.info message
|
||||||
end
|
end
|
||||||
|
9
lib/producer/core/logger_formatter.rb
Normal file
9
lib/producer/core/logger_formatter.rb
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
module Producer
|
||||||
|
module Core
|
||||||
|
class LoggerFormatter < Logger::Formatter
|
||||||
|
def call(severity, datetime, progname, message)
|
||||||
|
message + "\n"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
@ -75,6 +75,10 @@ module Producer::Core
|
|||||||
it 'has a log level of ERROR' do
|
it 'has a log level of ERROR' do
|
||||||
expect(env.log_level).to eq Logger::ERROR
|
expect(env.log_level).to eq Logger::ERROR
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'uses our formatter' do
|
||||||
|
expect(env.logger.formatter).to be_a LoggerFormatter
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '#remote' do
|
describe '#remote' do
|
||||||
|
18
spec/producer/core/logger_formatter_spec.rb
Normal file
18
spec/producer/core/logger_formatter_spec.rb
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
module Producer::Core
|
||||||
|
describe LoggerFormatter do
|
||||||
|
describe '#call' do
|
||||||
|
let(:severity) { double 'severity' }
|
||||||
|
let(:datetime) { double 'datetime' }
|
||||||
|
let(:progname) { double 'progname' }
|
||||||
|
let(:message) { 'some message' }
|
||||||
|
|
||||||
|
subject { described_class.new.call(severity, datetime, progname, message) }
|
||||||
|
|
||||||
|
it 'returns the given message with a line separator' do
|
||||||
|
expect(subject).to eq "#{message}\n"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
x
Reference in New Issue
Block a user