summaryrefslogtreecommitdiff
path: root/lib/TextPrinter.pm
blob: 1715959a7da40d725f6b9b0591e84b5c9a59a34a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
package TextPrinter; 
use Moose;
use namespace::autoclean;
use Term::ANSIColor;
 
sub draw_cell {
    my ($self,$cell) = @_;
 
    die "unimplemented";
}
 
{
my $white = color('black','on_white');
my $reset = color('reset');
sub draw_row {
    my ($self,$row,$scale)=@_;
    $scale||=1;
    print $white,' 'x(3*$scale);
    for my $cell (@$row) {
        $self->draw_cell($cellfor 1..$scale;
    }
    print $white,' 'x(3*$scale);
    print $reset,"\n";
}
sub draw_empty_row {
    my ($self,$row,$scale)=@_;
    $scale||=1;
 
    print $white,' 'x((6+@$row)*$scale),$reset,"\n" for 1..(3*$scale);
}
}
 
sub draw_whole {
    my ($self,$arr,$scale)=@_;
    $scale||=1;
 
    $self->draw_empty_row($arr->[0],$scale);
 
    for my $row (@$arr) {
        $self->draw_row($row,$scalefor 1..$scale;
    }
 
    $self->draw_empty_row($arr->[0],$scale);
}
 
1;