[Catalyst] [Patch] CatalystAdvent: New year fixes

Daniel Westermann-Clark daniel at acceleration.net
Mon Jan 2 21:03:00 CET 2006


Attached is a patch to update CatalystAdvent for the new year.

By default, it displays the most recent year in the root directory
instead of blindly trying to display the current year.  It also fixes
the redirect loop by removing the redirect in the 'year' action.

Any thoughts?

-- 
Daniel Westermann-Clark
-------------- next part --------------
Auto-merging (0, 4506) /local/CatalystAdvent to /mirror/Catalyst/trunk/examples/CatalystAdvent (base /mirror/Catalyst/trunk/examples/CatalystAdvent:3276).
Patching locally against mirror source http://dev.catalyst.perl.org/repos/Catalyst.
U   root/year.tt
U   lib/CatalystAdvent.pm
U   lib/CatalystAdvent/Controller/Calendar.pm
U   Changes
==== Patch <-> level 1
Source: 462d4d0c-b505-0410-bf8e-ce8f877b3390:/local/CatalystAdvent:4506
Target: 4ad37cd2-5fec-0310-835f-b3785c72a374:/trunk/examples/CatalystAdvent:2809
        (http://dev.catalyst.perl.org/repos/Catalyst)
Log:

Happy New Year!

=== root/year.tt
==================================================================
--- root/year.tt	(revision 2809)
+++ root/year.tt	(patch - level 1)
@@ -31,7 +31,10 @@
 </tr>

 [% END %]

 </table>

+[% TRY %]

 <div id="notes">

-[% INCLUDE "notes/${year}.tt" %]

+    [% INCLUDE "notes/${year}.tt" %]

 </div>

+[% CATCH %]

+[% END %]

 <p class="rss">[<a href="[% c.uri_for('/rss', year) %]">RSS</a>]</p>

=== lib/CatalystAdvent.pm
==================================================================
--- lib/CatalystAdvent.pm	(revision 2809)
+++ lib/CatalystAdvent.pm	(patch - level 1)
@@ -8,7 +8,7 @@
                  Cache::FileCache
                  DefaultEnd );
 
-our $VERSION = '0.02';
+our $VERSION = '0.03';
 
 __PACKAGE__->config( name => 'CatalystAdvent' );
 __PACKAGE__->setup;
=== lib/CatalystAdvent/Controller/Calendar.pm
==================================================================
--- lib/CatalystAdvent/Controller/Calendar.pm	(revision 2809)
+++ lib/CatalystAdvent/Controller/Calendar.pm	(patch - level 1)
@@ -34,7 +34,12 @@
 
 sub index : Private {
     my ( $self, $c ) = @_;
-    $c->detach( 'year', [ $c->stash->{now}->year ] );
+    opendir DIR, $c->path_to('root') or die "Error opening root: $!";
+    my @years = sort grep { /\d{4}/ } readdir DIR;
+    closedir DIR;
+
+    my $year = pop @years || $c->stash->{now}->year;
+    $c->forward( 'year', [$year] );
 }
 
 =head2 year
