diff options
| -rwxr-xr-x | cpan-graph.pl | 19 | ||||
| -rwxr-xr-x | gen-gdf.pl | 17 | ||||
| -rw-r--r-- | lib/CPAN/cpants.pm | 2 | ||||
| -rw-r--r-- | lib/CPAN/mapcpan.pm | 53 |
4 files changed, 25 insertions, 66 deletions
diff --git a/cpan-graph.pl b/cpan-graph.pl index c2e5324..797a0d5 100755 --- a/cpan-graph.pl +++ b/cpan-graph.pl @@ -8,6 +8,7 @@ use lib ( 'lib' ); use CPAN::Testers; use CPAN::cpants; use CPAN::mapcpan; +use DateTime; my $options = GetOptions( 'dbtest=s' => \my $db_test, @@ -15,6 +16,9 @@ my $options = GetOptions( 'dbout=s' => \my $db_out, ); +# TODO +# generer une carte des auteurs + my $sqltest = CPAN::Testers->connect( "dbi:SQLite:dbname=" . $db_test, '', '' ); my $sqlall = CPAN::cpants->connect( "dbi:SQLite:dbname=" . $db_all, '', '' ); @@ -29,16 +33,6 @@ while ( my $dist = $dists->next ) { my $map_package = $dbmap->resultset( 'packages' ) ->find_or_create( { dist => $dist->dist, } ); - my $modules - = $sqlall->resultset( 'modules' )->search( { dist => $dist->id } ); - while ( my $module = $modules->next ) { - my $map_module = $dbmap->resultset( 'modules' )->find_or_create( - { module => $module->module, - in_dist => $map_package->id, - } - ); - } - my $tests_pass = $sqltest->resultset( 'reports' ) ->count( { distribution => $dist->dist, status => 'PASS' } ); my $tests_fail = $sqltest->resultset( 'reports' ) @@ -48,10 +42,13 @@ while ( my $dist = $dists->next ) { my $tests_success = int( ( $tests_pass / $total_tests ) * 100 ); my $author = $sqlall->resultset( 'author' )->find( $dist->author ); + my ($year, $month, $day) = $dist->released =~ /^(\d{4})-(\d{2})-(\d{2})/; $map_package->update( { tests_success => $tests_success, author => $author->pauseid, - released => $dist->released, + version => $dist->version, + released => + DateTime->new( year => $year, month => $month, day => $day ), } ); @@ -5,6 +5,7 @@ use Getopt::Long; use XML::Simple; use YAML::Syck; use IO::All; +use DateTime; use lib ( 'lib' ); use CPAN::mapcpan; @@ -35,23 +36,15 @@ say "done"; print "creating nodes ... "; $struct_graph->{ gexf }->{ graph }->{ nodes } = {}; my $packages = $dbmap->resultset( 'packages' )->search; -while ( my $package = $packages->next ) { - - my $datefrom - = ( $package->released ) - ? substr( $package->released, 0, 10 ) - : '1997-01-01'; - $datefrom =~ s/1970-01-01/1997-01-01/; - #my $dateto = ""; +while ( my $package = $packages->next ) { + my ( $year, $month, $day ) + = $package->released =~ /^(\d{4})-(\d{2})-(\d{2})/; push @{ $struct_graph->{ gexf }->{ graph }->{ nodes }->{ node } }, { id => $package->id, label => $package->dist, author => $package->author, - datefrom => $datefrom, - - #dateto => $dateto, - attvalue => [ { id => 0, value => $package->dist } ], + datefrom => join( '/', $year, $month, $day ), }; } say "done"; diff --git a/lib/CPAN/cpants.pm b/lib/CPAN/cpants.pm index 686c834..e64dc29 100644 --- a/lib/CPAN/cpants.pm +++ b/lib/CPAN/cpants.pm @@ -744,7 +744,7 @@ use base 'DBIx::Class'; use strict; use warnings; -__PACKAGE__->load_components( qw/ Core/ ); +__PACKAGE__->load_components( qw/ Core / ); __PACKAGE__->table( 'dist' ); __PACKAGE__->add_columns( diff --git a/lib/CPAN/mapcpan.pm b/lib/CPAN/mapcpan.pm index 7dcd13e..f93f8c8 100644 --- a/lib/CPAN/mapcpan.pm +++ b/lib/CPAN/mapcpan.pm @@ -42,7 +42,7 @@ use base 'DBIx::Class'; use strict; use warnings; -__PACKAGE__->load_components( qw/ Core/ ); +__PACKAGE__->load_components( qw/InflateColumn::DateTime Core/ ); __PACKAGE__->table( 'packages' ); __PACKAGE__->add_columns( @@ -64,6 +64,15 @@ __PACKAGE__->add_columns( 'is_nullable' => 1, 'size' => 0 }, + 'version' => { + 'data_type' => 'text', + 'is_auto_increment' => 0, + 'default_value' => undef, + 'is_foreign_key' => 0, + 'name' => 'version', + 'is_nullable' => 1, + 'size' => 0 + }, 'tests_success' => { 'data_type' => 'integer', 'is_auto_increment' => 0, @@ -83,7 +92,7 @@ __PACKAGE__->add_columns( 'size' => 0 }, 'released' => { - 'data_type' => 'date', + 'data_type' => 'datetime', 'is_auto_increment' => 0, 'default_value' => undef, 'is_foreign_key' => 0, @@ -94,45 +103,6 @@ __PACKAGE__->add_columns( ); __PACKAGE__->set_primary_key('id'); -package CPAN::cpanmap::modules; -use base 'DBIx::Class'; -use strict; -use warnings; - -__PACKAGE__->load_components( qw/ Core/ ); -__PACKAGE__->table( 'modules' ); - -__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 - }, - 'module' => { - 'data_type' => 'text', - 'is_auto_increment' => 0, - 'default_value' => undef, - 'is_foreign_key' => 0, - 'name' => 'module', - 'is_nullable' => 1, - 'size' => 0 - }, - 'in_dist' => { - 'data_type' => 'integer', - 'is_auto_increment' => 0, - 'default_value' => undef, - 'is_foreign_key' => 0, - 'name' => 'in_dist', - 'is_nullable' => 1, - 'size' => 0 - }, -); -__PACKAGE__->set_primary_key('id'); - package CPAN::cpanmap; use base 'DBIx::Class::Schema'; use strict; @@ -140,6 +110,5 @@ use warnings; __PACKAGE__->register_class( 'edges', 'CPAN::cpanmap::edges' ); __PACKAGE__->register_class( 'packages', 'CPAN::cpanmap::packages' ); -__PACKAGE__->register_class( 'modules', 'CPAN::cpanmap::modules' ); 1; |
