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


MooseX-AttributeInflate documentation  | view source Contained in the MooseX-AttributeInflate distribution.

Index


NAME

Top

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

VERSION

Top

Version 0.03

SYNOPSIS

Top

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

Top

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

Top

has_inflated

Just like Moose's has, but applies the attribute trait Inflated and defaults lazy to be on. See EXPORTED FUNCTIONS in Moose for more detail on has.

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.

SEE ALSO

Top

MooseX::CurriedHandles - combine with this module for auto-inflating moose curry!

http://github.com/stash/moosex-attributeinflate/ - Github repository

AUTHOR

Top

Stash <jstash+cpan@gmail.com>

BUGS

Top

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

Top

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

    perldoc MooseX::AttributeInflate




You can also look for information at:

* #moose on irc.perl.org

irc://irc.perl.org#moose

* RT: CPAN's request tracker

http://rt.cpan.org/NoAuth/Bugs.html?Dist=MooseX-AttributeInflate

* AnnoCPAN: Annotated CPAN documentation

http://annocpan.org/dist/MooseX-AttributeInflate

* CPAN Ratings

http://cpanratings.perl.org/d/MooseX-AttributeInflate

* Search CPAN

http://search.cpan.org/dist/MooseX-AttributeInflate

ACKNOWLEDGEMENTS

Top

konobi for Meta-advice and CPAN help

perigrin, doy, Sartak and other #moose folks for suggestions & patches.

COPYRIGHT & LICENSE

Top


MooseX-AttributeInflate documentation  | view source Contained in the MooseX-AttributeInflate distribution.