Peter Karman > Search-Query > Search::Query::Field

Download:
Search-Query-0.304.tar.gz

Dependencies

Annotate this POD

Website

CPAN RT

Open  0
View/Report Bugs
Module Version: 0.304   Source  

NAME ^

Search::Query::Field - base class for query fields

SYNOPSIS ^

 my $field = Search::Query::Field->new( 
    name        => 'foo',
    alias_for   => [qw( bar bing )], 
 );

DESCRIPTION ^

Search::Query::Field is a base class for implementing field validation and aliasing in search queries.

METHODS ^

This class is a subclass of Rose::ObjectX::CAF. Only new or overridden methods are documented here.

name

Get/set the name of the field.

alias_for

Get/set the alternate names for the field. Can be a string or array ref.

callback

Standard attribute accessor. Expects a CODE reference.

If defined on a Field object, the callback is invoked whenever a Clause is stringified or serialized. The CODE reference should expect 3 arguments: the field name, the operator and the value. It should return a serialized or serializable value. Example:

 $field->callback(sub {
     my ($field, $op, $value) = @_;
     return "$field $op $value";
 });

validate( field_value )

The base method always returns true.

error

Get/set the error string for the Field object. The return value of this method is included by the Parser in any error message whenever validate() returns false.

AUTHOR ^

Peter Karman, <karman at cpan.org>

BUGS ^

Please report any bugs or feature requests to bug-search-query at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Search-Query. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT ^

You can find documentation for this module with the perldoc command.

    perldoc Search::Query

You can also look for information at:

ACKNOWLEDGEMENTS ^

This module started as a fork of Search::QueryParser by Laurent Dami.

COPYRIGHT & LICENSE ^

Copyright 2010 Peter Karman.

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.

syntax highlighting: