line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
1
|
|
|
|
|
|
|
package App::Gimei::Generator; |
2
|
|
|
|
|
|
|
|
3
|
9
|
|
|
9
|
|
591
|
use warnings; |
|
9
|
|
|
|
|
23
|
|
|
9
|
|
|
|
|
288
|
|
4
|
9
|
|
|
9
|
|
92
|
use v5.22; |
|
9
|
|
|
|
|
30
|
|
5
|
|
|
|
|
|
|
|
6
|
9
|
|
|
9
|
|
46
|
use Carp; |
|
9
|
|
|
|
|
23
|
|
|
9
|
|
|
|
|
685
|
|
7
|
9
|
|
|
|
|
65
|
use Class::Tiny qw( |
8
|
|
|
|
|
|
|
word_class |
9
|
|
|
|
|
|
|
gender |
10
|
|
|
|
|
|
|
word_subtype |
11
|
|
|
|
|
|
|
render |
12
|
|
|
|
|
|
|
cache |
13
|
9
|
|
|
9
|
|
644
|
); |
|
9
|
|
|
|
|
3290
|
|
14
|
9
|
|
|
9
|
|
11261
|
use Data::Gimei; |
|
9
|
|
|
|
|
356132
|
|
|
9
|
|
|
|
|
2499
|
|
15
|
|
|
|
|
|
|
|
16
|
|
|
|
|
|
|
sub BUILDARGS { |
17
|
29
|
|
|
29
|
0
|
2890
|
my ( $class, %args ) = @_; |
18
|
|
|
|
|
|
|
|
19
|
29
|
|
|
|
|
90
|
for my $arg ( qw/word_class/ ) { |
20
|
29
|
50
|
|
|
|
123
|
croak "$arg arg required" unless exists $args{$arg}; |
21
|
|
|
|
|
|
|
} |
22
|
|
|
|
|
|
|
|
23
|
29
|
|
100
|
|
|
142
|
$args{word_subtype} //= ''; |
24
|
29
|
|
100
|
|
|
150
|
$args{gender} //= ''; |
25
|
29
|
|
100
|
|
|
116
|
$args{render} //= 'kanji'; |
26
|
|
|
|
|
|
|
|
27
|
29
|
|
|
|
|
81
|
return \%args; |
28
|
|
|
|
|
|
|
} |
29
|
|
|
|
|
|
|
|
30
|
|
|
|
|
|
|
sub execute { |
31
|
28
|
|
|
28
|
0
|
140
|
my ( $self, $cache ) = @_; |
32
|
28
|
|
|
|
|
45
|
my ( $word ); |
33
|
|
|
|
|
|
|
|
34
|
28
|
|
|
|
|
515
|
my $key = $self->word_class . $self->gender; |
35
|
28
|
|
|
|
|
751
|
$word = $cache->{$key}; |
36
|
28
|
100
|
|
|
|
85
|
if (!defined $word) { |
37
|
26
|
|
100
|
|
|
442
|
$word = $self->word_class->new( gender => ($self->gender || undef) ); |
38
|
26
|
|
|
|
|
493318
|
$cache->{$key} = $word; |
39
|
|
|
|
|
|
|
} |
40
|
|
|
|
|
|
|
|
41
|
28
|
100
|
|
|
|
544
|
if ($self->word_subtype eq 'gender') { |
|
|
100
|
|
|
|
|
|
42
|
4
|
|
|
|
|
105
|
return $word->gender; |
43
|
|
|
|
|
|
|
} elsif ($self->word_subtype) { |
44
|
12
|
|
|
|
|
451
|
my $call = $word->can($self->word_subtype); |
45
|
12
|
|
|
|
|
284
|
$word = $word->$call(); |
46
|
|
|
|
|
|
|
} |
47
|
|
|
|
|
|
|
|
48
|
24
|
|
|
|
|
848
|
my $call = $word->can($self->render); |
49
|
24
|
|
|
|
|
365
|
$word = $word->$call(); |
50
|
|
|
|
|
|
|
|
51
|
24
|
|
|
|
|
1441
|
return $word; |
52
|
|
|
|
|
|
|
} |
53
|
|
|
|
|
|
|
|
54
|
|
|
|
|
|
|
1; |