NAME
Object::AutoAccessor - Accessor class by using AUTOLOAD
SYNOPSIS
use Object::AutoAccessor;
my $obj = Object::AutoAccessor->new();
# setter methods
$obj->foo('bar');
$obj->set_foo('bar');
$obj->param(foo => 'bar');
# getter methods
$obj->foo();
$obj->get_foo();
$obj->param('foo');
# $obj->param() is compatible with HTML::Template->param()
my @keywords = $obj->param();
my $val = $obj->param('hash');
$obj->param(key => 'val');
DESCRIPTION
Object::AutoAccessor is a Accessor class to get/set values by AUTOLOADed method automatically. Moreover, param() is compatible with HTML::Template
module, so you can use Object::AutoAccessor object for HTML::Template
's associate
option.
METHODS
- new ( [ OPTIONS ] )
-
Create a new Object::AutoAccessor object. Then you can use several options to control object's behavior.
- new_node ( NAME, [ OPTIONS ] )
-
Create a new Object::AutoAccessor object as child instance by renew() .
- node ( NAME, [ NAME, ... ] )
-
An accessor method for child instance of Object::AutoAccessor object.
- has_node ( NAME )
-
If object has child instance then it return TRUE.
- renew ( [ OPTIONS ] )
-
Create a new Object::AutoAccessor object to remaining current options.
- KEY ( [ VALUE ] )
-
This method provides an accessor that methodname is same as keyname by using AUTOLOAD mechanism.
# setter methods $obj->foo('bar'); $obj->set_foo('bar'); $obj->param(foo => 'bar'); # getter methods $obj->foo(); $obj->get_foo(); $obj->param('foo');
- param ( [ KEY => VALUE, ... ] )
-
This method is compatible with param() method of HTML::Template module.
# set value $obj->param(foo => 'bar'); $obj->param( foo => 'bar', bar => [qw(1 2 3)], baz => { one => 1, two => 2, three => 3 } ); # get value $obj->param('foo'); # got 'bar' # get list keys of parameters @keys = $obj->param();
- autoload ( BOOLEAN )
-
This is the method to switch behavior of the AUTOLOADed-accessor-method. If set to 0, the object cannot use the AUTOLOADed-accessor-method such as foo() , set_foo() and get_foo() but param() .
$obj->new_node('foo')->param(bar => 'baz'); $obj->autoload(1); $baz = $obj->foo->bar; # OK $obj->autoload(0); $baz = $obj->node('foo')->param('bar'); # OK $baz = $obj->foo->bar; # NG
AUTHOR
Copyright 2005-2006 Michiya Honda, <pia@cpan.org> All rights reserved.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.