Config::Model::Annotation - Read and write configuration annotations
version 2.152
use Config::Model ;
# define configuration tree object
my $model = Config::Model->new ;
$model ->create_config_class (
name => "MyClass",
element => [
[qw/foo bar/] => {
type => 'leaf',
value_type => 'string'
},
baz => {
type => 'hash',
index_type => 'string' ,
cargo => {
type => 'leaf',
value_type => 'string',
},
},
],
) ;
my $inst = $model->instance(root_class_name => 'MyClass' );
my $root = $inst->config_root ;
# put some data in config tree the hard way
$root->fetch_element('foo')->store('yada') ;
$root->fetch_element('baz')->fetch_with_id('en')->store('hello') ;
# put annotation the hard way
$root->fetch_element('foo')->annotation('english') ;
$root->fetch_element('baz')->fetch_with_id('en')->annotation('also english') ;
# put more data the easy way
my $steps = 'baz:fr=bonjour#french baz:hr="dobar dan"#croatian';
$root->load( steps => $steps ) ;
# dump resulting tree with annotations
print $root->dump_tree;
# save annotations
my $annotate_saver = Config::Model::Annotation
-> new (
config_class_name => 'MyClass',
instance => $inst ,
root_dir => '/tmp/', # for test
) ;
$annotate_saver->save ;
# now check content of /tmp/config-model/MyClass-note.pl
This module provides an object that read and write annotations (a bit like
comments) to and from a configuration tree and save them in a file (not
configuration file). This module can be used to save annotation for
configuration files that do not support comments.
THis module should not be used for configuration files that support comments.
Depending on the effective id of the process, the annotation is saved in:
- •
- "/var/lib/config-model/<model_name>-note.yml"
for root (EUID == 0)
- •
- "~/.config-model/<model_name>-note.yml" for
normal user (EUID > 0)
Quite standard. The constructor is passed a Config::Model::Instance object.
Save annotations in a file (See DESCRIPTION)
Loads annotations from a file (See DESCRIPTION)
This module is currently not used.
Dominique Dumont, (ddumont at cpan dot org)
Config::Model, Config::Model::Node, Config::Model::Loader,
Config::Model::Searcher, Config::Model::Value,
Dominique Dumont
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