Jeremy Stashewsky > MooseX-AttributeInflate-0.02 > MooseX::AttributeInflate

Download:
MooseX-AttributeInflate-0.02.tar.gz

Dependencies

Annotate this POD

CPAN RT

Open  0
Report a bug
Module Version: 0.02   Source  

NAME ^

MooseX::AttributeInflate - Auto-inflate your Moose attribute objects

VERSION ^

Version 0.02

SYNOPSIS ^

Lazily constructs ("inflates") an object attribute, optionally using constant parameters.

    package MyClass;
    use MooseX::AttributeInflate;

    has_inflated 'helper' => (
        is => 'ro', isa => 'MyHelper'
    );

    # OR, explicitly

    has 'helper' => (
        is => 'ro', isa => 'MyHelper',
        traits => [qw/Inflated/],
        inflate_args => [],
        inflate_method => 'new',
    );

    my $obj = MyClass->new();
    $obj->helper->help();

DESCRIPTION ^

For each attribute defined with has_inflated, this module overrides the default for that attribute, calling instead that attribute's type's constructor. The construction is done lazily unless overriden with lazy => 0.

See has_inflated for options and more detail.

Construction only works with objects; an exception will be thrown if the isa type of this attribute is not a decendant of Object (this includes ArrayRef and HashRef types).

Alternatively, you may use the attribute trait Inflated to compose an attribute with other attribute trais.

EXPORTS ^

has_inflated

Just like Moose's has, but applies the attribute trait Inflated and defaults lazy to be on.

If lazy_build is defined, the canonical build method (e.g. _build_helper) IS NOT called. Otherwise, lazy_build works as usual, setting required and installing a clearer and predicate.

Additional options:

lazy

Defaults on, but can be turned off with lazy => 0.

lazy_build

Just like Moose's lazy_build, but does not call the canonical builder method (e.g. _build_$name).

inflate_method

The name of the constructor to use. Defaults to 'new'.

inflate_args

The arguments to pass to the constructor. Defaults to an empty list.

AUTHOR ^

Stash <jstash+cpan@gmail.com>

BUGS ^

Please report any bugs or feature requests to bug-moosex-attrinflate at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=MooseX-AttributeInflate. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT ^

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

    perldoc MooseX::AttributeInflate

You can also look for information at:

ACKNOWLEDGEMENTS ^

COPYRIGHT & LICENSE ^

Copyright 2009 Jeremy Stashewsky

Copyright 2009 Socialtext Inc., all rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.