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
=> ArrayRef[InstanceOf[
'Thunking'
]],
required
=> 1,
);
package
main;
my
$obj
;
$obj
= Thunking->new(
children
=>
sub
{ [
$obj
] });
DESCRIPTION
This is a Moo extension. It allows another value for the is
parameter to "has" in Moo: "thunked". If used, this will allow you to transparently provide either a real value for the attribute, or a "CodeLike" in Types::TypeTiny that when called will return such a real value.
Note that in earlier versions of this module (up to 0.06), any isa
had to pass a CodeLike
. This is now taken care of by this module. It will continue to do the right thing if no isa
is supplied.
AUTHOR
Ed J
LICENCE
The same terms as Perl itself.