File Coverage

blib/lib/Acme/MorningMusume/Base.pm
Criterion Covered Total %
statement 33 33 100.0
branch 4 4 100.0
condition n/a
subroutine 8 8 100.0
pod 1 1 100.0
total 46 46 100.0


line stmt bran cond sub pod time code
1             package Acme::MorningMusume::Base;
2              
3 2     2   11 use strict;
  2         3  
  2         58  
4 2     2   8 use warnings;
  2         2  
  2         36  
5 2     2   8 use DateTime;
  2         3  
  2         37  
6 2     2   7 use base qw(Class::Accessor);
  2         4  
  2         1024  
7              
8             our $VERSION = '0.18';
9              
10             __PACKAGE__->mk_accessors(qw(
11             name_ja
12             first_name_ja
13             family_name_ja
14             name_en
15             first_name_en
16             family_name_en
17             nick
18             birthday
19             age
20             blood_type
21             hometown
22             emoticon
23             class
24             graduate_date
25             ));
26              
27             sub new {
28 76     76 1 91 my $class = shift;
29 76         155 my $self = bless {}, $class;
30              
31 76         285 $self->_initialize;
32              
33 76         245 return $self;
34             }
35              
36             sub _initialize {
37 76     76   117 my $self = shift;
38 76         163 my %info = $self->info;
39              
40 76         11803 $self->{$_} = $info{$_} for keys %info;
41 76         448 $self->{name_ja} = $self->family_name_ja.$self->first_name_ja;
42 76         1387 $self->{name_en} = $self->first_name_en.' '.$self->family_name_en;
43 76         1036 $self->{age} = $self->_calculate_age;
44              
45 76         972 return 1;
46             }
47              
48             sub _calculate_age {
49 76     76   66 my $self = shift;
50 76         169 my $today = DateTime->today;
51              
52 76 100       24818 if (($today->month - $self->birthday->month) >= 0) {
53 68 100       1165 if (($today->day - $self->birthday->day ) >= 0) {
54 60         624 return $today->year - $self->birthday->year;
55             } else {
56 8         86 return ($today->year - $self->birthday->year) - 1;
57             }
58             } else {
59 8         144 return ($today->year - $self->birthday->year) - 1;
60             }
61             }
62              
63             sub _datetime_from_date {
64 126     126   8123 my ($self, $date) = @_;
65 126         714 my ($year, $month, $day) = ($date =~ /(\d{4})-(\d{2})-(\d{2})/);
66              
67 126         466 DateTime->new(
68             year => $year,
69             month => $month,
70             day => $day,
71             );
72             }
73              
74             1;
75              
76             __END__