I've created an interface to PAUSE's 06perms.txt file, which currently contains
two classes:
PAUSE::PermissionsFile
Module::Permissions
Here's example usage:
use PAUSE::PermissionsFile;
$pp = PAUSE::PermissionsFile->new;
$mp = $pp->module_permissions('HTTP::Client');
$owner = $mp->owner;
@comaints = $mp->co_maintainers;
print "owner : $owner\n";
print "comaint : @comaints\n",
Which would print:
owner : LINC
comaint : NEILB
By default PAUSE::PermissionsFile will mirror (using HTTP::Tiny's mirror)
06perms.txt, and then work off the local copy. You can pass a path to the
constructor, if you've got your own local copy anyway. The module_permissions
method returns an instance of Module::Permissions for the named module. This
lets you get at the individual 'm', 'f', and 'c' entries for the module, but
also provides the 'owner' concept ('m' if there is one, otherwise 'f').
I'd be happy to hear any thoughts on:
naming
design of the interface
other features you think this might need
Cheers,
Neil