File Coverage

blib/lib/Khonsu/Font.pm
Criterion Covered Total %
statement 20 20 100.0
branch 4 4 100.0
condition 3 5 60.0
subroutine 8 8 100.0
pod 0 3 0.0
total 35 40 87.5


line stmt bran cond sub pod time code
1             package Khonsu::Font;
2              
3 5     5   33 use parent 'Khonsu::Ra';
  5         12  
  5         35  
4              
5             sub attributes {
6 612     612 0 1543 my $a = shift;
7             return (
8 612     612   2185 colour => {$a->RW, $a->STR, default => sub { '#000' }},
9 612     612   1872 size => {$a->RW, $a->NUM, default => sub { 9 }},
10 612     612   2392 family => {$a->RW, $a->STR, default => sub { 'Times' }},
11             loaded => {$a->RW, $a->DHR},
12 612     612   4710 line_height => {$a->RW, $a->NUM, default => sub { $_[0]->size }},
13 612         25521 );
14             }
15              
16             sub load {
17 1670     1670 0 5448 my ($self, $file, %attributes) = @_;
18 1670         7206 $self->set_attributes(%attributes);
19 1670 100 66     12013 if (!$attributes{line_height} && $self->size > $self->line_height) {
20 20         89 $self->line_height($self->size);
21             }
22 1670         9594 return $self->find($file, $self->family);
23             }
24              
25             sub find {
26 1670     1670 0 5262 my ($self, $file, $family, $enc) = @_;
27 1670         7418 my $loaded = $self->loaded;
28 1670 100       7059 unless ($loaded->{$family}) {
29 837   50     5177 $loaded->{$family} = $file->pdf->corefont($family, -encoding => $enc || 'latin1');
30 837         26475439 $self->loaded($loaded);
31             }
32 1670         11138 return $loaded->{$family};
33              
34             }
35              
36              
37             1;