logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

SQL::Translator::Role::ListAttr - context-sensitive list attributes

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.

Name

       SQL::Translator::Role::ListAttr - context-sensitive list attributes

See Also

       SQL::Translator::Utils
       SQL::Translator::Role::Error

perl v5.40.0                                       2024-11-23               SQL::Translator::Role::ListAttr(3pm)

Synopsis

           package Foo;
               use Moo;
               use SQL::Translator::Role::ListAttr;

               with ListAttr foo => ( uniq => 1, append => 1 );

See Also