CPANTS::Weight - Graph based weights for CPAN Distributions
CPAN::Weight is a module that consumes the CPANTS database, and generates a variety of graph-based weighting values for the distributions, producing a SQLite database of the weighting data, for use in higher-level applications that work with the CPANTS data.
CPAN::Weight
CPANTS::Weight->run;
The main run method does a complete generation cycle for the CPANTS weighting database. It will retrieve the CPANTS data (if needed) calculate the weights, and then (re)populate the CPANTS-Weight.sqlite database.
run
Once completed, the CPANTS::Weight->sqlite method can be used to locate the completed SQLite database file.
CPANTS::Weight->sqlite
my $string = Foo::Bar->dsn;
The dsn accessor returns the dbi connection string used to connect to the SQLite database as a string.
dsn
my $handle = Foo::Bar->dbh;
To reliably prevent potential SQLite deadlocks resulting from multiple connections in a single process, each ORLite package will only ever maintain a single connection to the database.
During a transaction, this will be the same (cached) database handle.
Although in most situations you should not need a direct DBI connection handle, the dbh method provides a method for getting a direct connection in a way that is compatible with ORLite's connection management.
dbh
Please note that these connections should be short-lived, you should never hold onto a connection beyond the immediate scope.
The transaction system in ORLite is specifically designed so that code using the database should never have to know whether or not it is in a transation.
Because of this, you should never call the ->disconnect method on the database handles yourself, as the handle may be that of a currently running transaction.
Further, you should do your own transaction management on a handle provided by the <dbh> method.
In cases where there are extreme needs, and you absolutely have to violate these connection handling rules, you should create your own completely manual DBI->connect call to the database, using the connect string provided by the dsn method.
The dbh method returns a DBI::db object, or throws an exception on error.
Foo::Bar->begin;
The begin method indicates the start of a transaction.
begin
In the same way that ORLite allows only a single connection, likewise it allows only a single application-wide transaction.
No indication is given as to whether you are currently in a transaction or not, all code should be written neutrally so that it works either way or doesn't need to care.
Returns true or throws an exception on error.
Foo::Bar->commit;
The commit method commits the current transaction. If called outside of a current transaction, it is accepted and treated as a null operation.
commit
Once the commit has been completed, the database connection falls back into auto-commit state. If you wish to immediately start another transaction, you will need to issue a separate ->begin call.
The rollback method rolls back the current transaction. If called outside of a current transaction, it is accepted and treated as a null operation.
rollback
Once the rollback has been completed, the database connection falls back into auto-commit state. If you wish to immediately start another transaction, you will need to issue a separate ->begin call.
If a transaction exists at END-time as the process exits, it will be automatically rolled back.
Foo::Bar->do('insert into table (foo, bar) values (?, ?)', {}, $foo_value, $bar_value, );
The do method is a direct wrapper around the equivalent DBI method, but applied to the appropriate locally-provided connection or transaction.
do
It takes the same parameters and has the same return values and error behaviour.
The selectall_arrayref method is a direct wrapper around the equivalent DBI method, but applied to the appropriate locally-provided connection or transaction.
selectall_arrayref
The selectall_hashref method is a direct wrapper around the equivalent DBI method, but applied to the appropriate locally-provided connection or transaction.
selectall_hashref
The selectcol_arrayref method is a direct wrapper around the equivalent DBI method, but applied to the appropriate locally-provided connection or transaction.
selectcol_arrayref
The selectrow_array method is a direct wrapper around the equivalent DBI method, but applied to the appropriate locally-provided connection or transaction.
selectrow_array
The selectrow_arrayref method is a direct wrapper around the equivalent DBI method, but applied to the appropriate locally-provided connection or transaction.
selectrow_arrayref
The selectrow_hashref method is a direct wrapper around the equivalent DBI method, but applied to the appropriate locally-provided connection or transaction.
selectrow_hashref
The prepare method is a direct wrapper around the equivalent DBI method, but applied to the appropriate locally-provided connection or transaction
prepare
In general though, you should try to avoid the use of your own prepared statements if possible, although this is only a recommendation and by no means prohibited.
# Get the user_version for the schema my $version = Foo::Bar->pragma('user_version');
The pragma method provides a convenient method for fetching a pragma for a datase. See the SQLite documentation for more details.
pragma
Bugs should be reported via the CPAN bug tracker at
http://rt.cpan.org/NoAuth/ReportBug.html?Queue=CPANTS-Weight
For other issues, contact the author.
Adam Kennedy <adamk@cpan.org>
Copyright 2009 Adam Kennedy.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
The full text of the license can be found in the LICENSE file included with this module.
To install CPANTS::Weight, copy and paste the appropriate command in to your terminal.
cpanm
cpanm CPANTS::Weight
CPAN shell
perl -MCPAN -e shell install CPANTS::Weight
For more information on module installation, please visit the detailed CPAN module installation guide.