Added -scripts option to catalyst.pl for script updating
[catagits/Catalyst-Runtime.git] / lib / Catalyst.pm
index 49d8fc3..b85ac7f 100644 (file)
@@ -38,7 +38,7 @@ our $DETACH    = "catalyst_detach\n";
 require Module::Pluggable::Fast;
 
 # Helper script generation
-our $CATALYST_SCRIPT_GEN = 9;
+our $CATALYST_SCRIPT_GEN = 10;
 
 __PACKAGE__->mk_classdata($_)
   for qw/components arguments dispatcher engine log/;
@@ -426,6 +426,7 @@ sub uri_for {
     # massage match, empty if absolute path
     $match =~ s/^\///;
     $match .= '/' if $match;
+    $path ||= '';
     $match = '' if $path =~ /^\//;
     $path =~ s/^\///;
 
@@ -575,20 +576,24 @@ sub welcome_message {
     my $name   = $c->config->{name};
     my $logo   = $c->uri_for('/static/images/catalyst_logo.png');
     my $prefix = Catalyst::Utils::appprefix( ref $c );
+    $c->response->content_type('text/html; charset=utf-8');
     return <<"EOF";
-<html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
     <head>
+       <meta http-equiv="Content-Language" content="en" />
+       <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
         <title>$name on Catalyst $VERSION</title>
         <style type="text/css">
             body {
-                text-align: center;
-                padding-left: 50%;
                 color: #000;
                 background-color: #eee;
             }
             div#content {
                 width: 640px;
-                margin-left: -320px;
+                margin-left: auto;
+                margin-right: auto;
                 margin-top: 10px;
                 margin-bottom: 10px;
                 text-align: left;
@@ -654,7 +659,7 @@ sub welcome_message {
              </div>
              <div id="answers">
                  <p>
-                 <img src="$logo"/>
+                 <img src="$logo" alt="Catalyst Logo" />
                  </p>
                  <p>Welcome to the wonderful world of Catalyst.
                     This <a href="http://en.wikipedia.org/wiki/MVC">MVC</a>
@@ -669,13 +674,13 @@ sub welcome_message {
 perldoc <a href="http://cpansearch.perl.org/dist/Catalyst/lib/Catalyst/Manual.pod">Catalyst::Manual</a></code></pre>
                  <h2>What to do next?</h2>
                  <p>Next it's time to write an actual application. Use the
-                    helper scripts to generate <a href="http://cpansearch.perl.org/search?query=Catalyst%3A%3AController%3A%3A&mode=all">controllers</a>,
-                    <a href="http://cpansearch.perl.org/search?query=Catalyst%3A%3AModel%3A%3A&mode=all">models</a> and
-                    <a href="http://cpansearch.perl.org/search?query=Catalyst%3A%3AView%3A%3A&mode=all">views</a>,
+                    helper scripts to generate <a href="http://cpansearch.perl.org/search?query=Catalyst%3A%3AController%3A%3A&amp;mode=all">controllers</a>,
+                    <a href="http://cpansearch.perl.org/search?query=Catalyst%3A%3AModel%3A%3A&amp;mode=all">models</a> and
+                    <a href="http://cpansearch.perl.org/search?query=Catalyst%3A%3AView%3A%3A&amp;mode=all">views</a>,
                     they can save you a lot of work.</p>
                     <pre><code>script/${prefix}_create.pl -help</code></pre>
                     <p>Also, be sure to check out the vast and growing
-                    collection of <a href="http://cpansearch.perl.org/search?query=Catalyst%3A%3APlugin%3A%3A&mode=all">plugins for Catalyst on CPAN</a>,
+                    collection of <a href="http://cpansearch.perl.org/search?query=Catalyst%3A%3APlugin%3A%3A&amp;mode=all">plugins for Catalyst on CPAN</a>,
                     you are likely to find what you need there.
                     </p>
 
@@ -749,7 +754,6 @@ Dispatch request to actions.
 
 sub dispatch { my $c = shift; $c->dispatcher->dispatch( $c, @_ ) }
 
-
 =item dump_these
 
 Returns a list of 2-element array references (name, structure) pairs that will
@@ -797,7 +801,11 @@ sub execute {
         {
             my ( $elapsed, @state ) =
               $c->benchmark( $code, $class, $c, @{ $c->req->args } );
-            push @{ $c->{stats} }, [ $action, sprintf( '%fs', $elapsed ) ];
+            unless ( ( $code->name =~ /^_.*/ )
+                && ( !$c->config->{show_internal_actions} ) )
+            {
+                push @{ $c->{stats} }, [ $action, sprintf( '%fs', $elapsed ) ];
+            }
             $c->state(@state);
         }
         else {
@@ -1481,39 +1489,39 @@ sub setup_engine {
 qq/Couldn't load engine "$engine" (maybe you forgot to install it?), "$@"/
         );
     }
-    
+
     # check for old engines that are no longer compatible
     my $old_engine;
-    if (   $engine->isa('Catalyst::Engine::Apache')
-        && ! Catalyst::Engine::Apache->VERSION )
+    if ( $engine->isa('Catalyst::Engine::Apache')
+        && !Catalyst::Engine::Apache->VERSION )
     {
         $old_engine = 1;
     }
-    
+
     elsif ( $engine->isa('Catalyst::Engine::Server::Base')
-         && Catalyst::Engine::Server->VERSION le '0.02' )
+        && Catalyst::Engine::Server->VERSION le '0.02' )
     {
         $old_engine = 1;
     }
-    
-    elsif ( $engine->isa('Catalyst::Engine::HTTP::POE')
-         && $engine->VERSION eq '0.01' )
+
+    elsif ($engine->isa('Catalyst::Engine::HTTP::POE')
+        && $engine->VERSION eq '0.01' )
     {
         $old_engine = 1;
     }
-    
-    elsif ( $engine->isa('Catalyst::Engine::Zeus')
-         && $engine->VERSION eq '0.01' )
+
+    elsif ($engine->isa('Catalyst::Engine::Zeus')
+        && $engine->VERSION eq '0.01' )
     {
         $old_engine = 1;
     }
 
     if ($old_engine) {
         Catalyst::Exception->throw( message =>
-            qq/Engine "$engine" is not supported by this version of Catalyst/
+              qq/Engine "$engine" is not supported by this version of Catalyst/
         );
     }
-            
+
     # engine instance
     $class->engine( $engine->new );
 }