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($cell) for 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,$scale) for 1..$scale;
}
$self->draw_empty_row($arr->[0],$scale);
}
1;