Steve Hay > Class-Data-Inheritable-Translucent > Class::Data::Inheritable::Translucent

Download:
Class-Data-Inheritable-Translucent-1.01.tar.gz

Dependencies

Annotate this POD

CPAN RT

Open  0
Report a bug
Module Version: 1.01   Source  

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 <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 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 http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Class-Data-Inheritable-Translucent.

SEE ALSO ^