NAME
   CPAN::Index::API - Read and write CPAN index files

VERSION
   version 0.005

SYNOPSIS
       my $index = CPAN::Index::API->new_from_repo_uri(
           repo_uri => 'http://cpan.perl.org/',
           files => [qw(PackagesDetails ModList MailRc)],
       );

       my $packages = $index->file('PackagesDetails');

DESRIPTION
   "CPAN::Index::API" is a library to read and write CPAN index files. See
   the modules in the "CPAN::Index::API::File" namesace for documentation
   on the individual files supported.

   This class provides a convenient interface for working with multiple
   files from the same location at the same time.

CONSTRUCTION
 new
   Creates a new index object. Accepts the following parameters:

   files
       Required. Hashrefs whose values are "CPAN::Index::API::File"
       objects. The individual objects can later be accessed by their
       respective hash key via the "file" method.

   repo_path
       Optional. Path to the root of the repository to which the index
       files belong.

   repo_uri
       Optional. Base uri of the repository to which the index files
       belong.

 new_from_repo_path
   Creates a new index object by reading one or more index files from a
   local repository. Accepts the following parameters:

   files
       Required. Arrayref of names of index files to be read. Each name
       must be the name of a plugin under the "CPAN::Index::API::File::"
       namespace, e.g. "PackagesDetails", "ModList", etc.

   repo_path
       Required. Path to the root of the local repository.

 new_from_repo_uri
   Creates a new index object by reading one or more index files from a
   remote repository. Accepts the following parameters:

   files
       Required. Arrayref of names of index files to be read. Each name
       must be the name of a plugin under the "CPAN::Index::API::File::"
       namespace, e.g. "PackagesDetails", "ModList", etc.

   repo_uri
       Required. Path to the base uri of the remote repository.

METHODS
 file
   Given the name of a file plugin loaded within the index, returns the
   object corresponding to this index file.

 repo_path
   Returns the path to the repository.

 repo_uri
   Returns the base uri of the repository.

 write_all_files
   Writes all index files to their default locations under "repo_path".

 clone
   Creates a new instance of this object, overloading any of the existing
   attributes with any arguments passed.

AUTHOR
   Peter Shangov <[email protected]>

COPYRIGHT AND LICENSE
   This software is copyright (c) 2012 by Venda, Inc..

   This is free software; you can redistribute it and/or modify it under
   the same terms as the Perl 5 programming language system itself.