The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
package Module::CPANTS::Generator::Backpan;
use strict;
use File::Find::Rule;
use Module::CPANTS::Generator;
use base 'Module::CPANTS::Generator';

use vars qw($VERSION);
$VERSION = "0.004";

sub generate {
  my $self = shift;

  my $cpants = $self->grab_cpants;

  my $backpan;
  foreach my $file (sort File::Find::Rule->file()
    ->in("/home/acme/backpan/BACKPAN")) {
    $file =~ s{^.+/}{};
    next if $file =~ /.readme/;
    my $newfile = $self->massage($file);
#    print "$file -> $newfile\n";
    $backpan->{$newfile}++;
  }

  foreach my $dist (sort grep { -d } <*>) {
    my $newdist = $self->massage($dist);
    my $releases = $backpan->{$newdist};
#    print "$dist: $releases\n";
    $cpants->{cpants}->{$dist}->{releases} = $releases;
  }

  $self->save_cpants($cpants);
}

sub massage {
  my($self, $file) = @_;
  $file =~ s/\.tar.gz$//;
  $file =~ s/\.tgz$//;
  $file =~ s/\.zip$//;
  $file =~ s/-(\d|\.)+//;
  return $file;
}

1;


__END__

=head1 NAME

Module::CPANTS::Generator::Backpan - Generate release information

=head1 SYNOPSIS

  use Module::CPANTS::Generator::Backpan;

  my $b = Module::CPANTS::Generator::Backpan->new;
  $b->directory("unpacked");
  $b->generate;

=head1 DESCRIPTION

This module is part of the beta CPANTS project. It scans through a
Backpan mirror and generates the number of releases a distribution has
made.

=head1 AUTHOR

Leon Brocard <acme@astray.com>

=head1 LICENSE

This code is distributed under the same license as Perl.