Implement verbose mode

This commit is contained in:
Thibault Jouan
2015-04-09 11:17:26 +00:00
parent 404b34acc0
commit 254efe4f74
7 changed files with 64 additions and 11 deletions

View File

@@ -48,6 +48,11 @@ module Uh
@env.print opts
exit
end
opts.on '-v', '--version', 'enable verbose mode' do
@env.verbose = true
@env.log_logger_level
end
end
end
end

View File

@@ -1,26 +1,33 @@
module Uh
module WM
class Env
LOGGER_LEVEL = Logger::WARN
LOGGER_LEVEL_VERBOSE = Logger::INFO
LOGGER_LEVEL_STRINGS = %w[DEBUG INFO WARN ERROR FATAL UNKNOWN]
extend Forwardable
def_delegator :@logger, :info, :log
def_delegator :logger, :info, :log
def_delegator :@output, :print
attr_reader :output, :logger
attr_reader :output
attr_accessor :verbose
def initialize output, logger: Logger.new(output)
def initialize output
@output = output
@logger = logger
end
def verbose?
!!@verbose
end
def logger
@logger ||= Logger.new(@output).tap do |o|
o.level = verbose? ? LOGGER_LEVEL_VERBOSE : LOGGER_LEVEL
end
end
def log_logger_level
log "Logging at #{LOGGER_LEVEL_STRINGS[@logger.level]} level"
log "Logging at #{LOGGER_LEVEL_STRINGS[logger.level]} level"
end
end
end