Remove documentation showing Global / Regex / Private actions from Catalyst.pm
[catagits/Catalyst-Runtime.git] / lib / Catalyst.pm
index 6e9d63c..a22dd18 100644 (file)
@@ -84,7 +84,7 @@ __PACKAGE__->stats_class('Catalyst::Stats');
 
 # Remember to update this in Catalyst::Runtime as well!
 
-our $VERSION = '5.90002';
+our $VERSION = '5.90004';
 
 sub import {
     my ( $class, @arguments ) = @_;
@@ -148,7 +148,7 @@ documentation and tutorials.
     use Catalyst qw/-Debug/; # include plugins here as well
 
     ### In lib/MyApp/Controller/Root.pm (autocreated)
-    sub foo : Global { # called for /foo, /foo/1, /foo/1/2, etc.
+    sub foo : Chained('/') Args() { # called for /foo, /foo/1, /foo/1/2, etc.
         my ( $self, $c, @args ) = @_; # args are qw/1 2/ for /foo/1/2
         $c->stash->{template} = 'foo.tt'; # set the template
         # lookup something from db -- stash vars are passed to TT
@@ -166,50 +166,16 @@ documentation and tutorials.
     [% END %]
 
     # called for /bar/of/soap, /bar/of/soap/10, etc.
-    sub bar : Path('/bar/of/soap') { ... }
-
-    # called for all actions, from the top-most controller downwards
-    sub auto : Private {
-        my ( $self, $c ) = @_;
-        if ( !$c->user_exists ) { # Catalyst::Plugin::Authentication
-            $c->res->redirect( '/login' ); # require login
-            return 0; # abort request and go immediately to end()
-        }
-        return 1; # success; carry on to next action
-    }
+    sub bar : Chained('/') PathPart('/bar/of/soap') Args() { ... }
 
     # called after all actions are finished
-    sub end : Private {
+    sub end : Action {
         my ( $self, $c ) = @_;
         if ( scalar @{ $c->error } ) { ... } # handle errors
         return if $c->res->body; # already have a response
         $c->forward( 'MyApp::View::TT' ); # render template
     }
 
-    ### in MyApp/Controller/Foo.pm
-    # called for /foo/bar
-    sub bar : Local { ... }
-
-    # called for /blargle
-    sub blargle : Global { ... }
-
-    # an index action matches /foo, but not /foo/1, etc.
-    sub index : Private { ... }
-
-    ### in MyApp/Controller/Foo/Bar.pm
-    # called for /foo/bar/baz
-    sub baz : Local { ... }
-
-    # first Root auto is called, then Foo auto, then this
-    sub auto : Private { ... }
-
-    # powerful regular expression paths are also possible
-    sub details : Regex('^product/(\w+)/details$') {
-        my ( $self, $c ) = @_;
-        # extract the (\w+) from the URI
-        my $product = $c->req->captures->[0];
-    }
-
 See L<Catalyst::Manual::Intro> for additional information.
 
 =head1 DESCRIPTION
@@ -2619,17 +2585,32 @@ sub engine_class {
             Catalyst::EngineLoader->new({
                 application_name => $class,
                 (defined $requested_engine
-                     ? (requested_engine => $requested_engine) : ()),
+                     ? (catalyst_engine_class => $requested_engine) : ()),
             }),
         );
     }
+
     $class->engine_loader->catalyst_engine_class;
 }
 
 sub setup_engine {
     my ($class, $requested_engine) = @_;
 
-    my $engine = $class->engine_class($requested_engine);
+    my $engine = do {
+        my $loader = $class->engine_loader;
+
+        if (!$loader || $requested_engine) {
+            $loader = Catalyst::EngineLoader->new({
+                application_name => $class,
+                (defined $requested_engine
+                     ? (requested_engine => $requested_engine) : ()),
+            }),
+
+            $class->engine_loader($loader);
+        }
+
+        $loader->catalyst_engine_class;
+    };
 
     # Don't really setup_engine -- see _setup_psgi_app for explanation.
     return if $class->loading_psgi_file;