On Sat, Jun 06, 2009 at 02:35:53PM +1100, Илья wrote:
> Hi there,
> we use Catalyst about year and one thing make a lot of pain. When you
> make typo in action attribute name Catalyst silently eat it. For
> example:
>
> sub foo : Loacal Arg(1) {
>
> }
>
> will be work, but Arg(1) just do nothing.
>
> Now we use few additional attributes and I add trivial check in
> Our::Catalyst::Action:
>
> my @correct_names = qw<
> Path
> Private
> Global
> Local
> Regex
> LocalRexgex
> Args
> Chained
> CaptureArgs
> PathPart
>
> Method
> Secure
> UnSecure
> RestrictTo
> Crumb
> Test
> >;
>
> foreach my $name (keys %$attrs) {
> unless ( first { $name eq $_ } @correct_names ) {
> die "Wrong trait (attribute) $name!";
> }
> }
>
> so it is work for us, but mb better to add something like this in
> Catalyst itself? I can make patch if this helps.
A patch that let you do something like
__PACKAGE__->config(
Dispatcher => {
action_attributes => {
allow => \...@list
}
}
);
in MyApp.pm (preferably with the built in ones already in the list) to
turn on strict checking would seem fine to me.
Then the dispatcher could check the actions when each one is registered with
it.
--
Matt S Trout Catalyst and DBIx::Class consultancy with a clue
Technical Director and a commit bit: http://shadowcat.co.uk/catalyst/
Shadowcat Systems Limited
mst (@) shadowcat.co.uk http://shadowcat.co.uk/blog/matt-s-trout/
_______________________________________________
List: [email protected]
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/[email protected]/
Dev site: http://dev.catalyst.perl.org/