Perl-Toolchain-Gang / CPAN-DistnameInfo

Extract information from a CPAN distribution name
http://search.cpan.org/dist/CPAN-DistnameInfo/
9 stars 9 forks source link

NAME CPAN::DistnameInfo - Extract distribution name and version from a distribution filename

SYNOPSIS my $pathname = "authors/id/G/GB/GBARR/CPAN-DistnameInfo-0.02.tar.gz";

  my $d = CPAN::DistnameInfo->new($pathname);

  my $dist      = $d->dist;      # "CPAN-DistnameInfo"
  my $version   = $d->version;   # "0.02"
  my $maturity  = $d->maturity;  # "released"
  my $filename  = $d->filename;  # "CPAN-DistnameInfo-0.02.tar.gz"
  my $cpanid    = $d->cpanid;    # "GBARR"
  my $distvname = $d->distvname; # "CPAN-DistnameInfo-0.02"

  my %prop = $d->properties;

DESCRIPTION Many online services that are centered around CPAN attempt to associate multiple uploads by extracting a distribution name from the filename of the upload. For most distributions this is easy as they have used ExtUtils::MakeMaker or Module::Build to create the distribution, which results in a uniform name. But sadly not all uploads are created in this way.

"CPAN::DistnameInfo" uses heuristics that have been learnt by
<http://search.cpan.org/> to extract the distribution name and version
from filenames and also report if the version is to be treated as a
developer release

The constructor takes a single pathname, returning an object with the
following methods

cpanid
    If the path given looked like a CPAN authors directory path, then
    this will be the the CPAN id of the author.

dist
    The name of the distribution

distvname
    The file name with any suffix and leading directory names removed

filename
    If the path given looked like a CPAN authors directory path, then
    this will be the path to the file relative to the detected CPAN
    author directory. Otherwise it is the path that was passed in.

maturity
    The maturity of the distribution. This will be either "released" or
    "developer"

properties
    This will return a list of key-value pairs, suitable for assigning
    to a hash, for the known properties.

version
    The extracted version

AUTHOR Graham Barr gbarr@pobox.com

COPYRIGHT Copyright (c) 2003 Graham Barr. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.