summaryrefslogtreecommitdiff
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;