NAME
Class::Data::Inheritable::Translucent - Inheritable, overridable,
translucent class data / object attributes
SYNOPSIS
package Foo;
use base 'Class::Data::Inheritable::Translucent';
Foo->mk_translucent("bar");
Foo->bar("baz");
$obj = Foo->new;
print $obj->bar; # prints "baz"
$obj->bar("whatever");
print $obj->bar; # prints "whatever"
print Foo->bar; # prints "baz"
$obj->bar(undef);
print $obj->bar; # prints "baz"
DESCRIPTION
This module is based on Class::Data::Inheritable, and is largely the
same, except the class data accessors double as translucent object
attributes.
Object data, by default, is stored in $obj->{$attribute}. See the
attrs() method, explained below, on how to change that.
METHODS
mk_translucent
Creates inheritable class data / translucent instance attributes
attrs
This method is called by the generated accessors and, by default,
simply returns the object that called it, which should be a hash
reference for storing object attributes. If your objects are not
hashrefs, or you wish to store your object attributes in a different
location, eg. $obj->{attrs}, you should override this method.
Class::Data::Inheritable::Translucent stores object attributes in
$obj->attrs()->{$attribute}.
AUTHOR
Steve Hay <F<shay@cpan.org>> is now maintaining
Class::Data::Inheritable::Translucent as of version 1.00
Originally by Ryan McGuigan
Based on Class::Data::Inheritable, originally by Damian Conway
ACKNOWLEDGEMENTS
Thanks to Damian Conway for Class::Data::Inheritable
COPYRIGHT & LICENSE
Version 0.01 Copyright 2005 Ryan McGuigan, all rights reserved.
Changes in Version 1.00 onwards Copyright (C) 2009, 2011 Steve Hay
mk_translucent is based on mk_classdata from
Class::Data::Inheritable, Copyright Damian Conway and Michael G Schwern,
licensed under the terms of the Perl Artistic License.
This program is free software; It may be used, redistributed and/or
modified under the terms of the Perl Artistic License (see
<http://www.perl.com/perl/misc/Artistic.html>)
BUGS
Please report any bugs or feature requests on the CPAN Request Tracker at
F<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Class-Data-Inheritable-Translucent>.
SEE ALSO
* Class::Data::Inheritable
* perltooc - Tom's OO Tutorial for Class Data in Perl - a pretty nice
Class Data tutorial for Perl
* The source. It's quite short, and simple enough.