File Coverage

blib/lib/WWW/Shopify/Liquid/Filter/Map.pm
Criterion Covered Total %
statement 16 19 84.2
branch 2 6 33.3
condition n/a
subroutine 6 7 85.7
pod 0 4 0.0
total 24 36 66.6


line stmt bran cond sub pod time code
1             #!/usr/bin/perl
2 37     37   14351 use strict;
  37         110  
  37         1105  
3 37     37   239 use warnings;
  37         92  
  37         1416  
4              
5             package WWW::Shopify::Liquid::Filter::Map;
6 37     37   232 use base 'WWW::Shopify::Liquid::Filter';
  37         94  
  37         10680  
7 4     4 0 19 sub min_arguments { return 1; }
8 8     8 0 33 sub max_arguments { return 1; }
9              
10              
11             sub render {
12 4     4 0 11 my ($self, $renderer, $hash) = @_;
13 4 50       13 my $operand = !$self->is_processed($self->{operand}) ? $self->{operand}->render($renderer, $hash) : $self->{operand};
14 4 50       15 my @results = map { $self->{arguments}->[0]->render($renderer, { %$hash, op => $_ }) } (ref($operand) ? @$operand : $operand);
  7         44  
15 4         15 return [@results];
16             }
17              
18             sub optimize {
19 0     0 0   my ($self, $optimizer, $hash) = @_;
20 0 0         $self->{operand} = $self->{operand}->optimize($optimizer, $hash) unless $self->is_processed($self->{operand});
21 0           return $self;
22             }
23              
24             1;