]> git.decadent.org.uk Git - maypole.git/blobdiff - lib/Maypole/CLI.pm
All POD::Coverage tests now succeed.
[maypole.git] / lib / Maypole / CLI.pm
index 70fb201883626e1561dc346969124c192db541c9..81a2fd5083b2e2d4d10908895ae1ad7fa8af04fa 100644 (file)
@@ -9,6 +9,13 @@ use warnings;
 my $package;
 our $buffer;
 
+# Command line action
+CHECK {
+    if ( ( caller(0) )[1] eq "-e" ) {
+        $package->handler() == OK and print $buffer;
+    }
+}
+
 sub import {
     $package = $_[1];
     $package->require;
@@ -17,7 +24,6 @@ sub import {
     unshift @{ $package . "::ISA" }, "Maypole::CLI";
 }
 
-sub get_request       { }
 sub get_template_root { $ENV{MAYPOLE_TEMPLATES} || "." }
 
 sub parse_location {
@@ -44,12 +50,6 @@ sub call_url {
     $package->handler() == OK and return $buffer;
 }
 
-# Do it!
-CHECK {
-    if ( ( caller(0) )[1] eq "-e" ) {
-        $package->handler() == OK and print $buffer;
-    }
-}
 
 1;
 
@@ -98,7 +98,7 @@ more easily.
 
 For instance, a test script could look like this:
 
-    use Test::More tests => 5;
+    use Test::More tests => 3;
     use Maypole::CLI qw(BeerDB);
     use Maypole::Constants;
     $ENV{MAYPOLE_TEMPLATES} = "t/templates";
@@ -106,11 +106,36 @@ For instance, a test script could look like this:
     # Hack because isa_ok only supports object isa not class isa
     isa_ok( (bless {},"BeerDB") , "Maypole");
 
-    @ARGV = ("http://localhost/beerdb/");
-    is(BeerDB->handler, OK, "OK");
-    like($Maypole::CLI::buffer, qr/frontpage/, "Got the front page");
+    like(BeerDB->call_url("http://localhost/beerdb/"), qr/frontpage/, "Got the front page");
+
+    like(BeerDB->call_url("http://localhost/beerdb/beer/list"), qr/Organic Best/, "Found a beer in the list");
+
+=head1 METHODS 
+
+=over 
+
+=item call_url
+
+for use in scripts. takes an url as argument, and returns the buffer. 
+
+=back
+
+
+=head1 Implementation
+
+This class overrides a set of methods in the base Maypole class to provide it's 
+functionality. See L<Maypole> for these:
+
+=over
+
+=item get_template_root
+
+=item parse_args
+
+=item parse_location
+
+=item send_output
 
-    @ARGV = ("http://localhost/beerdb/beer/list");
-    is(BeerDB->handler, OK, "OK");
-    like($Maypole::CLI::buffer, qr/Organic Best/, "Found a beer in the list");
+=back
 
+=cut