Config::Model::Annotation3pm
Read and write configuration annotations
Usage
use Config::Model ;# define configuration tree objectmy $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 waymy $steps = 'baz:fr=bonjour#french baz:hr="dobar dan"#croatian';$root->load( steps => $steps ) ;# dump resulting tree with annotationsprint $root->dump_tree;# save annotationsmy $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
Version
version 2.155
Overview
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:
•
|
|
|---|---|
•
|
|
Constructor
Quite standard. The constructor is passed a Config::Model::Instance object.
Methods
save
Save annotations in a file (See DESCRIPTION)
load
Loads annotations from a file (See DESCRIPTION)
Caveats
This module is currently not used.
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
Releases
8 releases since Debian 6.0 (Squeeze); the text changed 7 times.