# filter to return value from @ds
- sub tt_filter_d {
+ sub tt_filter_type {
+ my ($data,$type) = @_;
+
+ die "no data?" unless ($data);
+ $type ||= 'display';
- my ($name,$join) = @_;
+ my $default_delimiter = {
+ 'display' => '¶<br/>',
+ 'index' => '\n',
+ };
-print "### name = ",Dumper($name);
+ return sub {
- my $item = first { $_->{'name'} eq $name } @{ $args->{'data'} };
+print "### data = ",Dumper($data);
- return unless($item);
+ my ($name,$join) = @_;
+
+ die "no data array" unless ($data->{'data'} && ref($data->{'data'}) eq 'ARRAY');
+
+print "### name, join = ",Dumper($name);
+
+ my $item = first { $_->{'name'} eq $name } @{ $data->{'data'} };
+
+ return unless($item);
print "### item = ",Dumper($item);
- my $v = $item->{'display'} || return;
+ my $v = $item->{$type} || return;
- if (ref($v) eq 'ARRAY') {
- if ($#{$v} == 0) {
- $v = $v->[0];
- } else {
- $join = '¶<br/>' unless defined($join);
- $v = join($join, @{$v});
+ if (ref($v) eq 'ARRAY') {
+ if ($#{$v} == 0) {
+ $v = $v->[0];
+ } else {
+ $join = $default_delimiter->{$type} unless defined($join);
+ $v = join($join, @{$v});
+ }
}
- }
print "### v = $v\n";
- return $v;
+ return $v;
+ }
}
- $args->{'d'} = \&tt_filter_d;
+ $args->{'d'} = tt_filter_type($args, 'display');
my $out;