1#!perl -T
2
3use strict;
4use warnings;
5use Test::More tests => 2;
6
7sub not_in_file_ok {
8	my ( $filename, %regex ) = @_;
9	open my $fh, '<', $filename
10		or die "couldn't open $filename for reading: $!";
11
12	my %violated;
13
14	while ( my $line = <$fh> ) {
15		while ( my ( $desc, $regex ) = each %regex ) {
16			if ( $line =~ $regex ) {
17				push @{ $violated{$desc} ||= [] }, $.;
18			}
19		}
20	}
21
22	if (%violated) {
23		fail("$filename contains boilerplate text");
24		diag "$_ appears on lines @{$violated{$_}}" for keys %violated;
25	}
26	else {
27		pass("$filename contains no boilerplate text");
28	}
29}
30
31not_in_file_ok( Changes => 'placeholder date/time' => qr(Date/time) );
32
33sub module_boilerplate_ok {
34	my ($module) = @_;
35	not_in_file_ok(
36		$module                    => 'the great new $MODULENAME' => qr/ - The great new /,
37		'boilerplate description'  => qr/Quick summary of what the module/,
38		'stub function definition' => qr/function[12]/,
39	);
40}
41
42module_boilerplate_ok('lib/Text/Trac.pm');
43