Hate replying to myself, but neither method seems to work.

Will need to look at this more ... it seems really simple, which means I am missing the obvious.

Joe Landman wrote:

Ok, starting to want to play with Chained actions for an app, and I am not sure they are the right fit. Possibly a round peg in this particular square hole.

Here is what I want to do. I want to capture 0, 1, or 2 arguments on the URL.

If 0 args, then forward over to one method.

If 1 arg, then forward over to a specific method

If 2 args, then forward over to a different specific method.

I don't want to go beyond 2 args for this, but you should get the idea.

This is sort of a drill-in type application.

Ok.  Does chained make sense for this versus

sub do_stuff : Path('/') {
  my ($self, $c, @my_args) = @_;

  if ($#my_args == -1)
     {
       $c->forward('zero_args');
     }
  elsif ($#my_args == 0)
     {
       $c->forward('one_arg',@my_args);
     }
  elsif ($#my_args == 1)
     {
       $c->forward('two_arg',@my_args);
     }
 }

The issue in this case is that I won't know the value of the first or second arg in advance (they are coming from a database). So I am not sure if I can do something like

 #   root action - captures one argument after it
  sub zero : Path('/') {
      my ( $self, $c  ) = @_;
      ...
  }

  sub one_arg : Chained('/') PathPart('') CaptureArgs(1) {
      my ( $self, $c, $foo_arg ) = @_;
     ...
  }

  sub two_arg : Chained('/') PathPart('') CaptureArgs(2) {
      my ( $self, $c, $foo_arg, $bar_arg) = @_;
     ...
  }

that is, the particular sub to execute is a function not of the path, but of the number of arguments.

Is this a job for chained?

--
Joe Landman
[EMAIL PROTECTED]

_______________________________________________
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/

Reply via email to