diff --git a/MANIFEST.SKIP b/MANIFEST.SKIP deleted file mode 100644 index b9976bc..0000000 --- a/MANIFEST.SKIP +++ /dev/null @@ -1,9 +0,0 @@ -^blib -^pm_to_blib -^\.git -^MYMETA -^Makefile$ -\.old$ -\.tar\.gz$ -README\.pod - diff --git a/Makefile.PL b/Makefile.PL index 5f0e4d3..d1559f1 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -1,41 +1,25 @@ -#!/usr/bin/env perl +use 5.006; use strict; use warnings; use ExtUtils::MakeMaker; -my ($mm) = $ExtUtils::MakeMaker::VERSION =~ /^([^_]+)/; - WriteMakefile( - NAME => 'App::Nopaste::Service::WerePaste', - VERSION_FROM => 'lib/App/Nopaste/Service/WerePaste.pm', - ABSTRACT_FROM => 'lib/App/Nopaste/Service/WerePaste.pm', - AUTHOR => 'Matthew Connelly ', - PREREQ_PM => { - 'App::Nopaste' => '0.91', - }, - ( $mm >= 6.31 - ? ( LICENSE => 'mit' ) - : () - ), - ( $mm < 6.46 - ? () - : ( META_MERGE => { - resources => { - license => 'http://dev.perl.org/licenses/', - repository => 'https://github.com/Maffsie/App-Nopaste-Service-WerePaste', - bugtracker => 'https://github.com/Maffsie/App-Nopaste-Service-WerePaste/issues', - }, - no_index => {directory => [qw/t/]}, - }, - META_ADD => { - build_requires => {}, - configure_requires => {}, - test_requires => { - 'Test::More' => '0.47', - }, - }, - ) - ), - test => { TESTS => 't/*.t' } -); - + NAME => 'App::Nopaste::Service::WerePaste', + AUTHOR => q{Matthew Connelly }, + VERSION_FROM => 'lib/App/Nopaste/Service/WerePaste.pm', + ABSTRACT_FROM => 'lib/App/Nopaste/Service/WerePaste.pm', + LICENSE => 'mit', + PL_FILES => {}, + MIN_PERL_VERSION => 5.006, + CONFIGURE_REQUIRES => { + 'ExtUtils::MakeMaker' => 0, + }, + BUILD_REQUIRES => { + 'Test::More' => 0.47, + }, + PREREQ_PM => { + 'App::Nopaste' => 0.91, + }, + dist => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', }, + clean => { FILES => 'App-Nopaste-Service-WerePaste-*' }, +); \ No newline at end of file diff --git a/ignore.txt b/ignore.txt new file mode 100644 index 0000000..d9865ca --- /dev/null +++ b/ignore.txt @@ -0,0 +1,18 @@ +Makefile +Makefile.old +Build +Build.bat +META.* +MYMETA.* +.build/ +_build/ +cover_db/ +blib/ +inc/ +.lwpcookies +.last_cover_stats +nytprof.out +pod2htm*.tmp +pm_to_blib +App-Nopaste-Service-WerePaste-* +App-Nopaste-Service-WerePaste-*.tar.gz \ No newline at end of file diff --git a/t/00-load.t b/t/00-load.t index 705d328..dd6bdf8 100644 --- a/t/00-load.t +++ b/t/00-load.t @@ -1,9 +1,13 @@ -#!/usr/bin/env perl +#!perl -T +use 5.006; use strict; use warnings; +use Test::More; -use Test::More qw( no_plan ); +plan tests => 1; BEGIN { - use_ok('App::Nopaste::Service::WerePaste'); -} \ No newline at end of file + use_ok( 'App::Nopaste::Service::WerePaste' ) || print "Bail out!\n"; +} + +diag( "Testing App::Nopaste::Service::WerePaste $App::Nopaste::Service::WerePaste::VERSION, Perl $], $^X" ); \ No newline at end of file diff --git a/t/manifest.t b/t/manifest.t new file mode 100644 index 0000000..e9c36a9 --- /dev/null +++ b/t/manifest.t @@ -0,0 +1,15 @@ +#!perl -T +use 5.006; +use strict; +use warnings; +use Test::More; + +unless ( $ENV{RELEASE_TESTING} ) { + plan( skip_all => "Author tests not required for installation" ); +} + +my $min_tcm = 0.9; +eval "use Test::CheckManifest $min_tcm"; +plan skip_all => "Test::CheckManifest $min_tcm required" if $@; + +ok_manifest(); \ No newline at end of file diff --git a/t/pod-coverage.t b/t/pod-coverage.t new file mode 100644 index 0000000..342728d --- /dev/null +++ b/t/pod-coverage.t @@ -0,0 +1,24 @@ +#!perl -T +use 5.006; +use strict; +use warnings; +use Test::More; + +unless ( $ENV{RELEASE_TESTING} ) { + plan( skip_all => "Author tests not required for installation" ); +} + +# Ensure a recent version of Test::Pod::Coverage +my $min_tpc = 1.08; +eval "use Test::Pod::Coverage $min_tpc"; +plan skip_all => "Test::Pod::Coverage $min_tpc required for testing POD coverage" + if $@; + +# Test::Pod::Coverage doesn't require a minimum Pod::Coverage version, +# but older versions don't recognize some common documentation styles +my $min_pc = 0.18; +eval "use Pod::Coverage $min_pc"; +plan skip_all => "Pod::Coverage $min_pc required for testing POD coverage" + if $@; + +all_pod_coverage_ok(); \ No newline at end of file diff --git a/t/pod.t b/t/pod.t new file mode 100644 index 0000000..171b8b2 --- /dev/null +++ b/t/pod.t @@ -0,0 +1,16 @@ +#!perl -T +use 5.006; +use strict; +use warnings; +use Test::More; + +unless ( $ENV{RELEASE_TESTING} ) { + plan( skip_all => "Author tests not required for installation" ); +} + +# Ensure a recent version of Test::Pod +my $min_tp = 1.22; +eval "use Test::Pod $min_tp"; +plan skip_all => "Test::Pod $min_tp required for testing POD" if $@; + +all_pod_files_ok(); \ No newline at end of file diff --git a/xt/boilerplate.t b/xt/boilerplate.t new file mode 100644 index 0000000..7d11529 --- /dev/null +++ b/xt/boilerplate.t @@ -0,0 +1,56 @@ +#!perl -T +use 5.006; +use strict; +use warnings; +use Test::More; + +plan 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: { + local $TODO = "Need to replace the boilerplate text"; + + 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/App/Nopaste/Service/WerePaste.pm'); + + +} \ No newline at end of file