NAME
Crane::Config - Configuration manager
SYNOPSIS
use Crane::Config;
my $filename = config->{'log'}->{'filename'};
DESCRIPTION
Configuration manager which operates with YAML configurations. Settings are available as a hash reference returned by config function.
You can specify default configuration and filename by passing it to config function when first call (see description below).
EXPORTED FUNCTIONS
- config ($config, @filenames)
-
Returns link to current configuration.
At first call you can specify default configuration $config and/or list of config file names @filenames.
FUNCTIONS
- merge_config ($original, $config)
-
Merge two configs ($config to $original).
- read_config ($filename)
-
Reads confugration from file named $filename.
- write_config ($config, $filename)
-
Saves configuration $config to file named $filename.
- load_config ($config, @filenames)
-
Load configurations from files named @filenames and merges them to configuration $config and default configuration.
ERRORS
- Incorrect syntax in '%s': %s
-
Where %s is file name and %s is error message.
Invalid YAML configuration file.
- Unable to read config '%s': %s
-
Where %s is file name and %s is error message.
Fires when unable to open configuration for read.
- Unable to write config '%s': %s
-
Where %s is file name and %s is error message.
Fires when unable to open configuration for write.
- YAML error while writing '%s': %s
-
Where %s is file name and %s is error message.
- Configuration should be a hash reference
-
Fires when function required hash reference as a configuration.
- No filename given
-
Fires when function required name of file but it is undefined.
EXAMPLES
Configuration file
domain: "production"
log:
level: 0
filename: "/var/log/example/messages.log"
error_filename: "/var/log/example/errors.log"
servers:
- "127.0.0.1:3001"
- "127.0.0.1:3002"
Which results to hash reference:
{
'domain' => 'production',
'log' => {
'level' => '0',
'filename' => '/var/log/example/messages.log',
'error_filename' => '/var/log/example/errors.log',
},
'servers' => [
'127.0.0.1:3001',
'127.0.0.1:3002',
],
}
ENVIRONMENT
See Crane::Base.
FILES
BUGS
Please report any bugs or feature requests to https://rt.cpan.org/Public/Bug/Report.html?Queue=Crane or to https://github.com/temoon/crane/issues.
AUTHOR
Tema Novikov, <novikov.tema@gmail.com>
COPYRIGHT AND LICENSE
Copyright (C) 2013-2014 Tema Novikov.
This library is free software; you can redistribute it and/or modify it under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE.