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   2450 use Mouse;
  3         23224  
  3         11  
3              
4 3     3   2338 use Data::Section::Simple;
  3         1325  
  3         149  
5 3     3   1619 use YAML::Tiny;
  3         13424  
  3         211  
6 3     3   1854 use Data::Dumper;
  3         17494  
  3         198  
7 3     3   20 use utf8;
  3         4  
  3         49  
8              
9             has has_pripara_changed => (
10             is => 'rw',
11             isa => 'Bool',
12             required => 1,
13             default => 0,
14             );
15              
16 3     3   159 no Mouse;
  3         3  
  3         38  
17              
18             sub name {
19 4     4 0 1299 my ($self) = @_;
20 4         20 return $self->lastname . ' ' . $self->firstname;
21             }
22              
23             sub firstname {
24 12     12 0 17 my ($self) = @_;
25 12         47 return $self->{firstname};
26             }
27              
28             sub lastname {
29 12     12 0 18 my ($self) = @_;
30 12         56 return $self->{lastname};
31             }
32              
33             sub age {
34 6     6 0 13 my ($self) = @_;
35 6         18 return $self->{age};
36             }
37              
38             sub birthday {
39 6     6 0 18 my ($self) = @_;
40 6         29 return $self->{birthday};
41             }
42              
43             sub blood_type {
44 6     6 0 14 my ($self) = @_;
45 6         23 return $self->{blood_type};
46             }
47              
48             sub cv {
49 12     12 0 21 my ($self) = @_;
50 12         38 return $self->{cv};
51             }
52              
53             # alias to voiced_by
54             *voiced_by = \&cv;
55              
56             sub say {
57 1     1 0 2 my ($self) = @_;
58 1         4 return $self->{say};
59             }
60              
61             sub color {
62 15     15 0 23 my ($self) = @_;
63 15 100       81 return $self->has_pripara_changed ? $self->{color} : undef;
64             }
65              
66             sub costume_brand {
67 13     13 0 619 my ($self) = @_;
68 13 100       73 return $self->has_pripara_changed ? $self->{costume_brand} : undef;
69             }
70              
71             sub pripara_change {
72 3     3 0 7 my ($self) = @_;
73 3         12 $self->has_pripara_changed(1);
74             }
75              
76             sub BUILD {
77 24     24 1 8821 my ($self, $args) = @_;
78              
79 24         106 my $ds = Data::Section::Simple->new( ref $self );
80 24         563 my $sections = $ds->get_data_section;
81 24         1511 for my $section_name ( keys %{$sections} ) {
  24         70  
82 24         108 my $yml = YAML::Tiny->read_string( $sections->{$section_name} );
83 24         8275 my $member_info = $yml->[0];
84 24         27 for my $key ( keys %{$member_info} ) {
  24         100  
85 196         689 $self->{$key} = $member_info->{$key};
86             }
87             }
88             }
89              
90             1;