[Catalyst-commits] r11100 - in
Catalyst-Manual/5.80/trunk/lib/Catalyst: . Manual
t0m at dev.catalyst.perl.org
t0m at dev.catalyst.perl.org
Mon Aug 10 08:40:44 GMT 2009
Author: t0m
Date: 2009-08-10 08:40:24 +0000 (Mon, 10 Aug 2009)
New Revision: 11100
Modified:
Catalyst-Manual/5.80/trunk/lib/Catalyst/Manual.pm
Catalyst-Manual/5.80/trunk/lib/Catalyst/Manual/About.pod
Catalyst-Manual/5.80/trunk/lib/Catalyst/Manual/Actions.pod
Catalyst-Manual/5.80/trunk/lib/Catalyst/Manual/CatalystAndMoose.pod
Catalyst-Manual/5.80/trunk/lib/Catalyst/Manual/DevelopmentProcess.pod
Log:
Expand CatalystAndMoose somewhat, re-arrange the DevelopmentProcess docs some more, and start adding better info on contributing, other misc cleanups
Modified: Catalyst-Manual/5.80/trunk/lib/Catalyst/Manual/About.pod
===================================================================
--- Catalyst-Manual/5.80/trunk/lib/Catalyst/Manual/About.pod 2009-08-10 08:28:43 UTC (rev 11099)
+++ Catalyst-Manual/5.80/trunk/lib/Catalyst/Manual/About.pod 2009-08-10 08:40:24 UTC (rev 11100)
@@ -258,7 +258,7 @@
then generate an HTML page, which Catalyst will send to the user's
browser, using whatever web server you've configured.
-How does this help you?
+=head3 How does this help you?
In many ways. Suppose you have a small catalog now, and you're using a
lightweight database such as SQLite, or maybe just a text file. But
Modified: Catalyst-Manual/5.80/trunk/lib/Catalyst/Manual/Actions.pod
===================================================================
--- Catalyst-Manual/5.80/trunk/lib/Catalyst/Manual/Actions.pod 2009-08-10 08:28:43 UTC (rev 11099)
+++ Catalyst-Manual/5.80/trunk/lib/Catalyst/Manual/Actions.pod 2009-08-10 08:40:24 UTC (rev 11100)
@@ -41,7 +41,7 @@
my $self = shift;
my ( $controller, $c, $test ) = @_;
$c->stash->{what} = 'world';
- $self->NEXT::execute( @_ );
+ $self->next::method( @_ );
};
1;
Modified: Catalyst-Manual/5.80/trunk/lib/Catalyst/Manual/CatalystAndMoose.pod
===================================================================
--- Catalyst-Manual/5.80/trunk/lib/Catalyst/Manual/CatalystAndMoose.pod 2009-08-10 08:28:43 UTC (rev 11099)
+++ Catalyst-Manual/5.80/trunk/lib/Catalyst/Manual/CatalystAndMoose.pod 2009-08-10 08:40:24 UTC (rev 11100)
@@ -12,13 +12,11 @@
This document provides you with a short overview of common caveats and
best practices to use L<Moose>-based classes within Catalyst.
-
=head1 THE CONTEXT CLASS
A Moose-ified version of the context class should look like this:
package MyApp;
-
use Moose;
use namespace::autoclean;
use Catalyst (
@@ -35,12 +33,12 @@
# method modifiers generally must be created after setup because otherwise they will
# conflict with plugin overrides
- after 'finalize' => sub{
+ after 'finalize' => sub {
my $c = shift;
$c->log->info( 'done!' );
}
-You should also be aware, that roles in C<< $c-E<gt>setup >> are applied
+You should also be aware that roles in C<< $c-E<gt>setup >> are applied
after the last plugin with all the benefits of using a single
L<with()|Moose/"with (@roles)"> statement in an ordinary L<Moose> class.
@@ -64,7 +62,6 @@
you to pass parameters to roles, or perform conflict resolution.
Conflict detection still works as expected.
-
=head2 ACCESSORS
Most of the request-specific attributes like C<$c-E<gt>stash>,
@@ -75,10 +72,10 @@
slightly limits the gains that could be had by wielding the full power
of L<Moose> attributes.
-Most of the accessors to information gathered during compile time is
-managed by C<Catalyst::ClassData>, which is a L<Moose>-aware version
-of L<Class::Data::Inheritable> but not compatible with
-L<MooseX::ClassAttribute>.
+Most of the accessors to information gathered during compile time (such
+as configuration) are managed by C<Catalyst::ClassData>, which is a
+L<Moose>-aware version of L<Class::Data::Inheritable> but not compatible
+with L<MooseX::ClassAttribute>.
=head2 ROLES AND METHOD MODIFIERS
@@ -89,13 +86,15 @@
If backward compatibility is of no concern to you, you could as easily
rewrite your plugins as roles and enjoy all the benefits of automatic
method re-dispatching of C<< before >> and C<< after >> method
-modifiers, naming conflict detecting and generally cleaner code.
+modifiers, naming conflict detection and generally cleaner code.
+=head3 NOTE
+
Plugins and roles should never use
after 'setup' => sub { ... } # wrong
-but rely on
+(or any other method of hooking the setup method) but rely on
after 'setup_finalize' => sub { ... } # this will work
@@ -108,7 +107,7 @@
=head1 CONTROLLERS
To activate Catalyst's action attributes, Moose-ified controller
-classes need to extend L<Catalyst::Controller> at compile time before
+classes need to extend L<Catalyst::Controller> at compile time, before
the actions themselves are declared:
package Catalyst::Controller::Root;
@@ -116,16 +115,27 @@
use namespace::autoclean;
BEGIN { extends 'Catalyst::Controller'; }
- with qw(
- # your controller roles
- );
-
+
=head2 Controller Roles
It is possible to use roles to apply method modifiers on controller actions
-from 5.80003 onwards, or use modifiers in actions in your controller classes
-themselves.
+from 5.80003 onwards, or use modifiers in your controller classes
+themselves. For example
+ package MyApp::Controller::Foo;
+ use Moose;
+ use namespace::autoclean;
+ BEGIN { extends 'Catalyst::Controller' };
+
+ sub foo : Local {
+ my ($self, $c) = @_;
+ $c->res->body('Hello ');
+ }
+ after foo => sub {
+ my ($self, $c) = @_;
+ $c->res->body($c->res->body . 'World');
+ };
+
It is possible to have action methods with attributes inside Moose roles, using
the trait introduced in L<MooseX::MethodAttributes> version 0.12, example:
@@ -138,3 +148,18 @@
...
}
+ package MyApp::Controller::Foo;
+ use Moose;
+ use namespace::autoclean;
+ BEGIN { extends 'Catalyst::Controller' };
+
+ with 'MyApp::ControllerRole';
+
+=head1 AUTHOR
+
+The Catalyst Core Team - see http://catalyst.perl.org/
+
+=head1 COPYRIGHT
+
+This program is free software. You can redistribute it and/or modify it
+under the same terms as Perl itself.
Modified: Catalyst-Manual/5.80/trunk/lib/Catalyst/Manual/DevelopmentProcess.pod
===================================================================
--- Catalyst-Manual/5.80/trunk/lib/Catalyst/Manual/DevelopmentProcess.pod 2009-08-10 08:28:43 UTC (rev 11099)
+++ Catalyst-Manual/5.80/trunk/lib/Catalyst/Manual/DevelopmentProcess.pod 2009-08-10 08:40:24 UTC (rev 11100)
@@ -2,38 +2,49 @@
Catalyst::Manual::DevelopmentProcess - Administrative structure of the Catalyst Development Process
-=head1 Aims of the Catalyst Core Team
+=head1 Catalyst development
-The main current goals of the Catalyst core development team continue to
-be stability, performance, and a more paced addition of features, with a
-focus on extensibility.
+=head2 Schedule
-The Catalyst Roadmap at
+There is no dated release cycle for Catalyst. New releases will be made
+when sufficient small fixes have accumalated, or an important bugfix, or
+significant feature addition is completed.
+
+=head2 Roadmanp for features
+
+The Catalyst Roadmap is kept at
L<http://dev.catalyst.perl.org/repos/Catalyst/Catalyst-Runtime/5.80/trunk/lib/Roadmap.pod>
-will remain as is,
-and continues to reflect the specific priorities and schedule for future
-releases.
-=head1 Charter for the Catalyst Core Team
+=head2 Bug list
-=head2 Intention
+The TODO list with known bugs / deficiences is kept at
+L<http://dev.catalyst.perl.org/repos/Catalyst/Catalyst-Runtime/5.80/trunk/TODO>
+=head1 The Catalyst Core Team
+
The intention of the Catalyst Core Team is to maintain and support the
Catalyst framework, in order for it to be a viable and stable framework
for developing web-based MVC applications. This includes both technical
decisions about the Catalyst core distribution, and public relations
relating to the Catalyst framework as a whole.
-The main priority for development is stability for the users of the
-framework, while improving usability and extensibility, as well as
-improving documentation and ease of deployment.
+The current goals of the Catalyst core development team are
+be stability, performance, and a paced addition of features, with a
+focus on extensibility.
+The core team are concerned with the 'core' Catalyst distributions
+(i.e. L<Catalyst::Runtime>, L<Catalyst::Devel> and L<Catalyst::Manual>),
+and also tries to encourage best practices for extension authors and
+cooperation and shared vision within the Catalyst community.
+
=head2 Membership
The Catalyst Core Team consists of the developers that have full commit
-privileges to the entire Catalyst source tree.
+privileges to the entire Catalyst source tree, who have made a significant
+contribution to the core Catalyst distributions, and various extensions and
+pugins.
-In addition, the core team may accept members that have non-technical
+In addition, the core team includes members that have non-technical
roles such as marketing, legal, or economic responsibilities.
Currently, the Core Team consists of the following people:
@@ -96,4 +107,28 @@
questions or other correspondence. In cases where this is not possible,
the same order as for CPAN Releases applies.
+=head1 Contributing to Catalyst
+The main philosophy behind Catalyst development can be surimsed as:
+
+ Patches welcome!
+
+Everyone is welcome (and will be encouraged) to contribute to Catalyst
+in whatever capacity they're able to. People in #catalyst-dev will be
+more than happy to talk newcomers through contributing their first patch,
+or how best to go about their first CPAN extension module..
+
+=head2 Repositories
+
+The Catalyst subversion repository can be found at:
+
+ http://dev.catalyst.perl.org/repos/Catalyst
+
+and the git repository can be found at FIXME
+
+=head2 New Catalyst extensions
+
+As Catalyst is deliberately designed for extension, there is an ecosystem of
+several hundred Catalyst extensions which can be found on CPAN.
+
+FIXME
Modified: Catalyst-Manual/5.80/trunk/lib/Catalyst/Manual.pm
===================================================================
--- Catalyst-Manual/5.80/trunk/lib/Catalyst/Manual.pm 2009-08-10 08:28:43 UTC (rev 11099)
+++ Catalyst-Manual/5.80/trunk/lib/Catalyst/Manual.pm 2009-08-10 08:40:24 UTC (rev 11100)
@@ -37,31 +37,31 @@
=item *
-L<Catalyst::Manual::Intro|Catalyst::Manual::Intro>
+L<Catalyst::Manual::Intro>
=item *
-L<Catalyst::Manual::Tutorial|Catalyst::Manual::Tutorial>
+L<Catalyst::Manual::Tutorial>
=item *
-L<Catalyst::Manual::Actions|Catalyst::Manual::Actions>
+L<Catalyst::Manual::Actions>
=item *
-L<Catalyst::Manual::Cookbook|Catalyst::Manual::Cookbook>
+L<Catalyst::Manual::Cookbook>
=item *
-L<Catalyst::Manual::DevelopmentProcess|Catalyst::Manual::DevelopmentProcess>
+L<Catalyst::Manual::DevelopmentProcess>
=item *
-L<Catalyst::Manual::ExtendingCatalyst|Catalyst::Manual::ExtendingCatalyst>
+L<Catalyst::Manual::ExtendingCatalyst>
=item *
-L<Catalyst::Manual::Internals|Catalyst::Manual::Internals>
+L<Catalyst::Manual::Internals>
=item *
@@ -69,12 +69,10 @@
=back
-
=head2 Books
For additional information on Catalyst, there are currently two books available:
-
=over 4
=item *
More information about the Catalyst-commits
mailing list