Ben Sommer > Myco-1.22 > Myco::QueryTemplate

Download:
Myco-1.22.tar.gz

Dependencies

Annotate this POD

CPAN RT

New  1
Open  0
View/Report Bugs
Source  

NAME ^

Myco::QueryTemplate - a Myco template class

DESCRIPTION ^

A template class for Myco::Query and Myco::Entity::Meta::Query. Provides full encapsulation of Tangram Query object construction and manipulation.

COMMON ENTITY INTERFACE ^

Constructor, accessors, and other methods -- as inherited from Myco::Entity.

ATTRIBUTES ^

Attributes may be initially set during object construction (with new()) but otherwise are accessed solely through accessor methods. Typical usage:

A listing of available attributes follows:

name

 type: string

Name of the query.

description

 type: string  required

Description of the query.

result_remote

 type: string  required

The remote class of objects to return.

filter

 type: perl_dump

  $query->set_filter( $filter );

The string dump of ::Filter and ::Clause objects comprising the filter.

remotes

 type: flat_hash  required

 $query->set_remote( {'$u_' => 'Myco::User'} );

A hash of remote variable and class names. Use declare_remote to add new ones.

params

 type: perl_dump

  $query->set_params( last_name => ['$p_', 'last'],
                      middle_name => ['$p_', 'middle', 1],
                      first_initial => ['$p_', 'middle',
                                        widget => ['textfield',
                                                   -size => 2, maxlength => 2],
                                       ],
                    );

A hash of arrays of arg names consisting of the relevant remotes, and the attribute name. May also include boolean flag to indicate optionality, as well as a custom CGI widget spec.

params_order

  $query->set_params_order( ['mid', 'log'] );

Since params is a hash, its values cannot be accessed in the order it was originally specified, this attribute can used to explicity set the order.

ADDED CLASS / INSTANCE METHODS ^

add_remotes

  $query->add_remotes( { '$peeps_' => 'Myco::Person',
                         '$stooges_' => 'Myco::Person::Stooge'} );

Add remotes without clobbering the current list.

get_filter_string

  my $filter_string = $query->get_filter_string;

A wrapper method around Myco::Query::Part::Filter->get_combined_parts. Works on the filter attribute. Accepts as an argument the same hash of parameters passed to run_query.

run_query

  my @results = $query->run_query;

Run the query.

get_ui_md

  my $ui_md = $query->get_ui_md;

Returns ::UI metadata objects for each attribute in params attribute. Keyed by attribute alias

get_ref_params

  my $ref_params = $query->get_ref_params;

Returns a hash reference like { 'person' => 'Myco::Person' } for any 'ref' or 'iset' params required by the query object.

get_closure

  my $cgi_widget = $query->get_closure( 'first_name' );

Get an appropriate CGI widget for a given param. Leverages Myco::Entity::Meta::Attribute::UI.

syntax highlighting: