CPANTS-Kwalitee-Report

 view release on metacpan or  search on metacpan

lib/CPANTS/Kwalitee/Report/Generator.pm  view on Meta::CPAN

package CPANTS::Kwalitee::Report::Generator;

$CPANTS::Kwalitee::Report::Generator::VERSION   = '0.11';
$CPANTS::Kwalitee::Report::Generator::AUTHORITY = 'cpan:MANWAR';

=head1 NAME

CPANTS::Kwalitee::Report::Generator - Interface to Kwalitee Generator.

=head1 VERSION

Version 0.11

=cut

use 5.006;
use Data::Dumper;

use Moo;
use namespace::autoclean;

use overload q{""} => 'as_string', fallback => 1;

has [qw(name version indicators)] => (is => 'ro', required => 1);
has 'verbose' => (is => 'lazy');

sub _build_verbose { 0 }

=head1 DESCRIPTION

It represents Kwalitee Generator.

=head1 SYNOPSIS

    use strict; use warnings;
    use CPANTS::Kwalitee::Report;

    my $report = CPANTS::Kwalitee::Report->new;

    print sprintf("%s\n\n", join("\n", @{$report->generators}));

=head1 METHODS

=head2 name()

Returns generator name.

=head2 version()

Returns generator version as defined in the distribution L<Module::CPANTS::Analyse>.

=head2 indicators()

Returns an array ref of objects of type L<CPANTS::Kwalitee::Report::Indicator>.

=cut

sub as_string {
    my ($self) = @_;

    my $generator = sprintf("%s %s\n", $self->name, $self->version);
    foreach my $indicator (@{$self->indicators}) {
        $generator .= sprintf("  %s\n", $indicator->description);
        if ($self->verbose) {
            my $error  = $indicator->error;
            my $remedy = $indicator->remedy;
            if (defined $error) {
                $generator .= sprintf("    error: %s\n", $error);
            }
            if (defined $remedy) {
                $generator .= sprintf("    remedy: %s\n", $remedy);
            }
        }
    }

    return $generator;
}

=head1 AUTHOR



( run in 1.154 second using v1.01-cache-2.11-cpan-0bb4e1dffa6 )