summaryrefslogtreecommitdiffstats
path: root/lib/Plack/Client/Backend/psgi_local.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Plack/Client/Backend/psgi_local.pm')
-rw-r--r--lib/Plack/Client/Backend/psgi_local.pm49
1 files changed, 49 insertions, 0 deletions
diff --git a/lib/Plack/Client/Backend/psgi_local.pm b/lib/Plack/Client/Backend/psgi_local.pm
index 0131d02..68f6eff 100644
--- a/lib/Plack/Client/Backend/psgi_local.pm
+++ b/lib/Plack/Client/Backend/psgi_local.pm
@@ -1,10 +1,45 @@
package Plack::Client::Backend::psgi_local;
use strict;
use warnings;
+# ABSTRACT: backend for handling local app requests
use Carp;
use Plack::Middleware::ContentLength;
+=head1 SYNOPSIS
+
+ Plack::Client->new(
+ 'psgi-local' => {
+ apps => { myapp => sub { ... } },
+ },
+ );
+
+ Plack::Client->new(
+ 'psgi-local' => Plack::Client::Backend::psgi_local->new(
+ apps => { myapp => sub { ... } },
+ ),
+ );
+
+=head1 DESCRIPTION
+
+This backend implements requests made against local PSGI apps.
+
+=cut
+
+=method new
+
+Constructor. Takes a hash of arguments, with these keys being valid:
+
+=over 4
+
+=item apps
+
+A mapping of local app names to PSGI app coderefs.
+
+=back
+
+=cut
+
sub new {
my $class = shift;
my %params = @_;
@@ -19,12 +54,26 @@ sub new {
sub _apps { shift->{apps} }
+=method app_for
+
+Returns the PSGI app coderef for the given app name.
+
+=cut
+
sub app_for {
my $self = shift;
my ($for) = @_;
return $self->_apps->{$for};
}
+=method app_from_request
+
+Takes a L<Plack::Request> object, and returns the app corresponding to the app
+corresponding to the app name given in the C<authority> section of the given
+URL.
+
+=cut
+
sub app_from_request {
my $self = shift;
my ($req) = @_;