use
5.008005;
our
$VERSION
=
'0.06'
;
sub
import
{
my
$class
=
shift
;
my
$params
= Params::Util::_HASH(
shift
) || {};
$params
->{maxage} ||= 24 * 60 * 60;
$class
->can(
'orlite'
) or
ORLite::Mirror->
import
(
$params
);
return
1;
}
sub
distribution {
my
$self
=
shift
;
my
@dist
= CPANDB::Distribution->
select
(
'where distribution = ?'
,
$_
[0],
);
unless
(
@dist
) {
die
(
"Distribution '$_[0]' does not exist"
);
}
return
$dist
[0];
}
sub
graph {
my
$class
=
shift
;
my
$graph
= Graph::Directed->new;
foreach
my
$vertex
( CPANDB::Distribution->
select
) {
$graph
->add_vertex(
$vertex
->distribution );
}
foreach
my
$edge
( CPANDB::Dependency->
select
) {
$graph
->add_edge(
$edge
->
distribution
=>
$edge
->dependency );
}
return
$graph
;
}
sub
easy {
my
$class
=
shift
;
my
$graph
= Graph::Easy->new;
foreach
my
$vertex
( CPANDB::Distribution->
select
) {
$graph
->add_vertex(
$vertex
->distribution );
}
foreach
my
$edge
( CPANDB::Dependency->
select
) {
$graph
->add_edge(
$edge
->
distribution
=>
$edge
->dependency );
}
return
$graph
;
}
sub
xgmml {
my
$class
=
shift
;
my
$graph
= Graph::XGMML->new(
directed
=> 1,
@_
);
foreach
my
$vertex
( CPANDB::Distribution->
select
) {
$graph
->add_vertex(
$vertex
->distribution );
}
foreach
my
$edge
( CPANDB::Dependency->
select
) {
$graph
->add_edge(
$edge
->
distribution
=>
$edge
->dependency );
}
$graph
->end;
return
1;
}
sub
csv {
my
$class
=
shift
;
my
$file
=
shift
;
my
$csv
= IO::File->new(
$file
,
'w'
);
foreach
my
$edge
( CPANDB::Dependency->
select
) {
$csv
->
print
(
$edge
->distribution .
"\t"
.
$edge
->dependency .
"\n"
);
}
$csv
->
close
;
}
1;