From d045d72317cb897f520ff8d2524195233450a040 Mon Sep 17 00:00:00 2001 From: franck cuny Date: Sun, 19 Apr 2009 21:11:02 +0200 Subject: add has_many and belongsto; now generate a _real_ author's graph --- lib/CPAN/mapcpan.pm | 83 +++++++++++++++++++++++++++-------------------------- 1 file changed, 43 insertions(+), 40 deletions(-) (limited to 'lib') diff --git a/lib/CPAN/mapcpan.pm b/lib/CPAN/mapcpan.pm index f93f8c8..440f62d 100644 --- a/lib/CPAN/mapcpan.pm +++ b/lib/CPAN/mapcpan.pm @@ -1,42 +1,3 @@ -package CPAN::cpanmap::edges; -use base 'DBIx::Class'; -use strict; -use warnings; - -__PACKAGE__->load_components( qw/ Core/ ); -__PACKAGE__->table( 'edges' ); - -__PACKAGE__->add_columns( - 'id' => { - 'data_type' => 'integer', - 'is_auto_increment' => 0, - 'default_value' => undef, - 'is_foreign_key' => 0, - 'name' => 'id', - 'is_nullable' => 0, - 'size' => 0 - }, - 'dist_from' => { - 'data_type' => 'integer', - 'is_auto_increment' => 0, - 'default_value' => undef, - 'is_foreign_key' => 0, - 'name' => 'dist_from', - 'is_nullable' => 0, - 'size' => 0 - }, - 'dist_to' => { - 'data_type' => 'integer', - 'is_auto_increment' => 0, - 'default_value' => undef, - 'is_foreign_key' => 0, - 'name' => 'dist_to', - 'is_nullable' => 0, - 'size' => 0 - }, -); -__PACKAGE__->set_primary_key('id'); - package CPAN::cpanmap::packages; use base 'DBIx::Class'; use strict; @@ -101,7 +62,49 @@ __PACKAGE__->add_columns( 'size' => 0 } ); -__PACKAGE__->set_primary_key('id'); +__PACKAGE__->set_primary_key( 'id' ); +__PACKAGE__->has_many( edges => 'CPAN::cpanmap::edges', 'dist_from' ); + +package CPAN::cpanmap::edges; +use base 'DBIx::Class'; +use strict; +use warnings; + +__PACKAGE__->load_components( qw/ Core/ ); +__PACKAGE__->table( 'edges' ); + +__PACKAGE__->add_columns( + 'id' => { + 'data_type' => 'integer', + 'is_auto_increment' => 0, + 'default_value' => undef, + 'is_foreign_key' => 0, + 'name' => 'id', + 'is_nullable' => 0, + 'size' => 0 + }, + 'dist_from' => { + 'data_type' => 'integer', + 'is_auto_increment' => 0, + 'default_value' => undef, + 'is_foreign_key' => 0, + 'name' => 'dist_from', + 'is_nullable' => 0, + 'size' => 0 + }, + 'dist_to' => { + 'data_type' => 'integer', + 'is_auto_increment' => 0, + 'default_value' => undef, + 'is_foreign_key' => 0, + 'name' => 'dist_to', + 'is_nullable' => 0, + 'size' => 0 + }, +); +__PACKAGE__->set_primary_key( 'id' ); +__PACKAGE__->belongs_to( dist_from => 'CPAN::cpanmap::packages' ); +__PACKAGE__->belongs_to( dist_to => 'CPAN::cpanmap::packages' ); package CPAN::cpanmap; use base 'DBIx::Class::Schema'; -- cgit v1.2.3