Log inRegister

PerlDoc

See PublishedAPI for packages intended to be used by Plugin and Contrib authors, or browse all packages.
See also Developing plugins, Developer's Bible, Technical Overview


Parent package: Foswiki::Contrib::DBCacheContrib
Child packages:

    On this page:

    internal package Foswiki::Contrib::DBCacheContrib::Search

    Search operators work on the fields of a Foswiki::Contrib::DBCacheContrib::Map.

    Example

    Get a list of attachments that have a date earlier than 1st January 2000
      $db = new Foswiki::Contrib::DBCacheContrib::DBCache( $web ); # always done
      $db->load();
      my $search = new Foswiki::Contrib::DBCacheContrib::Search("date EARLIER_THAN '1st January 2000'");
    
      foreach my $topic ($db->getKeys()) {
         my $attachments = $topic->fastget("attachments");
         foreach my $val ($attachments->getValues()) {
           if ($search->matches($val)) {
              print $val->fastget("name") . "\n";
           }
         }
      }
    

    A search object implements the "matches" method as its general contract with the rest of the world.

    new($string)

    • $string - string containing an expression to parse
    Construct a new search node by parsing the passed expression.

    toString() → string

    Generates a string representation of the object.

    --+++ =addOperator(%oper) Add an operator to the parser

    %oper is a hash, containing the following fields:
    • name - operator string
    • prec - operator precedence, positive non-zero integer. Larger number => higher precedence.
    • arity - set to 1 if this operator is unary, 2 for binary. Arity 0 is legal, should you ever need it.
    • exec - the handler to implement the new operator