App::CPAN2Pkg::Repository - repository details for a given module


App-CPAN2Pkg documentation Contained in the App-CPAN2Pkg distribution.

Index


Code Index:

NAME

Top

App::CPAN2Pkg::Repository - repository details for a given module

VERSION

Top

version 2.111781

DESCRIPTION

Top

cpan2pkg deals with two kinds of systems: the local system, and upstream distribution repository. A module has some characteristics on both systems (such as availability, etc). Those characteristics are gathered in this module.

ATTRIBUTES

Top

status

The status of the module: available, building, etc.

prereqs

    my @prereqs = $repo->prereqs;

The prerequesites needed before attempting to build the module.

METHODS

Top

can_build

    my $bool = $repo->can_build;

Return true if there are no more missing prereqs.

miss_prereq

    my $bool = $repo->miss_prereq( $modname );

Return true if $modname is missing on the system.

rm_prereq

    $repo->rm_prereq( $modname );

Remove $modname as a missing prereq on the repository.

add_prereq

    $repo->add_prereq( $modname );

Mark a prereq as missing on the repository.

AUTHOR

Top

Jerome Quelin <jquelin@gmail.com>

COPYRIGHT AND LICENSE

Top


App-CPAN2Pkg documentation Contained in the App-CPAN2Pkg distribution.

#
# This file is part of App-CPAN2Pkg
#
# This software is copyright (c) 2009 by Jerome Quelin.
#
# This is free software; you can redistribute it and/or modify it under
# the same terms as the Perl 5 programming language system itself.
#
use 5.010;
use strict;
use warnings;

package App::CPAN2Pkg::Repository;
BEGIN {
  $App::CPAN2Pkg::Repository::VERSION = '2.111781';
}
# ABSTRACT: repository details for a given module

use Moose;
use MooseX::Has::Sugar;
use MooseX::SemiAffordanceAccessor;

use App::CPAN2Pkg::Types;


# -- public attributes


has status  => ( rw, isa=>"Status", default=>"not started" );
has _prereqs => (
    ro,
    traits  => ['Hash'],
    isa     => 'HashRef[Str]',
    default => sub { {} },
    handles => {
        _add_prereq => 'set',
        prereqs     => 'keys',
        rm_prereq   => 'delete',
        can_build   => 'is_empty',
        miss_prereq => 'exists',
    },
);


# -- public methods


# methods above provided for free by moose traits.


sub add_prereq {
    my ($self, $modname) = @_;
    $self->_add_prereq( $modname, $modname );
}


no Moose;
__PACKAGE__->meta->make_immutable;
1;



__END__