# $Id: Stats.pm,v 1.3 2003/09/28 08:09:31 clajac Exp $
package CPANXR::Apache::Stats;
use CPANXR::Database;
use strict;
sub stats {
my ($self, $r, $q) = @_;
my $Dbh = CPANXR::Database->connection();
$r->print("Statistics
\n");
$r->print("
\n"); # Get indexed files { my @types = (".xs", ".pm"); my $result = $Dbh->selectall_arrayref("SELECT type, count(*), sum(loc) FROM files GROUP BY type"); $r->print("File information:
\n"); $r->print("\n"); my $sum = 0; my $loc = 0; $r->print("Type Count LOC\n"); $r->print(("-" x 28) . "\n"); foreach(@$result) { $r->print(sprintf("%s % 8d % 8d\n", $types[$_->[0] - 1], $_->[1], $_->[2])); $sum += $_->[1]; $loc += $_->[2]; } $r->print(("-" x 28) . "\n"); $r->print(sprintf("Sum: % 8d % 8d\n", $sum, $loc)); $r->print("
\n"); } # Symbols and connections { $r->print("Reference information:
\n"); $r->print("\n"); $r->print("Type Count\n"); $r->print(("-" x 28) . "\n"); { my $decl = $Dbh->selectall_arrayref("SELECT count(*) FROM declarations"); my $sym = $Dbh->selectall_arrayref("SELECT count(id) FROM symbols"); my $pkg = $Dbh->selectall_arrayref("SELECT count(distinct symbol_id) FROM packages"); my $conn = $Dbh->selectall_arrayref("SELECT count(*) FROM connections"); $r->print(sprintf("Barewords % 8d\n", $sym->[0]->[0])); $r->print(sprintf("Packages % 8d\n", $pkg->[0]->[0])); $r->print(sprintf("Declarations % 8d\n", $decl->[0]->[0])); $r->print(sprintf("Connections % 8d\n", $conn->[0]->[0])); } } } 1;