# NAME

MooseX::AutoDestruct - Clear your attributes after a certain time

# SYNOPSIS

    package Foo;

    use Moose;
    use namespace::autoclean;
    use MooseX::AutoDestruct;

    has foo => (
        traits => ['AutoDestruct'],
        is => 'ro', isa => 'Str', lazy_build => 1,
        ttl => 600, # time, in seconds
    );

    sub _build_foo { --some expensive operation-- }

# DESCRIPTION

MooseX::AutoDestruct is an attribute metaclass trait that causes your
attribute value to be cleared after a certain time from when the value has
been set.

This trait will work regardless of how the value is populated or if a clearer
method has been installed; or if the value is accessed via the installed
accessors or by accessing the attribute metaclass itself.

# TRAITS APPLIED

No traits are automatically applied to any metaclasses; however, on use'ing
this package an 'AutoDestruct' attribute trait becomes available.

# USAGE

Apply the AutoDestruct trait to your attribute metaclass (e.g. "traits =>
['AutoDestruct']") and supply a ttl value.

Typical usage of this could be for an attribute to store a value that is
expensive to calculate, and can be counted on to be valid for a certain amount
of time (e.g. caching).  Builders are your friends :)

# SEE ALSO

[Class::MOP](http://search.cpan.org/perldoc?Class::MOP), [Moose](http://search.cpan.org/perldoc?Moose).

# AUTHOR

Chris Weyl, `<cweyl at alumni.drew.edu>`

# BUGS

Please report any bugs or feature requests to
`bug-moosex-autodestruct at rt.cpan.org`, or through
the web interface at
<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=MooseX-AutoDestruct>.

# TODO

Additional testing is required!

# SUPPORT

You can find documentation for this module with the perldoc command.

    perldoc MooseX::AutoDestruct



You can also look for information at:

- * RT: CPAN's request tracker

<http://rt.cpan.org/NoAuth/Bugs.html?Dist=MooseX-AutoDestruct>

- * AnnoCPAN: Annotated CPAN documentation

<http://annocpan.org/dist/MooseX-AutoDestruct>

- * CPAN Ratings

<http://cpanratings.perl.org/d/MooseX-AutoDestruct>

- * Search CPAN

<http://search.cpan.org/dist/MooseX-AutoDestruct/>



# COPYRIGHT & LICENSE

Copyright (c) 2010, Chris Weyl `<cweyl@alumni.drew.edu>`.

This library is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by the Free
Software Foundation; either version 2.1 of the License, or (at your option)
any later version.

This library is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
OR A PARTICULAR PURPOSE.

See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License
along with this library; if not, write to the

    Free Software Foundation, Inc.,
    59 Temple Place, Suite 330,
    Boston, MA  02111-1307 USA