NAME
Valiant::Filter::Flatten - Array or Hash ref to string
SYNOPSIS
package Local::Test;
use Moo;
use Valiant::Filters;
has 'pick_first' => (is=>'ro', required=>1);
has 'pick_last' => (is=>'ro', required=>1);
has 'join' => (is=>'ro', required=>1);
has 'sprintf' => (is=>'ro', required=>1);
has 'pattern' => (is=>'ro', required=>1);
filters pick_first => (flatten => +{pick => 'first'});
filters pick_last => (flatten => +{pick => 'last'});
filters join => (flatten => +{join => ','});
filters sprintf => (flatten => +{sprintf => '%s-%s-%s'});
filters pattern => (flatten => +{pattern => 'hi {{a}} there {{b}}'});
my $object = Local::Test->new(
pick_first => [1,2,3],
pick_last => [1,2,3],
join => [1,2,3],
sprintf => [1,2,3],
pattern => +{ a=>'now', b=>'john' },
);
print $object->pick_first; # 1
print $object->pick_last; # 3
print $object->join; # '1,2,3'
print $object->sprintf; # '1-2-3'
print $object->pattern; # 'hi now there john'
DESCRIPTION
Given an arrayref for a value, flatten to a string in various ways
ATTRIBUTES
This filter defines the following attributes
pick
Value of either 'first' or 'last' which indicates choosing either the first or last index of the arrayref.
join
Join the arrayref into a string using the value of 'join' as the deliminator
sprintf
Use sprintf
formatted string to convert an arrayref.
pattern
Uses a Valiant style pattern string to convert a hashref to a string. Basically inside the pattern string we look for "{{$key}}" and substitute $key for whatever matches in the incoming hashref as a key value. If there's no match we replace with an empty string without raising warnings.
SEE ALSO
Valiant, Valiant::Filter, Valiant::Validator::Filter.
AUTHOR
See Valiant
COPYRIGHT & LICENSE
See Valiant