Config-Model
view release on metacpan or search on metacpan
lib/Config/Model/Value/LayeredInclude.pm view on Meta::CPAN
my $already_in_layered = $i->layered;
# layered stuff here
if ( not $already_in_layered ) {
$i->layered_clear;
$i->layered_start;
}
{
## no critic (TestingAndDebugging::ProhibitNoWarnings)
no warnings 'uninitialized';
$logger->debug("Loading layered config from $value (old_data is $old_value)");
}
# load included file in layered mode
$self->root->read_config_data(
# check => 'no',
config_file => $value,
auto_create => 0, # included file must exist
);
if ( not $already_in_layered ) {
$i->layered_stop;
}
# test if already in layered mode -> if no, clear layered,
$logger->debug("Done loading layered config from $value");
return $value;
};
1;
# ABSTRACT: Include a sub layer configuration
__END__
=pod
=encoding UTF-8
=head1 NAME
Config::Model::Value::LayeredInclude - Include a sub layer configuration
=head1 VERSION
version 2.162
=head1 SYNOPSIS
# in a model declaration:
'element' => [
'include' => {
'class' => 'Config::Model::Value::LayeredInclude',
# usual Config::Model::Value parameters
'type' => 'leaf',
'value_type' => 'uniline',
'convert' => 'lc',
'summary' => 'Include file for cascaded configuration',
'description' => 'To support multiple variants of ...'
},
]
=head1 DESCRIPTION
This class inherits from L<Config::Model::Value>. It overrides
L<_store> to trigger a refresh of layered value when a value is
changed. I.e. changing this value trigger a reload of the referred
configuration file which values are used as default value. This class
was designed to cope with late multistrap configuration.
=head2 CAUTION
A configuration file can support 2 kinds of include:
=over
=item *
Layered include which sets default values like default values for ssh
configuration. These includes are read-only.
=item *
Real includes like C<apache>. In this cases modified configuration items can be written to
included files.
=back
This class works only with the first type
=head1 AUTHOR
Dominique Dumont
=head1 COPYRIGHT AND LICENSE
This software is Copyright (c) 2005-2022 by Dominique Dumont.
This is free software, licensed under:
The GNU Lesser General Public License, Version 2.1, February 1999
=cut
( run in 0.575 second using v1.01-cache-2.11-cpan-39bf76dae61 )