NAME¶
SQL::Translator::Role::ListAttr - context-sensitive list attributes
SYNOPSIS¶
package Foo;
use Moo;
use SQL::Translator::Role::ListAttr;
with ListAttr foo => ( uniq => 1, append => 1 );
DESCRIPTION¶
This package provides a variable Moo::Role for context-sensitive list
attributes.
FUNCTIONS¶
ListAttr $name => %parameters;¶
Returns a Moo::Role providing an arrayref attribute named $name, and wrapping
the accessor to provide context-sensitivity both for setting and getting. If
no "builder" or "default" is provided, the default value
is the empty list.
On setting, the arguments are parsed using "parse_list_arg" in
SQL::Translator::Utils, and the accessor will return an array reference or a
list, depending on context.
Parameters
- append
- If true, the setter will append arguments to the existing ones, rather
than replacing them.
- uniq
- If true, duplicate items will be removed, keeping the first one seen.
- may_throw
- If accessing the attribute might throw an exception (e.g. from a
"builder" or "isa" check), this should be set to make
the accessor store the exception using SQL::Translator::Role::Error and
return undef.
- undef_if_empty
- If true, and the list is empty, the accessor will return "undef"
instead of a reference to an empty in scalar context.
Unknown parameters are passed through to the has call for the attribute.
SEE ALSO¶
- SQL::Translator::Utils
- SQL::Translator::Role::Error