summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/Plack/Client.pm6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/Plack/Client.pm b/lib/Plack/Client.pm
index b38e2c2..6ac6c97 100644
--- a/lib/Plack/Client.pm
+++ b/lib/Plack/Client.pm
@@ -80,12 +80,18 @@ sub new {
for my $scheme (keys %params) {
my $backend = $params{$scheme};
if (blessed($backend)) {
+ die "Backends must support the app_from_request method"
+ unless $backend->can('app_from_request');
$backends{$scheme} = $backend;
}
elsif (ref($backend)) {
(my $normal_scheme = $scheme) =~ s/-/_/g;
my $backend_class = "Plack::Client::Backend::$normal_scheme";
Class::Load::load_class($backend_class);
+ die "Backends must support the app_from_request method"
+ unless $backend_class->can('app_from_request');
+ die "Backend classes must have a constructor"
+ unless $backend_class->can('new');
$backends{$scheme} = $backend_class->new(
reftype($backend) eq 'HASH' ? %$backend
: reftype($backend) eq 'ARRAY' ? @$backend