logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Config::Model::Describe - Provide a description of a node element

Author

       Dominique Dumont

Constructor

new
       No parameter. The constructor should be used only by Config::Model::Node.

Description

       This module is used directly by Config::Model::Node to describe a node element. This module returns a
       human readable string that shows the content of a configuration node.

       For instance (as shown by "fstab" example:

        name         type         value        comment
        fs_spec      string       [undef]      mandatory
        fs_vfstype   enum         [undef]      choice: auto davfs ext2 ext3 swap proc iso9660 vfat ignore, mandatory
        fs_file      string       [undef]      mandatory
        fs_freq      boolean      0
        fs_passno    integer      0

       This module is also used by the "ll" command of Config::Model::TermUI.

Methods

describe
       Return a description string.

       Parameters are:

       node
           Reference to a Config::Model::Node object. Mandatory

       element
           Describe only this element from the node. Optional. All elements are described if omitted.

       pattern
           Describe the element matching the regexp ref. Example:

            describe => ( pattern => qr/^foo/ )

       hide_empty
           Boolean. Whether to hide empty value (i.e. "undef" or '') or not. Default is false.

       verbose
           Boolean. Display more information with each element. Default is false.

Name

       Config::Model::Describe - Provide a description of a node element

See Also

       Config::Model,Config::Model::Node,Config::Model::ObjTreeScanner

Synopsis

        use Config::Model;

        # define configuration tree object
        my $model = Config::Model->new;
         $model->create_config_class(
           name    => "Foo",
           element => [
               [qw/foo bar/] => {
                   type       => 'leaf',
                   value_type => 'string'
               },
           ]
        );
        $model ->create_config_class (
           name => "MyClass",

           element => [

               [qw/foo bar/] => {
                   type       => 'leaf',
                   value_type => 'string'
               },
               hash_of_nodes => {
                   type       => 'hash',     # hash id
                   index_type => 'string',
                   cargo      => {
                       type              => 'node',
                       config_class_name => 'Foo'
                   },
               },
           ],
        ) ;

        my $inst = $model->instance(root_class_name => 'MyClass' );

        my $root = $inst->config_root ;

        # put data
        my $steps = 'foo=FOO hash_of_nodes:fr foo=bonjour -
          hash_of_nodes:en foo=hello ';
        $root->load( steps => $steps );

        print $root->describe ;

        ### prints
        # name          type       value          comment
        # foo           string     FOO
        # bar           string     [undef]
        # hash_of_nodes node hash  <Foo>          keys: "en" "fr"

Version

       version 2.155

See Also