Provided by: libconfig-model-perl_2.047-1_all bug

NAME

       Config::Model::Annotation - Read and write configuration annotations

VERSION

       version 2.047

SYNOPSIS

        use Config::Model ;
        use Log::Log4perl qw(:easy) ;
        Log::Log4perl->easy_init($WARN);

        # 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 $step = 'baz:fr=bonjour#french baz:hr="dobar dan"#croatian';
        $root->load( step => $step ) ;

        # 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

DESCRIPTION

       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)

       Depending on the effective id of the process, the annotation will be 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)

AUTHOR

       Dominique Dumont, (ddumont at cpan dot org)

SEE ALSO

       Config::Model, Config::Model::Node, Config::Model::Loader, Config::Model::Searcher,
       Config::Model::Value,

AUTHOR

       Dominique Dumont

COPYRIGHT AND LICENSE

       This software is Copyright (c) 2013 by Dominique Dumont.

       This is free software, licensed under:

         The GNU Lesser General Public License, Version 2.1, February 1999