whole new syntax
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Base.pm
index f0138cf..abe23e9 100644 (file)
@@ -4,7 +4,14 @@ use strict;
 use base qw/Class::Data::Inheritable Class::Accessor::Fast/;
 use NEXT;
 
-__PACKAGE__->mk_classdata('_config');
+__PACKAGE__->mk_classdata($_) for qw/_cache _config/;
+__PACKAGE__->_cache( [] );
+
+sub MODIFY_CODE_ATTRIBUTES {
+    my ( $class, $code, @attrs ) = @_;
+    push @{ $class->_cache }, [ $code, [@attrs] ];
+    return ();
+}
 
 =head1 NAME
 
@@ -48,9 +55,12 @@ This is the universal base class for Catalyst components
 It provides you with a generic new() for instantiation through Catalyst's
 component loader with config() support and a process() method placeholder.
 
-=head2 METHODS
+=head1 METHODS
+
+=over 4
+
+=item new($c)
 
-=head3 new
 =cut
 
 sub new {
@@ -58,7 +68,14 @@ sub new {
     return $self->NEXT::new( $self->config );
 }
 
-=head3 config
+# remember to leave blank lines between the consecutive =item's
+# otherwise the pod tools don't recognize the subsequent =items
+
+=item $c->config
+
+=item $c->config($hashref)
+
+=item $c->config($key, $value, ...)
 
 =cut
 
@@ -74,7 +91,7 @@ sub config {
     return $self->_config;
 }
 
-=head3 process
+=item $c->process()
 
 =cut