Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

class::objecttemplate(3pm) [debian man page]

ObjectTemplate(3pm)					User Contributed Perl Documentation				       ObjectTemplate(3pm)

NAME
Class::ObjectTemplate - Perl extension for an optimized template builder base class. SYNOPSIS
package Foo; use Class::ObjectTemplate; require Exporter; @ISA = qw(Class::ObjectTemplate Exporter); attributes('one', 'two', 'three'); # initialize will be called by new() sub initialize { my $self = shift; $self->three(1) unless defined $self->three(); } use Foo; $foo = Foo->new(); # store 27 in the 'one' attribute $foo->one(27); # check the value in the 'two' attribute die "should be undefined" if defined $foo->two(); # set using the utility method $foo->set_attribute('one',27); # check using the utility method $two = $foo->get_attribute('two'); # set more than one attribute using the named parameter style $foo->set_attributes('one'=>27, 'two'=>42); # or using array references $foo->set_attributes(['one','two'],[27,42]); # get more than one attribute @list = $foo->get_attributes('one', 'two'); # get a list of all attributes known by an object @attrs = $foo->get_attribute_names(); # check that initialize() is called properly die "initialize didn't set three()" unless $foo->three(); DESCRIPTION
Class::ObjectTemplate is a utility class to assist in the building of other Object Oriented Perl classes. It was described in detail in the O'Reilly book, "Advanced Perl Programming" by Sriram Srinivasam. EXPORT attributes(@name_list) This method creates a shared setter and getter methods for every name in the list. The method also creates the class constructor, "new()". WARNING: This method must be invoked within the module for every class that inherits from Class::ObjectTemplate, even if that class defines no attributes. For a class defining no new attributes, it should invoke "attributes()" with no arguments. AUTHOR
Original code by Sriram Srinivasam. Fixes and CPAN module by Jason E. Stewart (jason@openinformatics.com) SEE ALSO
http://www.oreilly.com/catalog/advperl/ perl(1). Class::ObjectTemplate::DB perl v5.12.4 2002-02-25 ObjectTemplate(3pm)

Check Out this Related Man Page

MooseX::LazyRequire(3pm)				User Contributed Perl Documentation				  MooseX::LazyRequire(3pm)

NAME
MooseX::LazyRequire - Required attributes which fail only when trying to use them SYNOPSIS
package Foo; use Moose; use MooseX::LazyRequire; has foo => ( is => 'ro', lazy_required => 1, ); has bar => ( is => 'ro', builder => '_build_bar', ); sub _build_bar { shift->foo } Foo->new(foo => 42); # succeeds, foo and bar will be 42 Foo->new(bar => 42); # succeeds, bar will be 42 Foo->new; # fails, neither foo nor bare were given DESCRIPTION
This module adds a "lazy_required" option to Moose attribute declarations. The reader methods for all attributes with that option will throw an exception unless a value for the attributes was provided earlier by a constructor parameter or through a writer method. CAVEATS
Prior to Moose 1.9900, roles didn't have an attribute metaclass, so this module can't easily apply its magic to attributes defined in roles. If you want to use "lazy_required" in role attributes, you'll have to apply the attribute trait yourself: has foo => ( traits => ['LazyRequire'], is => 'ro', lazy_required => 1, ); With Moose 1.9900, you can use this module in roles just the same way you can in classes. AUTHORS
o Florian Ragwitz <rafl@debian.org> o Dave Rolsky <autarch@urth.org> COPYRIGHT AND LICENSE
This software is copyright (c) 2011 by Florian Ragwitz. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. perl v5.10.1 2011-04-04 MooseX::LazyRequire(3pm)
Man Page