NAME

Pod::Coverage::Careful - more careful subclass of Pod::Coverage

SYNOPSIS

use Test::Pod::Coverage 1.08;
use Pod::Coverage::Careful;

pod_coverage_ok(
    "Some::Module",
    {
       coverage_class => "Pod::Coverage::Careful",
    },
    "improved pod coverage on Some::Module",
);

DESCRIPTION

This module carefully subclasses Pod::Coverage to override its idea of which subs need to be documented. This catches several important cases that it misses.

The Pod::Coverage module doesn't count subs that appear to be imported as ones needing documentation. However, this also exempts subs that were generated dynamically, such as:

for my $color (qw(red blue green)) {
    no strict "refs";
    *$color = sub { print "I like $color.\n" };
}

By supplying "pod_coverage_ok" in Test::Pod::Coverage with a coverage_class of "Pod::Coverage::Careful", those generated functions will now show up as in need of pod.

It also finds cases where subs are created by aliasing an old one of a different name:

*new_sub = \&old_sub;

This is true whether the alias is created form a sub in this same package, or if you're importing one of a different name.

One imports that are the same name as what they import are still exempted from pod requirements.

BUGS AND RESTRICTIONS

None noted.

SEE ALSO

Pod::Coverage

Checks if the documentation of a module is comprehensive.

Test::Pod::Coverage

Check for pod coverage in your distribution.

AUTHOR

Tom Christiansen <tchrist@perl.com>

LICENCE AND COPYRIGHT

Copyright (c) 2016, Tom Christiansen <tchrist@perl.com>. All Rights Reserved.

This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic.