Console::Config (original) (raw)

Represents a configuration for the traces library.

Definitions

def self.load(path)

Load the configuration from the given path.

Signature

parameter path String

The path to the configuration file.

returns [Config](index.html "Console::Config")

The loaded configuration.

Implementation

def self.load(path)
    config = self.new
    
    if File.exist?(path)
        config.instance_eval(File.read(path), path)
    end
    
    return config
end

def self.default

Load the default configuration.

Signature

returns [Config](index.html "Console::Config")

The default configuration.

Implementation

def self.default
    @default ||= self.load(PATH)
end

def log_level(env = ENV)

Set the default log level based on $DEBUG and $VERBOSE. You can also specify CONSOLE_LEVEL=debug or CONSOLE_LEVEL=info in environment. https://mislav.net/2011/06/ruby-verbose-mode/ has more details about how it all fits together.

Implementation

def log_level(env = ENV)
    Logger.default_log_level(env)
end

def verbose?(env = ENV)

Controls verbose output using $VERBOSE.

Implementation

def verbose?(env = ENV)
    !$VERBOSE.nil? || env["CONSOLE_VERBOSE"]
end

def make_output(io = nil, env = ENV, **options)

Create an output with the given output and options.

Signature

parameter output IO

The output to write log messages to.

parameter env Hash

The environment to read configuration from.

parameter options Hash

Additional options to pass to the output.

returns [Output](../Output/index.html "Console::Output")

The created output.

Implementation

def make_output(io = nil, env = ENV, **options)
    Output.new(io, env, **options)
end

def make_resolver(logger)

Create a resolver with the given logger.

Signature

parameter logger [Logger](../Logger/index.html "Console::Logger")

The logger to set the log levels on.

returns Resolver | Nil

The created resolver.

Implementation

def make_resolver(logger)
    Resolver.default_resolver(logger)
end

def make_logger(io = $stderr, env = ENV, **options)

Create a logger with the given output and options.

Signature

parameter output IO

The output to write log messages to.

parameter env Hash

The environment to read configuration from.

parameter options Hash

Additional options to pass to the logger.

returns [Logger](../Logger/index.html "Console::Logger")

The created logger.

Implementation

def make_logger(io = $stderr, env = ENV, **options)
    if options[:verbose].nil?
        options[:verbose] = self.verbose?(env)
    end
    
    if options[:level].nil?
        options[:level] = self.log_level(env)
    end
    
    output = self.make_output(io, env, **options)
    
    logger = Logger.new(output, **options)
    
    make_resolver(logger)
    
    return logger
end

DEFAULT = self.default

Load the default configuration.