_______________________________ From: J. Shirley <jshir...@gmail.com>
> If you structure your base class properly, and then in each class you > configure where to chain from: > > __PACKAGE__->config( > actions => { 'setup' => { Chained => '/some/other/chain', PathPart => > 'api' } } > ); > > You can override any of the methods along the way. I tend to use this > structure in my base class: > > sub setup : Chained('.') PathPart('something') CaptureArgs(0) { } > > sub root : Chained('setup') PathPart('') Args(0) { } > > sub object_setup : Chained('setup') PathPart('id') CaptureArgs(1) { } > > sub object : Chained('object_setup') PathPart('') Args(0) { } > > This way, you could add a: sub doc : Chained('setup') PathPart('doc') Args(0) > { } method and you would always have it. I'm not entirely sure I follow all of that. Right now, our PIPs::C::API::V1::Episode might handle: /api/v1/episode/ /api/v1/episode/pid.b0070xmk/ /api/v1/episode/pid.b0070xmk/children/ /api/v1/episode/pid.b0070xmk/children/versions And each of those needs a doc: /api/v1/episode/doc/ /api/v1/episode/pid.b0070xmk/doc/ /api/v1/episode/pid.b0070xmk/children/doc/ /api/v1/episode/pid.b0070xmk/children/versions/doc/ It doesn't really look like your solution handles variable length URL paths, will it? So Catalyst doesn't offer any simple way of saying "globally match {^(.*)/doc$} against a desired controller? (the controller for $1 in this case) > I have an example app on github that demonstrates this idea more: > http://github.com/jshirley/catalystx-example-chained/tree/master > > I'm currently using this same mechanism in a similar way, except instead of a > 'doc' it is a 'search' method ... I can't find that "search" method anywhere in that code (forced to examine it through the Web interface due to our firewalls). Cheers, Ovid -- Buy the book - http://www.oreilly.com/catalog/perlhks/ Tech blog - http://use.perl.org/~Ovid/journal/ Twitter - http://twitter.com/OvidPerl Official Perl 6 Wiki - http://www.perlfoundation.org/perl6 _______________________________________________ List: Catalyst@lists.scsys.co.uk Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/ Dev site: http://dev.catalyst.perl.org/