Acme-CPANAuthors
view release on metacpan or search on metacpan
lib/Acme/CPANAuthors.pm view on Meta::CPAN
package Acme::CPANAuthors;
use strict;
use warnings;
use Carp;
use Acme::CPANAuthors::Utils qw( cpan_authors cpan_packages );
our $VERSION = '0.27';
sub new {
my ($class, @categories) = @_;
@categories = _list_categories() unless @categories;
my %authors;
foreach my $category ( @categories ) {
%authors = ( %authors, _get_authors_of($category) );
}
bless {
categories => \@categories,
authors => \%authors,
}, $class;
}
sub count {
my $self = shift;
return scalar keys %{ $self->{authors} };
}
sub id {
my ($self, $id) = @_;
unless ( $id ) {
my @ids = sort keys %{ $self->{authors} };
return @ids;
}
else {
return $self->{authors}{$id} ? 1 : 0;
}
}
sub name {
my ($self, $id) = @_;
unless ( $id ) {
return sort values %{ $self->{authors} };
}
else {
return $self->{authors}{$id};
}
}
sub categories {
my $self = shift;
return @{$self->{categories}};
}
sub distributions {
my ($self, $id) = @_;
return unless $id;
my @packages;
foreach my $package ( cpan_packages->distributions ) {
if ( $package->cpanid eq $id ) {
push @packages, $package;
}
}
return @packages;
}
sub latest_distributions {
my ($self, $id) = @_;
return unless $id;
my @packages;
( run in 1.848 second using v1.01-cache-2.11-cpan-524268b4103 )