Name
Mo::builder - Adds the builder feature to Mo's has
Synopsis
Description
Adds the builder
parameter to has, which expects a method name, which is executed on $self
to set the attribute if it hasn't been set yet.
Laziness
Builders in Mo are lazy by default. This can be changed by explicitly setting the lazy
argument to false, in order to cause it to be initialized during instantiation.
has
status
=> (
builder
=>
'_build_status'
);
# lazy
has
source
=> (
builder
=>
'_build_source'
,
lazy
=> 1);
# lazy
has
target
=> (
builder
=>
'_build_target'
,
lazy
=> 0);
# eager
To change the default behavior and make builders to be initialized eagerly by default, import nonlazy
.
has
status
=> (
builder
=>
'_build_status'
);
# eager
has
source
=> (
builder
=>
'_build_source'
,
lazy
=> 1);
# lazy
has
target
=> (
builder
=>
'_build_target'
,
lazy
=> 0);
# eager