summary refs log tree commit diff
diff options
context:
space:
mode:
authorfranck cuny <franck@lumberjaph.net>2009-04-06 14:20:57 +0200
committerfranck cuny <franck@lumberjaph.net>2009-04-06 14:20:57 +0200
commit8e11a2cd920b4b8e0657bd9ab2b49fc78dde6dfa (patch)
tree0c605ce0b9c7903f39e4a6380f133489a0873c23
parentadd type and id in edge (diff)
parentfix date (diff)
downloadcpan-graph-8e11a2cd920b4b8e0657bd9ab2b49fc78dde6dfa.tar.gz
merge done
-rwxr-xr-xcpan-graph.pl19
-rwxr-xr-xgen-gdf.pl17
-rw-r--r--lib/CPAN/cpants.pm2
-rw-r--r--lib/CPAN/mapcpan.pm53
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 ),
         }
     );
 
diff --git a/gen-gdf.pl b/gen-gdf.pl
index b849637..d01dd40 100755
--- a/gen-gdf.pl
+++ b/gen-gdf.pl
@@ -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;