File Coverage

blib/lib/Acme/Speed/Member/Base.pm
Criterion Covered Total %
statement 31 33 93.9
branch 2 4 50.0
condition n/a
subroutine 8 8 100.0
pod 1 1 100.0
total 42 46 91.3


line stmt bran cond sub pod time code
1             package Acme::Speed::Member::Base;
2              
3 1     1   6 use strict;
  1         3  
  1         29  
4 1     1   6 use warnings;
  1         2  
  1         22  
5 1     1   6 use DateTime;
  1         2  
  1         24  
6 1     1   5 use base qw(Class::Accessor);
  1         2  
  1         951  
7              
8             __PACKAGE__->mk_accessors(qw(
9             name_ja
10             first_name_ja
11             family_name_ja
12             name_en
13             first_name_en
14             family_name_en
15             birthday
16             age
17             ));
18              
19             sub new {
20 4     4 1 7 my $class = shift;
21 4         12 my $self = bless {}, $class;
22              
23 4         24 $self->_initialize;
24              
25 4         16 return $self;
26             }
27              
28             sub _initialize {
29 4     4   7 my $self = shift;
30 4         15 my %info = $self->info;
31              
32 4         1119 $self->{$_} = $info{$_} for keys %info;
33 4         32 $self->{name_ja} = $self->family_name_ja.$self->first_name_ja;
34 4         117 $self->{name_en} = $self->first_name_en.' '.$self->family_name_en;
35 4         94 $self->{age} = $self->_calculate_age;
36              
37 4         80 return 1;
38             }
39              
40             sub _calculate_age {
41 4     4   9 my $self = shift;
42 4         32 my $today = DateTime->today;
43              
44 4 50       2078 if (($today->month - $self->birthday->month) >= 0) {
45 4 50       94 if (($today->day - $self->birthday->day) >= 0) {
46 0         0 return $today->year - $self->birthday->year;
47             } else {
48 4         66 return ($today->year - $self->birthday->year) - 1;
49             }
50             } else {
51 0         0 return ($today->year - $self->birthday->year) - 1;
52             }
53             }
54              
55             sub _datetime_from_date {
56 4     4   8 my ($self, $date) = @_;
57 4         28 my ($year, $month, $day) = ($date =~ /(\d{4})-(\d{2})-(\d{2})/);
58              
59 4         25 return DateTime->new(
60             year => $year,
61             month => $month,
62             day => $day,
63             );
64             }
65              
66             1;
67              
68             __END__