diff options
Diffstat (limited to 'lib/Plack/Client/Backend/psgi_local.pm')
-rw-r--r-- | lib/Plack/Client/Backend/psgi_local.pm | 49 |
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) = @_; |