On Mar 13, 2007, at 10:41 AM, Robert 'phaylon' Sedlacek wrote:
Jason Kohles wrote:
I'm trying to use Chained('.') to create a controller base class
that binds to the namespace of whatever controller class inherits
it, but despite the documentation specifically mentioning this
use, I can't seem to get it to work.
Where does the documentation say that? In
Catalyst::DispatchType::Chained it says
Another interesting possibility gives :Chained('.'), which chains
itself to an action with the path of the current controller's
namespace.
Apparently I misunderstood the relationship between Chained and
PathPart, and therefore misunderstood what the documentation was
saying here. So now the way I understand it is that Chained('.')
means to setup a chain segment that has as it's parent the chain
segment that matches the current controller's namespace. Apparently
what I'm actually looking for is the equivalent of Chained('/')
PathPart('.'), meaning I want to build chains that originate in the
current namespace.
What I'm actually trying to accomplish is something like this:
package MyApp::CRUDController;
use strict;
use warnings;
use base 'Catalyst::Controller';
# sub base : Chained(???) PathPart(???) CaptureArgs(0) { }
sub id : Chained('base') PathPart('id') CaptureArgs(0) { }
sub list : Chained('base') PathPart('') Args(0) { }
sub view : Chained('id') PathPart('view') Args(0) { }
sub edit : Chained('id') PathPart('edit') Args(0) { }
sub delete : Chained('id') PathPart('delete') Args(0) { }
1;
package MyApp::Controller::Foo;
use strict;
use warnings;
use base 'MyApp::CRUDController';
# So here I would like to get these chained actions:
# /foo/list
# /foo/id/*/view
# /foo/id/*/edit
# /foo/id/*/delete
1;
But the only way I can find to do this with Chained is by putting
something like this in each controller subclass:
sub base : Chained('/') PathPart('foo') CaptureArgs(0) { }
And I would rather not do that if I can avoid it, I'd rather have it
automatic, based on the namespace of the class that is inheriting the
superclass.
--
Jason Kohles
[EMAIL PROTECTED]
http://www.jasonkohles.com/
"A witty saying proves nothing." -- Voltaire
_______________________________________________
List: Catalyst@lists.rawmode.org
Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.rawmode.org/
Dev site: http://dev.catalyst.perl.org/