#!perl -T
# 
# Part of Comedi::Lib
#
# Copyright (c) 2009 Manuel Gebele <forensixs@gmx.de>
#
use strict;
use warnings;
use Test::More tests => 3;

sub not_in_file_ok {
   my ($filename, %regex) = @_;
   open( my $fh, '<', $filename )
      or die "couldn't open $filename for reading: $!";

   my %violated;

   while (my $line = <$fh>) {
      while (my ($desc, $regex) = each %regex) {
         if ($line =~ $regex) {
            push @{$violated{$desc}||=[]}, $.;
         }
      }
   }

   if (%violated) {
      fail("$filename contains boilerplate text");
      diag "$_ appears on lines @{$violated{$_}}" for keys %violated;
   } else {
      pass("$filename contains no boilerplate text");
   }
}

sub module_boilerplate_ok {
   my ($module) = @_;
   not_in_file_ok($module =>
      'the great new $MODULENAME'   => qr/ - The great new /,
      'boilerplate description'     => qr/Quick summary of what the module/,
      'stub function definition'    => qr/function[12]/,
   );
}

TODO: {
   not_in_file_ok(README =>
      "The README is used..."       => qr/The README is used/,
      "'version information here'"  => qr/to provide version information/,
   );

  not_in_file_ok(Changes =>
    "placeholder date/time"       => qr(Date/time)
  );

  module_boilerplate_ok('lib/Comedi/Lib.pm');


}
