- From: Olivier Thereaux <ot@dev.w3.org>
- Date: Wed, 02 Jun 2004 07:38:41 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/perl/modules/W3C/LogValidator/lib/W3C/LogValidator/Output
In directory hutz:/tmp/cvs-serv4976
Modified Files:
Mail.pm Raw.pm
Log Message:
pretty print for raw output, nuking redundant code in e-mail output
Index: Raw.pm
===================================================================
RCS file: /sources/public/perl/modules/W3C/LogValidator/lib/W3C/LogValidator/Output/Raw.pm,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- Raw.pm 5 Apr 2004 04:26:07 -0000 1.3
+++ Raw.pm 2 Jun 2004 07:38:39 -0000 1.4
@@ -36,8 +36,58 @@
return $self;
}
+
+sub width
+{
+ my $self = shift;
+ my $column_num = shift;
+ my %results = %{(shift)};
+ my @thead = @{$results{"thead"}};
+ my @trows = @{$results{"trows"}};
+ my $headerwidth= length($thead[$column_num]);
+ my $columnwidth = 0;
+ my $cellwidth = 0;
+ my @tcolumn;
+ while (@trows)
+ {
+ my @row=@{shift (@trows)};
+ $cellwidth = length($row[$column_num]);
+ if ($cellwidth > $columnwidth) { $columnwidth = $cellwidth; }
+ }
+ if ($columnwidth > $headerwidth+1)
+ {
+ return $columnwidth+1;
+ }
+ else
+ {
+ return $headerwidth+2;
+ }
+
+}
+
+sub spaces
+{
+ my $self = shift;
+ my $spaces = shift;
+ my $bloat = "";
+ for (my $i=0; $i<$spaces; $i++)
+ { $bloat = $bloat." "; } # lame, innit?
+ return $bloat;
+}
+
+sub dashes
+{
+ my $self = shift;
+ my $spaces = shift;
+ my $bloat = "";
+ for (my $i=0; $i<$spaces; $i++)
+ { $bloat = $bloat."-"; } # lame, innit?
+ return $bloat;
+}
+
sub output
{
+ use POSIX;
my $self = shift;
my %results;
my $outputstr ="";
@@ -48,22 +98,49 @@
************************************************************************\n";
$outputstr= $outputstr.$results{"intro"}."\n\n" if ($results{"intro"});
my @thead = @{$results{"thead"}};
+ my $column_num = 0;
+ my $all_columns = int(@thead);
+ my @widths;
+ # printing table headers
while (@thead)
{
my $header = shift (@thead);
- $outputstr= $outputstr."$header ";
+ my $spaces;
+ $widths[$column_num] = $self->width($column_num, \%results);
+ if ($widths[$column_num] > length($header)+2)
+ {
+ $spaces = $widths[$column_num] - length($header)+2;
+ }
+ else { $spaces = 2 }
+ my $space_before= ceil($spaces/2);
+ my $space_after= floor($spaces/2);
+ $outputstr= $outputstr.$self->spaces($space_before);
+ $outputstr= $outputstr."$header";
+ $outputstr= $outputstr.$self->spaces($space_after+1);
+ $column_num = $column_num+1;
+ }
+ $outputstr= $outputstr."\n";
+
+ # printing separation dashes
+ for ( my $clm = 0; $clm < $all_columns; $clm++)
+ {
+ $outputstr=$outputstr."".$self->dashes($widths[$clm])." ";
}
$outputstr= $outputstr."\n";
+ # printing the bulk of results table
my @trows = @{$results{"trows"}};
while (@trows)
{
+ my $column_num = 0;
my @row=@{shift (@trows)};
my $tcell;
while (@row)
{
$tcell= shift (@row);
chomp $tcell;
- $outputstr= $outputstr."$tcell ";
+ my $spaces = $widths[$column_num] - length($tcell);
+ $outputstr= $outputstr."$tcell".$self->spaces($spaces+1);
+ $column_num = $column_num+1;
}
$outputstr= $outputstr."\n";
}
Index: Mail.pm
===================================================================
RCS file: /sources/public/perl/modules/W3C/LogValidator/lib/W3C/LogValidator/Output/Mail.pm,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- Mail.pm 28 Mar 2004 19:26:33 -0000 1.3
+++ Mail.pm 2 Jun 2004 07:38:39 -0000 1.4
@@ -42,34 +42,10 @@
my %results;
my $outputstr ="";
if (@_) {%results = %{(shift)}}
- $outputstr= "
-************************************************************************
-Results for module ".$results{'name'}."
-************************************************************************\n";
- $outputstr= $outputstr.$results{"intro"}."\n\n" if ($results{"intro"});
- my @thead = @{$results{"thead"}};
- while (@thead)
- {
- my $header = shift (@thead);
- $outputstr= $outputstr."$header ";
- }
- $outputstr= $outputstr."\n";
- my @trows = @{$results{"trows"}};
- while (@trows)
- {
- my @row=@{shift (@trows)};
- my $tcell;
- while (@row)
- {
- $tcell= shift (@row);
- chomp $tcell;
- $outputstr= $outputstr."$tcell ";
- }
- $outputstr= $outputstr."\n";
- }
- $outputstr= $outputstr."\n";
- $outputstr= $outputstr.$results{"outro"}."
-************************************************************************\n\n" if ($results{"outro"});
+ use W3C::LogValidator::Output::Raw;
+ $outputstr = W3C::LogValidator::Output::Raw->output(\%results);
+ print $outputstr if ($verbose >2 ); # debug
+
return $outputstr;
}
Received on Wednesday, 2 June 2004 03:38:41 UTC