Calendar-Plugin-Renderer
view release on metacpan or search on metacpan
lib/Calendar/Plugin/Renderer/Text.pm view on Meta::CPAN
=head2 get_day_header()
=cut
sub get_day_header {
my ($self) = @_;
my $max_length_day_name = $self->max_days_name;
my $day_names = $self->day_names;
my $line = '<blue><bold>|</bold></blue>';
my $i = 1;
foreach (@$day_names) {
my $x = length($_);
my $y = $max_length_day_name - $x;
my $z = $y + 1;
if ($i == 1) {
$line .= ((' ')x$z). "<yellow><bold>$_</bold></yellow>";
$i++;
}
else {
$line .= " <blue><bold>|</bold></blue>".((' ')x$z)."<yellow><bold>$_</bold></yellow>";
}
}
$line .= " <blue><bold>|</bold></blue>";
return $line;
}
=head2 get_month_header()
=cut
sub get_month_header {
my ($self) = @_;
my $f = $self->f;
my $s = $self->s;
my $h = $self->month_head;
return '<blue><bold>|</bold></blue>'.
(' ')x($f-1).
'<yellow><bold>'.
$h.
'</bold></yellow>'.
(' ')x($s-1).
'<blue><bold>|</bold></blue>';
}
=head2 get_dashed_line()
=cut
sub get_dashed_line {
my ($self) = @_;
my $line_size = $self->line_size;
return '<blue><bold>+'.('-')x($line_size-2).'+</bold></blue>';
}
=head2 get_blocked_line()
=cut
sub get_blocked_line {
my ($self) = @_;
my $max_length_day_name = $self->max_days_name;
my $line = '<blue><bold>+';
foreach (1..7) {
$line .= ('-')x($max_length_day_name+2).'+';
}
$line .= '</bold></blue>';
return $line;
}
=head2 get_empty_space()
=cut
sub get_empty_space {
my ($self) = @_;
my $max_length_day_name = $self->max_days_name;
my $start_index = $self->start_index;
my $line = '';
if ($start_index % 7 != 0) {
$line .= '<blue><bold>|</bold></blue>'.(' ')x($max_length_day_name+2);
map { $line .= ' 'x($max_length_day_name+3) } (2..($start_index %= 7));
}
return $line;
}
=head2 get_dates()
=cut
sub get_dates {
my ($self) = @_;
my $max_length_day_name = $self->max_days_name;
my $start_index = $self->start_index;
my $days = $self->days;
my $line = '';
my $blocked_line = $self->get_blocked_line;
foreach (1 .. $days) {
$line .= sprintf("<blue><bold>|</bold></blue><cyan><bold>%".($max_length_day_name+1)."s </bold></cyan>", $_);
if ($_ != $days) {
$line .= "<blue><bold>|</bold></blue>\n".$blocked_line."\n" unless (($start_index + $_) % 7);
}
elsif ($_ == $days) {
my $x = 7 - (($start_index + $_) % 7);
if (($x >= 2) && ($x != 7)) {
$line .= '<blue><bold>|</bold></blue>'. (' 'x($max_length_day_name+2));
map { $line .= ' 'x($max_length_day_name+3) } (1..$x-1);
}
elsif ($x != 7) {
$line .= '<blue><bold>|</bold></blue>'.' 'x($max_length_day_name+2);
}
}
}
return sprintf("%s<blue><bold>|</bold></blue>\n%s\n", $line, $blocked_line);
}
=head1 AUTHOR
Mohammad S Anwar, C<< <mohammad.anwar at yahoo.com> >>
=head1 REPOSITORY
L<https://github.com/manwar/Calendar-Plugin-Renderer>
( run in 0.538 second using v1.01-cache-2.11-cpan-0fb53d1c279 )