}
sub as_psgi_app {
- my $self = shift;
- ref($self) ? sub { $self->_dispatch(@_) } : sub { $self->new->_dispatch(@_) }
+ my $self = ref($_[0]) ? $_[0] : $_[0]->new;
+ sub { $self->_dispatch(@_) };
}
sub run {
} elsif ($ENV{GATEWAY_INTERFACE}) {
return $self->_run_cgi;
}
- my $path = shift(@ARGV) or die "No path passed - use $0 / for root";
+ unless (@ARGV && $ARGV[0] =~ m{^/}) {
+ return $self->_run_cli;
+ }
+
+ my $path = shift @ARGV;
require HTTP::Request::Common;
require Plack::Test;
print $response->as_string;
}
+sub _run_cli {
+ my $self = shift;
+ die $self->_cli_usage;
+}
+
+sub _cli_usage {
+ "To run this script in CGI test mode, pass a URL path beginning with /:\n".
+ "\n".
+ " $0 /some/path\n".
+ " $0 /\n"
+}
+
1;