File Coverage

blib/lib/WWW/Shopify/Liquid/Filter/Grep.pm
Criterion Covered Total %
statement 17 20 85.0
branch 2 6 33.3
condition n/a
subroutine 6 7 85.7
pod 0 4 0.0
total 25 37 67.5


line stmt bran cond sub pod time code
1             #!/usr/bin/perl
2 37     37   15116 use strict;
  37         112  
  37         1087  
3 37     37   231 use warnings;
  37         101  
  37         1420  
4              
5             package WWW::Shopify::Liquid::Filter::Grep;
6 37     37   243 use base 'WWW::Shopify::Liquid::Filter';
  37         93  
  37         10891  
7 1     1 0 5 sub min_arguments { return 1; }
8 2     2 0 8 sub max_arguments { return 1; }
9              
10              
11             sub render {
12 1     1 0 4 my ($self, $renderer, $hash) = @_;
13 1 50       7 my $operand = !$self->is_processed($self->{operand}) ? $self->{operand}->render($renderer, $hash) : $self->{operand};
14 1 50       5 my @results = grep { my $result = $self->{arguments}->[0]->render($renderer, { %$hash, op => $_ }); $result; } (ref($operand) ? @$operand : $operand);
  2         11  
  2         8  
15 1         3 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;