[Catalyst-commits] r7739 - in Catalyst-Controller-SOAP/1.0/trunk/lib/Catalyst: Action/SOAP Controller

ruoso at dev.catalyst.perl.org ruoso at dev.catalyst.perl.org
Mon May 12 20:23:24 BST 2008


Author: ruoso
Date: 2008-05-12 20:23:24 +0100 (Mon, 12 May 2008)
New Revision: 7739

Modified:
   Catalyst-Controller-SOAP/1.0/trunk/lib/Catalyst/Action/SOAP/RPCEndpoint.pm
   Catalyst-Controller-SOAP/1.0/trunk/lib/Catalyst/Controller/SOAP.pm
Log:
[C-C-SOAP] uses class::c3 maybe::next::method... call decoder only if there is one

Modified: Catalyst-Controller-SOAP/1.0/trunk/lib/Catalyst/Action/SOAP/RPCEndpoint.pm
===================================================================
--- Catalyst-Controller-SOAP/1.0/trunk/lib/Catalyst/Action/SOAP/RPCEndpoint.pm	2008-05-12 19:20:51 UTC (rev 7738)
+++ Catalyst-Controller-SOAP/1.0/trunk/lib/Catalyst/Action/SOAP/RPCEndpoint.pm	2008-05-12 19:23:24 UTC (rev 7739)
@@ -32,7 +32,8 @@
                 eval {
                     if ($controller->wsdlobj) {
                         my $decoder = $controller->decoders->{$operation};
-                        my ($args) = $decoder->($rpc_element);
+                        my ($args) = $decoder->($rpc_element)
+                          if UNIVERSAL::isa($decoder,'CODE');
                         $c->stash->{soap}->arguments($args);
                     } else {
                         my $arguments = $rpc_element->getChildNodes();

Modified: Catalyst-Controller-SOAP/1.0/trunk/lib/Catalyst/Controller/SOAP.pm
===================================================================
--- Catalyst-Controller-SOAP/1.0/trunk/lib/Catalyst/Controller/SOAP.pm	2008-05-12 19:20:51 UTC (rev 7738)
+++ Catalyst-Controller-SOAP/1.0/trunk/lib/Catalyst/Controller/SOAP.pm	2008-05-12 19:23:24 UTC (rev 7739)
@@ -5,6 +5,7 @@
     use XML::LibXML;
     use XML::Compile::WSDL11;
     use UNIVERSAL qw(isa);
+    use Class::C3;
 
     use constant NS_SOAP_ENV => "http://schemas.xmlsoap.org/soap/envelope/";
     use constant NS_WSDLSOAP => "http://schemas.xmlsoap.org/wsdl/soap/";
@@ -265,7 +266,7 @@
         my ($self, $c) = (shift, shift);
         my $soap = $c->stash->{soap};
 
-        return $self->next::method($c, @_) unless $soap;
+        return $self->maybe::next::method($c, @_) unless $soap;
 
         if (scalar @{$c->error}) {
             $c->stash->{soap}->fault




More information about the Catalyst-commits mailing list