PAUSE-Permissions

 view release on metacpan or  search on metacpan

lib/PAUSE/Permissions/Module.pm  view on Meta::CPAN

package PAUSE::Permissions::Module;
$PAUSE::Permissions::Module::VERSION = '0.17';
use Moo;

# TODO: I had isa when I was using Moose, need to put those back

has 'name' => (is => 'ro');

# has 'm' => (is => 'ro', isa => 'Str');
has 'm' => (is => 'ro');

# has 'f' => (is => 'ro', isa => 'Str');
has 'f' => (is => 'ro');

# has 'c' => (is => 'ro', isa => 'ArrayRef[Str]');
has 'c' => (is => 'ro');

sub owner
{
    my $self = shift;

    return $self->m || $self->f || undef;
}

sub registered_maintainer
{
    my $self = shift;
    return $self->m || undef;
}

sub first_come
{
    my $self = shift;
    return $self->f || undef;
}

sub co_maintainers
{
    my $self = shift;
    my @comaints;

    push(@comaints, $self->f) if defined($self->m) && defined($self->f);
    push(@comaints, @{ $self->c }) if defined($self->c);

    @comaints = sort @comaints;
    return @comaints;
}

sub all_maintainers
{
    my $self = shift;
    my @all;

    push(@all, $self->m)      if defined($self->m);
    push(@all, $self->f)      if defined($self->f);
    push(@all, @{ $self->c }) if defined($self->c);

    @all = sort @all;
    return @all;
}

1;

=head1 NAME

PAUSE::Permissions::Module - PAUSE permissions for one module (from 06perms.txt)

=head1 SYNOPSIS

 use PAUSE::Permissions::Module;

 my %options =
    (
     name => 'HTTP::Client',
     m    => 'LINC',



( run in 1.737 second using v1.01-cache-2.11-cpan-39bf76dae61 )