PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB` package Test2::Workflow::Task::Group; use strict; use warnings; our $VERSION = '1.302204'; use Carp qw/croak/; use Test2::Workflow::Task::Action; use base 'Test2::Workflow::Task'; use Test2::Util::HashBase qw/before after primary rand variant/; sub init { my $self = shift; if (my $take = delete $self->{take}) { $self->{$_} = delete $take->{$_} for ISO, ASYNC, TODO, SKIP; $self->{$_} = $take->{$_} for FLAT, SCAFFOLD, NAME, CODE, FRAME; $take->{+FLAT} = 1; $take->{+SCAFFOLD} = 1; } { local $Carp::CarpLevel = $Carp::CarpLevel + 1; $self->SUPER::init(); } $self->{+BEFORE} ||= []; $self->{+AFTER} ||= []; $self->{+PRIMARY} ||= []; } sub filter { my $self = shift; my ($filter) = @_; return if $self->{+IS_ROOT}; my $result = $self->SUPER::filter($filter); my $child_ok = 0; for my $c (@{$self->{+PRIMARY}}) { next if $c->{+SCAFFOLD}; # A child matches the filter, so we should not be filtered, but also # should not satisfy the filter. my $res = $c->filter($filter); # A child satisfies the filter $child_ok++ if !$res || $res->{satisfied}; last if $child_ok; } # If the filter says we are ok unless($result) { # If we are a variant then allow everything under us to be run return {satisfied => 1} if $self->{+VARIANT} || !$child_ok; # Normal group return; } return if $child_ok; return $result; } 1; __END__ =pod =encoding UTF-8 =head1 NAME Test2::Workflow::Task::Group - Encapsulation of a group (describe). =head1 SOURCE The source code repository for Test2-Workflow can be found at F. =head1 MAINTAINERS =over 4 =item Chad Granum Eexodist@cpan.orgE =back =head1 AUTHORS =over 4 =item Chad Granum Eexodist@cpan.orgE =back =head1 COPYRIGHT Copyright Chad Granum Eexodist7@gmail.comE. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See F =cut