@@ -46,8 +51,6 @@
 sub year : Regex('^(\d{4})$') {
     my ( $self, $c, $year ) = @_;
     $year ||= $c->req->snippets->[0];
-    $c->res->redirect( $c->uri_for('/') )
-        unless ( -e $c->path_to( 'root', $year ) );
     $c->stash->{year}     = $year;
     $c->stash->{calendar} = calendar( 12, $year );
     $c->stash->{template} = 'year.tt';
=== Changes
==================================================================
--- Changes	(revision 2809)
+++ Changes	(patch - level 1)
@@ -1,13 +1,18 @@
 This file documents the revision history for Perl extension CatalystAdvent.
 
+0.03
+        - By default, display the most recent year for which we have
+          entries
+        - Display notes only if they exist
+
 0.02  Thu Dec  8 2005
         - Cache generated xhtml files
         - RSS feed available
-        - code refactored
+        - Code refactored
         - CSS fixings, now using static file
-        - docs updated
+        - Docs updated
         - Added link to main site
         - Added previous and next buttons
 
 0.01  Mon Dec  5 20:59:38 2005
-        - initial revision, generated by Catalyst
+        - Initial revision, generated by Catalyst

==== BEGIN SVK PATCH BLOCK ====
Version: svk 1.06 (linux)

eJyNVW1v1EYQvqJ+OhWh/oBKS+Qo0Oa4fbG9doBT4JIK1CogCJUQVNF6d5yzcOyr7bvkFEfiKFXh
D/Qjv7Wzewkc5YBaJ93aM/PMzPPM7v5c7d/cZu1gQFuP0fbxb79sbT1UjR6tM7/1whZM1pSVF7Q5
TCH3RJuXh57fFuoI0FqXk0rbRaOqQ2jsItMvoBkMGMJFC7hdB3EB61AT1ZRF7cUO/qCpADzWxttY
wLawvwOPxW0NaHK4BxVMszorC8zsBzRED/RnGF+OoTioyrJBC4+p2OY2lrY6L2s4sOjbfrsdWHfu
YUfO32QVaCxphkEu1mKdxztXf4Urdp4ln3jGFzWkWQ6ebIcjVRxCveznugnOK/qAhx5Y7AJFfITC
uKuqPwNV3WgaV/rXsPgCy1nVeJzPDho4aQzkjXL4grc0SmUY+DyUNI5UxCnXgkaM+zw2IePCY06w
vU7n7bdvf+qqzptLnZeqc+/NrWfrZP/RU7L+++XuLZNNSWZurxVlA/Xa4HKX4IMO9/eGvz7Z2SUL
Q987tdWfYflri7g+BqI3eg7v7A/vuY/4sru3g0vUaEm1BQmLohUF5csgCZlkRrI41EksE19QLnio
48COi6Mw+IhCzqxa/aFqVD6rmztmCkVzY3zktF3WL1yhNNLwafBy5GdV8L+oQmAbioAzrf3QB8kl
4zIByRITMeZzEXKhPM7PRXjw9kH3m878bmfeefPdfChWkuQwYx2xNGEmDYUxNNAykToIkiTRXKSp
/2HO5Ipuebyi2/6wLJqqzHOoHElfazx8nyL6SAd/lQ5L4GjJoTA4504b+dVE8osMR5YNHkcgpTGa
hTQyCbCIAVO+ikUcpkkaetyPFxS/I+/++H7+vPN63HmJf/Pgrx86/4z/prZ+TEp27j/aJJ7uDcaq
GR005bUNuy83rpOyIiYDsrZbVbi07llxSKxxi3hX1266TXE0I9t2E9TkNqnLqiGHFYzJKek/N6f+
WZ+ckQqUOc+zCHH9vv9ygeJZFAQZl+MLxLZ1ddWNqke9wWlRHp/1Bta0wLG2tKyOVWWukQ37fWOT
PHM4K6fI8aYjAK1SHkZKRqCNCUWKM2UksIQHYfRF5mOL4Ese4aFiYhqoRImIBSAFExGlIfiRxg0t
zof7z7XXP155xToPOy9f0c780vxkvvHqVLji7dMjd2fEQKomebOJXNfjXM1IMwJyVNYNEqdxjojj
Bfskx6NMj8gxkJGawnsQQtCpyqBegt05h3KnFCmLfEay1ALPCJxkddPt0huUE7I/mpAd0IREhFMa
LCEMlcYyDqGASjVgyMmoOcqJJXI5z6PHj0kKaFZTleUqyWEZojSAPaTKTjWYZYsNy05wmupNrPGY
TGo7Wagz3qsuyXIv91eK6aQIRag5T7QEGRo/gFimPqSh1njeJ0GSuguKybZ7D7WckT04Jk+Rzatd
NPQGA94uziG8vffdDby19aTIplDVKl8PW9ymdkvgnYgXM75MJpmxZ24/L7XK/3tyLu5sT4StH3Lj
G6p7SUCDHvUZ7SVpBD0NURpJmQgR08F13n4uhaBtv6kmxYs+nKijMVL+aS4e0djlUkZIbXgvSEH3
qMBckQjSXiJkhEckV0L6Xij+V01bKxvbsm39CyJ33zA=
==== END SVK PATCH BLOCK ====


More information about the Catalyst mailing list