BackPAN-Index

 view release on metacpan or  search on metacpan

lib/BackPAN/Index/Release.pm  view on Meta::CPAN

use utf8;
package BackPAN::Index::Release;

# Created by DBIx::Class::Schema::Loader
# DO NOT MODIFY THE FIRST PART OF THIS FILE

use strict;
use warnings;

use base 'DBIx::Class::Core';
__PACKAGE__->table("releases");
__PACKAGE__->add_columns(
  "path",
  { data_type => "text", is_foreign_key => 1, is_nullable => 0 },
  "dist",
  { data_type => "text", is_foreign_key => 1, is_nullable => 0 },
  "date",
  { data_type => "integer", is_nullable => 0 },
  "size",
  { data_type => "text", is_nullable => 0 },
  "version",
  { data_type => "text", is_nullable => 0 },
  "maturity",
  { data_type => "text", is_nullable => 0 },
  "distvname",
  { data_type => "text", is_nullable => 0 },
  "cpanid",
  { data_type => "text", is_nullable => 0 },
);
__PACKAGE__->set_primary_key("path");
__PACKAGE__->belongs_to(
  "dist",
  "BackPAN::Index::Dist",
  { name => "dist" },
  { is_deferrable => 0, on_delete => "NO ACTION", on_update => "NO ACTION" },
);
__PACKAGE__->has_many(
  "dists_first_releases",
  "BackPAN::Index::Dist",
  { "foreign.first_release" => "self.path" },
  { cascade_copy => 0, cascade_delete => 0 },
);
__PACKAGE__->has_many(
  "dists_latest_releases",
  "BackPAN::Index::Dist",
  { "foreign.latest_release" => "self.path" },
  { cascade_copy => 0, cascade_delete => 0 },
);
__PACKAGE__->belongs_to(
  "path",
  "BackPAN::Index::File",
  { path => "path" },
  { is_deferrable => 0, on_delete => "NO ACTION", on_update => "NO ACTION" },
);


# Created by DBIx::Class::Schema::Loader v0.07033 @ 2012-12-27 01:39:08
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:MhFMcHAmoBJtN17iZgHLEw

use Mouse;
with 'BackPAN::Index::Role::AsHash';

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

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



( run in 1.991 second using v1.01-cache-2.11-cpan-39bf76dae61 )