package BackPAN::Index::Release;

use strict;
use warnings;

use overload
  q[""]         => sub { $_[0]->distvname },
  fallback      => 1;

use BackPAN::Index::Role::AsHash;

sub data_methods {
    return qw(dist version cpanid date path maturity);
}

sub filename {
    my $self = shift;
    return $self->path->filename;
}

# Compatibility with PBP
sub prefix {
    my $self = shift;
    return $self->path;
}

1;

__END__

=head1 NAME

BackPAN::Index::Release - A single release of a distribution

=head1 SYNOPSIS

  my $b = BackPAN::Index->new();

  # Find version 1.2.3 of Acme-Colour
  my $release = $b->release("Acme-Colour", '1.2.3');

  print "   CPANID: " . $release->cpanid . "\n";
  print "     Date: " . $release->date . "\n";
  print "     Dist: " . $release->dist . "\n";
  print "Distvname: " . $release->distvname . "\n";
  print " Filename: " . $release->filename . "\n";
  print " Maturity: " . $release->maturity . "\n";
  print "     Path: " . $release->path . "\n";
  print "  Version: " . $release->version . "\n";

=head1 DESCRIPTION

BackPAN::Index::Release objects represent releases,
individual tarballs/zip files, of a distribution on BackPAN.

For example, Acme-Pony-1.2.3.tar.gz is a release of the Acme-Pony
distribution.

=head1 METHODS

=head2 cpanid

    my $cpanid = $release->cpanid;

Returns the PAUSE ID of the author of the release.

=head2 date

    my $date = $release->date;

Returns the date of the release, in UNIX epoch seconds.

=head2 dist

    my $dist_name = $release->dist;

Returns the name of the distribution this release belongs to.

=head2 distvname

    my $distvname = $release->distvname;

Returns the name of the distribution, hyphen, and version.

=head2 filename

    my $filename = $release->filename;

Returns the filename of the release, just the file part.

=head2 maturity

    my $maturity = $release->maturity;

Returns the maturity of the release.

=head2 path

    my $path = $release->path;

Returns the full path on CPAN to the release.  This is a
L<BackPAN::File> object.

=head2 version

    my $version = $release->version;

Returns the version of the release:

=head2 as_hash

    my $data = $release->as_hash;

Returns a hash ref containing the data inside C<$release>.


=head1 AUTHOR

Leon Brocard <acme@astray.com> and Michael G Schwern <schwern@pobox.com>

=head1 COPYRIGHT

Copyright (C) 2005-2009, Leon Brocard

This module is free software; you can redistribute it or modify it under
the same terms as Perl itself.

=head1 SEE ALSO

L<BackPAN::Index>, L<BackPAN::Index::Dist>, L<BackPAN::Index::File>

