perl-Test-Pod-Coverage/perl-Test-Pod-Coverage.spec

113 lines
3.7 KiB
RPMSpec
Raw Normal View History

#
# spec file for package perl-Test-Pod-Coverage
#
# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: perl-Test-Pod-Coverage
Version: 1.10
Release: 0
%define cpan_name Test-Pod-Coverage
Summary: Check for pod coverage in your distribution.
License: Artistic-1.0 or GPL-1.0+
Group: Development/Libraries/Perl
Url: http://search.cpan.org/dist/Test-Pod-Coverage/
Source: http://www.cpan.org/authors/id/N/NE/NEILB/%{cpan_name}-%{version}.tar.gz
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: perl
BuildRequires: perl-macros
BuildRequires: perl(Pod::Coverage)
Requires: perl(Pod::Coverage)
%{perl_requires}
%description
Test::Pod::Coverage is used to create a test for your distribution, to
ensure that all relevant files in your distribution are appropriately
documented in pod.
Can also be called with the Pod::Coverage manpage parms.
use Test::Pod::Coverage tests=>1;
pod_coverage_ok(
"Foo::Bar",
{ also_private => [ qr/^[A-Z_]+$/ ], },
"Foo::Bar, with all-caps functions as privates",
);
The the Pod::Coverage manpage parms are also useful for subclasses that
don't re-document the parent class's methods. Here's an example from the
Mail::SRS manpage.
pod_coverage_ok( "Mail::SRS" ); # No exceptions
# Define the three overridden methods.
my $trustme = { trustme => [qr/^(new|parse|compile)$/] };
pod_coverage_ok( "Mail::SRS::DB", $trustme );
pod_coverage_ok( "Mail::SRS::Guarded", $trustme );
pod_coverage_ok( "Mail::SRS::Reversable", $trustme );
pod_coverage_ok( "Mail::SRS::Shortcut", $trustme );
Alternately, you could use the Pod::Coverage::CountParents manpage, which
always allows a subclass to reimplement its parents' methods without
redocumenting them. For example:
my $trustparents = { coverage_class => 'Pod::Coverage::CountParents' };
pod_coverage_ok( "IO::Handle::Frayed", $trustparents );
(The 'coverage_class' parameter is not passed to the coverage class with
other parameters.)
If you want POD coverage for your module, but don't want to make
Test::Pod::Coverage a prerequisite for installing, create the following as
your _t/pod-coverage.t_ file:
use Test::More;
eval "use Test::Pod::Coverage";
plan skip_all => "Test::Pod::Coverage required for testing pod coverage" if $@;
plan tests => 1;
pod_coverage_ok( "Pod::Master::Html");
Finally, Module authors can include the following in a _t/pod-coverage.t_
file and have 'Test::Pod::Coverage' automatically find and check all
modules in the module distribution:
use Test::More;
eval "use Test::Pod::Coverage 1.00";
plan skip_all => "Test::Pod::Coverage 1.00 required for testing POD coverage" if $@;
all_pod_coverage_ok();
%prep
%setup -q -n %{cpan_name}-%{version}
%build
%{__perl} Makefile.PL INSTALLDIRS=vendor
%{__make} %{?_smp_mflags}
%check
%{__make} test
%install
%perl_make_install
%perl_process_packlist
%perl_gen_filelist
%files -f %{name}.files
%defattr(-,root,root,755)
%doc Changes README
%changelog