Hatena::Groupcatalyst

masaki@catalyst RSSフィード

Fork me on GitHub
 | 

2008-03-11

Re: Catalyst::Controller::Atompubのdispatch

| 19:29 | Re: Catalyst::Controller::Atompubのdispatch - masaki@catalyst を含むブックマーク はてなブックマーク - Re: Catalyst::Controller::Atompubのdispatch - masaki@catalyst Re: Catalyst::Controller::Atompubのdispatch - masaki@catalyst のブックマークコメント

名指しされたので補足(じゃないけど).

sub default :Regex('^foo/(\w+)/collection') {
  my ($self, $c) = @_;
  $c->NEXT::default($c);
}

sub edit_uri: Regex('^foo/(\w[\w_-]+\w)/collection/([^-?&#][^?&#]*)') {
  my ($self, $c) = @_;
  $c->NEXT::edit_uri($c);
}
Catalyst::Controller::Atompubのdispatch、Slugヘッダとか - Yet Another Hackadelic

C::C::Atompub を利用する上ではその他メソッドの上書き含めて d:id:ZIGOROu の書かれている通りだと思うわけですが,これだとリソースの階層表現を Regex で頑張りすぎてる感が否めないのです.ここを綺麗にするのが Chained Action であって,さらにそれに規約をかぶせたのが C::C::Resources なわけで,これ使ってもっと綺麗に書きたいと思ってるのが現状.まだ書いてないけど.

例えば C::Action::Atompub があるとしたら

package MyApp::Controller::Foo;
use base 'Catalyst::Controller::Resources';

sub list :ActionClass('Atompub') {
    my ($self, $c) = @_;
    $c->log->debug( $self->collection_resource->uri ); 
}

とか,もしくは

package MyApp::Controller::Foo;
use base qw/
    Catalyst::Controller::Resources
    Catalyst::Controller::Atompub
/;

sub list {
    my ($self, $c) = @_;
    $c->log->debug( $self->collection_resource->uri ); 
}

という感じに書きたいなと勝手に思ってるわけです.

話が脱線しまくりで補足になってなくてすんません.

トラックバック - http://catalyst.g.hatena.ne.jp/ikasam_a/20080311
 |