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::TreeSearcher - Search tree for match in value, description...

Author

       Dominique Dumont

Bugs

       Creating  a  class with just one search method may be overkill. OTOH, it may be extended later to provide
       iterative search.

Constructor

new(type=>[value|description...])
       Creates a new searcher object. The "type" parameter can be:

       element
       value
       key
       summary
       description
       help
       all Search in all the items above

Description

       This class provides a way to search the content of a configuration tree.  Given a keyword or a pattern,
       the search method scans the tree to find a value, a description or anything that match the given pattern
       (or keyword).

Methods

search
       Parameters: "(keyword)"

       Search  the  keyword  or  pattern in the tree. The search is done in a case insensitive manner. Returns a
       list of path pointing to the matching tree elements. See "grab" in Config::Model::Role::Grab for  details
       on the path syntax.

Name

       Config::Model::TreeSearcher - Search tree for match in value, description...

See Also

       Config::Model, Config::Model::SearchElement, Config::Model::AnyThing

Synopsis

        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 ;

        my $steps = 'baz:fr=bonjour baz:hr="dobar dan" foo="journalled"';
        $root->load( steps => $steps ) ;

        my @result = $root->tree_searcher(type => 'value')->search('jour');
        print join("\n",@result),"\n" ;
        # print
        #  baz:fr
        #  foo

Version

       version 2.155

See Also