An open API service indexing awesome lists of open source software.

https://github.com/mohawk2/moox-thunking

Moo extension allowing attributes to be "thunked"
https://github.com/mohawk2/moox-thunking

Last synced: 8 months ago
JSON representation

Moo extension allowing attributes to be "thunked"

Awesome Lists containing this project

README

          

# NAME

MooX::Thunking - Allow Moo attributes to be "thunked"

# SYNOPSIS

package Thunking;
use Moo;
use MooX::Thunking;
use Types::TypeTiny -all;
use Types::Standard -all;
has children => (
is => 'thunked',
isa => CodeLike | ArrayRef[InstanceOf['Thunking']],
required => 1,
);

package main;
my $obj;
$obj = Thunking->new(children => sub { [$obj] });

# DESCRIPTION

This is a [Moo](https://metacpan.org/pod/Moo) extension. It allows another value for the `is`
parameter to ["has" in Moo](https://metacpan.org/pod/Moo#has): "thunked". If used, this will allow you to
transparently provide either a real value for the attribute, or a
["CodeLike" in Types::TypeTiny](https://metacpan.org/pod/Types::TypeTiny#CodeLike) that when called will return such a real
value.

# AUTHOR

Ed J

# LICENCE

The same terms as Perl itself.