NAME
Config::Context::ConfigGeneral - Use Config::General (Apache-style) config files with Config::Context
SYNOPSIS
use Config::Context;
my $config_text = '
<Location /users>
title = "User Area"
</Location>
<LocationMatch \.*(jpg|gif|png)$>
image_file = 1
</LocationMatch>
';
my $conf = Config::Context->new(
string => $config_text,
driver => 'ConfigGeneral',
match_sections => [
{
name => 'Location',
match_type => 'path',
},
{
name => 'LocationMatch',
match_type => 'regex',
},
],
);
my %config = $conf->context('/users/~mary/index.html');
use Data::Dumper;
print Dumper(\%config);
--------
$VAR1 = {
'title' => 'User Area',
'image_file' => undef,
};
my %config = $conf->getall_matching('/users/~biff/images/flaming_logo.gif');
print Dumper(\%config);
--------
$VAR1 = {
'title' => 'User Area',
'image_file' => 1,
};
DESCRIPTION
This module uses Config::General
to parse Apache-style config files for Config::Context
. See the Config::Context
docs for more information.
DEFAULT OPTIONS
In addition to the options normally enabled by Config::Scoped, the following options are turned on by default:
-MergeDuplicateBlocks => 1
-MergeDuplicateOptions => 1
-IncludeRelative => 1
You can change this behaviour by passing a different value to driver_params
to new
:
my $conf = Config::Context->new(
driver => 'ConfigGeneral',
driver_options => {
ConfigGeneral = > {
-MergeDuplicateBlocks => 0,
},
},
);
CONSTRUCTOR
new(...)
my $driver = Config::Context::ConfigGeneral->new(
file => $config_file,
lower_case_names => 1, # optional
options => {
# ...
}
);
or:
my $driver = Config::Context::ConfigGeneral->new(
string => $config_string,
lower_case_names => 1, # optional
options => {
# ...
}
);
Returns a new driver object, using the provided options.
METHODS
parse()
Returns the data structure for the parsed config.
files()
Returns a list of all the config files read, including any config files included in the main file.
config_modules
Returns the modules used to parse the config. In this case: Config::General
CAVEATS
Don't quote block names
Instead of:
<Location '/foo'>
</Location>
Use:
<Location /foo>
</Location>
SEE ALSO
Config::Context
CGI::Application::Plugin::Config::Context
Config::General
COPYRIGHT & LICENSE
Copyright 2004-2005 Michael Graham, All Rights Reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.