Small refactoring of case where there is no code for a given rest metohd
[catagits/Catalyst-Action-REST.git] / lib / Catalyst / Action / REST.pm
index 8228380..6382c5d 100644 (file)
@@ -94,25 +94,26 @@ sub dispatch {
     if ( $code = $controller->action_for($rest_method) ) {
         $c->execute( $self->class, $self, @{ $c->req->args } ); # Execute normal 'foo' action.
         return $c->forward( $code,  $c->req->args ); # Forward to foo_GET if it's an action
-     }
-     elsif ($code = $controller->can($rest_method)) {
+    }
+    elsif ($code = $controller->can($rest_method)) {
         # Execute normal action
         $c->execute( $self->class, $self, @{ $c->req->args } );
         $name = $rest_method; # Stash name and code to run 'foo_GET' like an action below.
     }
 
     # Generic handling for foo_OPTIONS
-    if (!$code && $c->request->method eq "OPTIONS") {
-        $name = $rest_method;
-        $code = sub { $self->_return_options($self->name, @_) };
-    }
-
-    # Otherwise, not implemented.
     if (!$code) {
-        $name = $self->name . "_not_implemented";
-        $code = $controller->can($name) # User method
-            # Generic not implemented
-            || sub { $self->_return_not_implemented($self->name, @_) };
+        if ( $c->request->method eq "OPTIONS") {
+            $name = $rest_method;
+            $code = sub { $self->_return_options($self->name, @_) };
+        }
+        else {
+            # Otherwise, not implemented.
+            $name = $self->name . "_not_implemented";
+            $code = $controller->can($name) # User method
+                # Generic not implemented
+                || sub { $self->_return_not_implemented($self->name, @_) };
+        }
     }
 
     # localise stuff so we can dispatch the action 'as normal, but get