File Coverage

blib/lib/Acme/PriPara/MainMembers.pm
Criterion Covered Total %
statement 50 50 100.0
branch 4 4 100.0
condition n/a
subroutine 18 18 100.0
pod 1 12 8.3
total 73 84 86.9


line stmt bran cond sub pod time code
1             package Acme::PriPara::MainMembers;
2 3     3   2638 use Mouse;
  3         28342  
  3         15  
3              
4 3     3   2557 use Data::Section::Simple;
  3         1721  
  3         162  
5 3     3   1778 use YAML::Tiny;
  3         17458  
  3         200  
6 3     3   1783 use Data::Dumper;
  3         20471  
  3         218  
7 3     3   25 use utf8;
  3         6  
  3         22  
8              
9             has has_pripara_changed => (
10             is => 'rw',
11             isa => 'Bool',
12             required => 1,
13             default => 0,
14             );
15              
16 3     3   155 no Mouse;
  3         6  
  3         17  
17              
18             sub name {
19 4     4 0 1739 my ($self) = @_;
20 4         19 return $self->lastname . ' ' . $self->firstname;
21             }
22              
23             sub firstname {
24 12     12 0 29 my ($self) = @_;
25 12         73 return $self->{firstname};
26             }
27              
28             sub lastname {
29 12     12 0 27 my ($self) = @_;
30 12         69 return $self->{lastname};
31             }
32              
33             sub age {
34 6     6 0 17 my ($self) = @_;
35 6         28 return $self->{age};
36             }
37              
38             sub birthday {
39 6     6 0 33 my ($self) = @_;
40 6         36 return $self->{birthday};
41             }
42              
43             sub blood_type {
44 6     6 0 17 my ($self) = @_;
45 6         34 return $self->{blood_type};
46             }
47              
48             sub cv {
49 12     12 0 36 my ($self) = @_;
50 12         57 return $self->{cv};
51             }
52              
53             # alias to voiced_by
54             *voiced_by = \&cv;
55              
56             sub say {
57 6     6 0 16 my ($self) = @_;
58 6         33 return $self->{say};
59             }
60              
61             sub color {
62 15     15 0 35 my ($self) = @_;
63 15 100       115 return $self->has_pripara_changed ? $self->{color} : undef;
64             }
65              
66             sub costume_brand {
67 13     13 0 791 my ($self) = @_;
68 13 100       91 return $self->has_pripara_changed ? $self->{costume_brand} : undef;
69             }
70              
71             sub pripara_change {
72 3     3 0 12 my ($self) = @_;
73 3         18 $self->has_pripara_changed(1);
74             }
75              
76             sub BUILD {
77 24     24 1 16933 my ($self, $args) = @_;
78              
79 24         113 my $ds = Data::Section::Simple->new( ref $self );
80 24         193 my $sections = $ds->get_data_section;
81 24         2408 for my $section_name ( keys %{$sections} ) {
  24         87  
82 24         114 my $yml = YAML::Tiny->read_string( $sections->{$section_name} );
83 24         12676 my $member_info = $yml->[0];
84 24         44 for my $key ( keys %{$member_info} ) {
  24         108  
85 216         809 $self->{$key} = $member_info->{$key};
86             }
87             }
88             }
89              
90             1;