Config::Model::Annotation(3pm)

Config::Model::Annotation3pm

Read and write configuration annotations

Usage

 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

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:

•

"/var/lib/config-model/<model_name>-note.yml" for root (EUID == 0)

•

"~/.config-model/<model_name>-note.yml" for normal user (EUID > 0)

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.

Releases

8 releases since Debian 6.0 (Squeeze); the text changed 7 times.

  1. 6.0
  2. 7
  3. 8
  4. 9
  5. 10
  6. 11
  7. 12
  8. 13

Author

Dominique Dumont, (ddumont at cpan dot org)

Author

Dominique Dumont

From libconfig-model-perl 2.155-1 in Debian 13 (Trixie). Parsed by carta from the page's man source.