File Coverage

blib/lib/Acme/PrettyCure/Girl/Role/DokiDoki.pm
Criterion Covered Total %
statement 7 7 100.0
branch n/a
condition n/a
subroutine 3 3 100.0
pod n/a
total 10 10 100.0


line stmt bran cond sub pod time code
1             package Acme::PrettyCure::Girl::Role::DokiDoki;
2 2     2   1713 use utf8;
  2         5  
  2         17  
3 2     2   58 use Moo::Role;
  2         5  
  2         14  
4              
5             sub _excla {
6 2     2   9 '!' x (scalar(@_)+1);
7             }
8              
9             before 'transform' => sub {
10             my ($self, @buddies) = @_;
11              
12             unless ($buddies[0] && $buddies[0]->is_precure) {
13             my $excla = _excla @buddies;
14             $self->say(sprintf 'プリキュア%s ラブリンク%s L・O・V・E%s', $excla, $excla, $excla);
15             }
16             };
17              
18             after 'transform' => sub {
19             my ($self, @buddies) = @_;
20              
21             my $first = 0;
22             unless ($buddies[0] && $buddies[0]->is_precure) {
23             $first = 1;
24             }
25              
26             for my $buddy (@buddies) {
27             unless ($buddy->is_precure) {
28             $buddy->transform($self);
29             }
30             }
31              
32             if (scalar(@buddies) == 0) {
33             $self->say(sprintf $self->message, getpwuid $>);
34             } elsif($first) {
35             my $excla = _excla @buddies;
36             $self->say(sprintf '響け、愛の鼓動%s ドキドキ!プリキュア%s', $excla, $excla);
37             }
38             };
39              
40              
41              
42             1;
43