Pinto
view release on metacpan or search on metacpan
lib/Pinto/Schema/Result/Package.pm view on Meta::CPAN
use utf8;
package Pinto::Schema::Result::Package;
# Created by DBIx::Class::Schema::Loader
# DO NOT MODIFY THE FIRST PART OF THIS FILE
use strict;
use warnings;
use Moose;
use MooseX::NonMoose;
use MooseX::MarkAsMethods autoclean => 1;
extends 'DBIx::Class::Core';
__PACKAGE__->table("package");
__PACKAGE__->add_columns(
"id", { data_type => "integer", is_auto_increment => 1, is_nullable => 0 },
"name", { data_type => "text", is_nullable => 0 },
"version", { data_type => "text", is_nullable => 0 },
"file", { data_type => "text", default_value => \"null", is_nullable => 1 },
"sha256", { data_type => "text", default_value => \"null", is_nullable => 1 },
"distribution", { data_type => "integer", is_foreign_key => 1, is_nullable => 0 },
);
__PACKAGE__->set_primary_key("id");
__PACKAGE__->add_unique_constraint( "name_distribution_unique", [ "name", "distribution" ] );
__PACKAGE__->belongs_to(
"distribution",
"Pinto::Schema::Result::Distribution",
{ id => "distribution" },
{ is_deferrable => 0, on_delete => "CASCADE", on_update => "NO ACTION" },
);
__PACKAGE__->has_many(
"registrations", "Pinto::Schema::Result::Registration",
{ "foreign.package" => "self.id" }, { cascade_copy => 0, cascade_delete => 0 },
);
with 'Pinto::Role::Schema::Result';
# Created by DBIx::Class::Schema::Loader v0.07033 @ 2013-03-04 12:39:54
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:wYrDViIlHDocM5byRBn1Qg
#------------------------------------------------------------------------------
# ABSTRACT: Represents a Package provided by a Distribution
#------------------------------------------------------------------------------
use String::Format;
use Pinto::PackageSpec;
use Pinto::Util qw(itis throw);
use overload (
'""' => 'to_string',
'<=>' => 'numeric_compare',
'cmp' => 'string_compare',
fallback => undef
);
#------------------------------------------------------------------------------
our $VERSION = '0.097'; # VERSION
#------------------------------------------------------------------------------
__PACKAGE__->inflate_column(
'version' => {
inflate => sub { version->parse( $_[0] ) },
deflate => sub { $_[0]->stringify() },
}
);
#------------------------------------------------------------------------------
# Schema::Loader does not create many-to-many relationships for us. So we
# must create them by hand here...
__PACKAGE__->many_to_many( revisions => 'registration', 'revision' );
#------------------------------------------------------------------------------
sub FOREIGNBUILDARGS {
my ( $class, $args ) = @_;
$args ||= {};
$args->{version} = 0 if not defined $args->{version};
# We're no longer storing the file path and sha digests of each package
# because the paths in the META are often wrong anyway, and that would
# cause Dist::Metadata to blow up. I had hoped this information would be
# used to figure out which distribution a given file came from. But I've
# decided that is out of scope for Pinto. Eventually, we'll remove
# these from the schema entirely.
( run in 0.787 second using v1.01-cache-2.11-cpan-5837b0d9d2c )