Permalink
Browse files

Make it more looks like a CPAN mod

  • Loading branch information...
1 parent 6055b5b commit b29a05e559c52a8669d585e1ec0418715eb81a1e @pfischermx committed Aug 1, 2012
Showing with 164 additions and 10 deletions.
  1. +5 −0 Changes
  2. +17 −0 MANIFEST
  3. +26 −0 Makefile.PL
  4. +0 −10 conf/foca/server_commands.yaml
  5. +8 −0 lib/App/Foca/Server.pm
  6. +10 −0 t/00-load.t
  7. +55 −0 t/boilerplate.t
  8. +13 −0 t/manifest.t
  9. +18 −0 t/pod-coverage.t
  10. +12 −0 t/pod.t
View
@@ -0,0 +1,5 @@
+Revision history for App-Foca
+
+0.01 01-Aug-2012
+ First version (tho very well tested)
+
View
@@ -0,0 +1,17 @@
+t/pod.t
+t/manifest.t
+t/pod-coverage.t
+t/boilerplate.t
+t/00-load.t
+Makefile.PL
+README
+examples/foca-server
+examples/foca-client
+examples/example_commands.yaml
+LICENSE
+MANIFEST
+lib/App/Foca/Server.pm
+lib/App/Foca/Tools/Logger.pm
+lib/App/Foca/Server/HTTP.pm
+lib/App/Foca/Client.pm
+Changes
View
@@ -0,0 +1,26 @@
+use strict;
+use warnings;
+use ExtUtils::MakeMaker;
+
+WriteMakefile(
+ NAME => 'App::Foca',
+ AUTHOR => q{Pablo Fischer <pablo@yahoo-inc.com>},
+ VERSION_FROM => 'lib/App/Foca.pm',
+ ABSTRACT_FROM => 'lib/App/Foca.pm',
+ SKIP => ['examples/example_commands.yaml',
+ 'examples/foca-client', 'examples/foca-server'],
+ PREREQ_PM => {
+ 'Cache::FastMmap' => 0,
+ 'Data::Dumper' => 0,
+ 'HTTP::Status' => 0,
+ 'HTTP::Response' => 0,
+ 'IPC::Cmd' => 0,
+ 'Linux::Proc::Net::TCP' => 0,
+ 'Moose' => 0,
+ 'Parallel::ForkManager' => 0,
+ 'Time::HiRes' => 0,
+ 'WWW::Curl::Easy' => 0,
+ 'YAML::Syck' => 0,
+ 'Test::More' => 0,
+ },
+);
@@ -1,10 +0,0 @@
-commands_dirs:
- - /some/path/over/there/bin
-
-commands:
- df_path:
- cmd: '/bin/df {%foca_args%} | tail -n1'
- uptime:
- cmd: '/usr/bin/uptime'
- 'true':
- cmd: '/bin/true'
View
@@ -102,6 +102,14 @@ use YAML::Syck qw(LoadFile);
use App::Foca::Server::HTTP;
use App::Foca::Tools::Logger;
+=head1 VERSION
+
+Version 0.01
+
+=cut
+
+our $VERSION = '0.01';
+
# Some constants
use constant {
FOCA_RUN_RC_OK => 100,
View
@@ -0,0 +1,10 @@
+#!perl -T
+
+use Test::More tests => 1;
+
+BEGIN {
+ use_ok( 'App::Foca' ) || print "Bail out!
+";
+}
+
+diag( "Testing App::Foca $App::Foca::VERSION, Perl $], $^X" );
View
@@ -0,0 +1,55 @@
+#!perl -T
+
+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: {
+ 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/Foca.pm');
+
+
+}
+
View
@@ -0,0 +1,13 @@
+#!perl -T
+
+use strict;
+use warnings;
+use Test::More;
+
+unless ( $ENV{RELEASE_TESTING} ) {
+ plan( skip_all => "Author tests not required for installation" );
+}
+
+eval "use Test::CheckManifest 0.9";
+plan skip_all => "Test::CheckManifest 0.9 required" if $@;
+ok_manifest();
View
@@ -0,0 +1,18 @@
+use strict;
+use warnings;
+use Test::More;
+
+# 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();
View
12 t/pod.t
@@ -0,0 +1,12 @@
+#!perl -T
+
+use strict;
+use warnings;
+use Test::More;
+
+# 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();

0 comments on commit b29a05e

Please sign in to comment.