Class::Adapter::Builder man page on Pidora

Man page or keyword search:  
man Server   31170 pages
apropos Keyword Search (all sections)
Output format
Pidora logo
[printable version]

Class::Adapter::BuildeUser Contributed Perl DocumentClass::Adapter::Builder(3)

NAME
       Class::Adapter::Builder - Generate Class::Adapter classes

SYNOPSIS
	 package My::Adapter;

	 use strict;
	 use Class::Adapter::Builder
	     ISA     => 'Specific::API',
	     METHODS => [ qw{foo bar baz} ],
	     method  => 'different_method';

	 1;

DESCRIPTION
       "Class::Adapter::Builder" is another mechanism for letting you create
       Adapter classes of your own.

       It is intended to act as a toolkit for generating the guts of many
       varied and different types of Adapter classes.

       For a simple base class you can inherit from and change a specific
       method, see Class::Adapter::Clear.

   The Pragma Interface
       The most common method for defining Adapter classes, as shown in the
       synopsis, is the pragma interface.

       This consists of a set of key/value pairs provided when you load the
       module.

	 # The format for building Adapter classes
	 use Class::Adapter::Builder PARAM => VALUE, ...

       ISA The "ISA" param is provided as either a single value, or a
	   reference to an "ARRAY" containing is list of classes.

	   Normally this is just a straight list of classes. However, if the
	   value for "ISA" is set to '_OBJECT_' the object will identify
	   itself as whatever is contained in it when the "->isa" and "->can"
	   method are called on it.

       NEW Normally, you need to create your "Class::Adapter" objects
	   separately:

	     # Create the object
	     my $query = CGI->new( 'param1', 'param2' );

	     # Create the Decorator
	     my $object = My::Adapter->new( $query );

	   If you provide a class name as the "NEW" param, the Decorator will
	   do this for you, passing on any constructor arguments.

	     # Assume we provided the following
	     # NEW => 'CGI',

	     # We can now do the above in one step
	     my $object = My::Adapter->new( 'param1', 'param2' );

       AUTOLOAD
	   By default, a "Class::Adapter" does not pass on any methods, with
	   the methods to be passed on specified explicitly with the 'METHODS'
	   param.

	   By setting "AUTOLOAD" to true, the "Adapter" will be given the
	   standard "AUTOLOAD" function to to pass through all unspecified
	   methods to the parent object.

	   By default the AUTOLOAD will pass through any and all calls,
	   including calls to private methods.

	   If the AUTOLOAD is specifically set to 'PUBLIC', the AUTOLOAD
	   setting will ONLY apply to public methods, and any private methods
	   will not be passed through.

       METHODS
	   The "METHODS" param is provided as a reference to an array of all
	   the methods that are to be passed through to the parent object as
	   is.

       Any params other than the ones specified above are taken as translated
       methods.

	 # If you provide the following
	 # foo => bar

	 # It the following are equivalent
	 $decorator->foo;
	 $decorator->_OBJECT_->bar;

       This capability is provided primarily because in Perl one of the main
       situations in which you hit the limits of Perl's inheritance model is
       when your class needs to inherit from multiple different classes that
       containing clashing methods.

       For example:

	 # If your class is like this
	 package Foo;

	 use base 'This', 'That';

	 1;

       If both "This->method" exists and "That->method" exists, and both mean
       different things, then "Foo->method" becomes ambiguous.

       A "Class::Adapter" could be used to wrap your "Foo" object, with the
       "Class::Adapter" becoming the "That" sub-class, and passing
       "$decorator->method" through to "$object->that_method".

METHODS
       Yes, "Class::Adapter::Builder" has public methods and later on you will
       be able to access them directly, but for now they are remaining
       undocumented, so that I can shuffle things around for another few
       versions.

       Just stick to the pragma interface for now.

SUPPORT
       Bugs should be reported via the CPAN bug tracker at

       http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Class-Adapter
       <http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Class-Adapter>

       For other issues, contact the author.

AUTHOR
       Adam Kennedy <adamk@cpan.org>

SEE ALSO
       Class::Adapter, Class::Adapter::Clear

COPYRIGHT
       Copyright 2005 - 2011 Adam Kennedy.

       This program is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.

       The full text of the license can be found in the LICENSE file included
       with this module.

perl v5.14.0			  2011-03-24	    Class::Adapter::Builder(3)
[top]

List of man pages available for Pidora

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net