File Coverage

blib/lib/Acme/BABYMETAL.pm
Criterion Covered Total %
statement 35 39 89.7
branch 7 8 87.5
condition n/a
subroutine 10 11 90.9
pod 0 8 0.0
total 52 66 78.7


line stmt bran cond sub pod time code
1             package Acme::BABYMETAL;
2 5     5   187269 use 5.008001;
  5         13  
3 5     5   16 use strict;
  5         6  
  5         75  
4 5     5   19 use warnings;
  5         5  
  5         1721  
5              
6             our $VERSION = "0.03";
7              
8             my @members = qw(SU-METAL YUIMETAL MOAMETAL);
9              
10             sub new {
11 4     4 0 323 my $class = shift;
12 4         14 my $self = bless {members => []}, $class;
13 4         10 for my $member (@members) {
14 12         25 $member =~ s|-|_|;
15 12         23 my $module_name = 'Acme::BABYMETAL::' . $member;
16 12         558 eval qq|require $module_name;|;
17 12         35 push @{$self->{members}}, $module_name->new;
  12         95  
18             }
19 4         14 return $self;
20             }
21              
22             sub homepage {
23 1     1 0 1 my ($self) = @_;
24 1         3 return 'http://www.babymetal.jp/';
25             }
26              
27             sub youtube {
28 1     1 0 2 my ($self) = @_;
29 1         3 return 'https://www.youtube.com/BABYMETAL';
30             }
31              
32             sub facebook {
33 1     1 0 2 my ($self) = @_;
34 1         3 return 'https://www.facebook.com/BABYMETAL.jp/';
35             }
36              
37             sub instagram {
38 1     1 0 2 my ($self) = @_;
39 1         4 return 'https://www.instagram.com/babymetal_official/';
40             }
41              
42             sub twitter {
43 1     1 0 1 my ($self) = @_;
44 1         4 return 'https://twitter.com/BABYMETAL_JAPAN';
45             }
46              
47             sub members {
48 14     14 0 31 my ($self, $member) = @_;
49 14 100       32 return @{$self->{members}} unless $member;
  1         6  
50              
51 13 100       56 if ( $member =~ /^S/i ) {
    100          
    50          
52 4         10 @members = $self->{members}[0];
53             } elsif ( $member =~ /^Y/i ) {
54 5         11 @members = $self->{members}[1];
55             } elsif ( $member =~ /^M/i ) {
56 4         8 @members = $self->{members}[2];
57             } else {
58 0         0 @members = @{$self->{members}};
  0         0  
59             }
60 13         41 return @members;
61             }
62              
63             sub shout {
64 0     0 0   my ($self) = @_;
65 0           print "We are BABYMETAL DEATH!!\n";
66             }
67              
68              
69             1;
70             __END__
71              
72             =encoding utf-8
73              
74             =head1 NAME
75              
76             Acme::BABYMETAL - All about Japanese metal idol unit "BABYMETAL"
77              
78             =head1 SYNOPSIS
79              
80             use Acme::BABYMETAL;
81              
82             my $babymetal = Acme::BABYMETAL->new;
83              
84             $babymetal->homepage;
85             $babymetal->youtube;
86             $babymetal->facebook;
87             $babymetal->instagram;
88             $babymetal->twitter;
89              
90             my @members = $babymetal->members;
91             for my $member (@members) {
92             my $metal_name = $member->metal_name;
93             my $name_ja = $member->name_ja;
94             my $first_name_ja = $member->first_name_ja;
95             my $family_name_ja = $member->family_name_ja;
96             my $name_en = $member->name_en;
97             my $first_name_en = $member->first_name_en;
98             my $family_name_en = $member->family_name_en;
99             my $birthday = $member->birthday;
100             my $age = $member->age;
101             my $blood_type = $member->blood_type;
102             my $hometown = $member->hometown;
103             my $shout = $member->shout;
104             }
105              
106             my ($su_metal) = $babymetal->members('SU-METAL');
107             my ($yuimetal) = $babymetal->members('YUIMETAL');
108             my ($moametal) = $babymetal->members('MOAMETAL');
109              
110             $su_metal->shout; # SU-METAL DEATH!!
111             $yuimetal->shout; # YUIMETAL DEATH!!
112             $moametal->shout; # MOAMETAL DEATH!!
113             $babymetal->shout; # We are BABYMETAL DEATH!!
114              
115              
116             =head1 DESCRIPTION
117              
118             BABYMETAL is a Japanese metal idol unit.
119              
120             Acme::BABYMETAL provides an easy method to information of BABYMETAL.
121              
122             =head1 LICENSE
123              
124             Copyright (C) Hondallica.
125              
126             This library is free software; you can redistribute it and/or modify
127             it under the same terms as Perl itself.
128              
129             =head1 AUTHOR
130              
131             Hondallica E<lt>hondallica@gmail.comE<gt>
132              
133             =cut
134