« Catalyst::View::JSON | メイン | Tag入力Suggestテスト »

CGI::Application::Dispatch v2.00_01

CGI::ApplicationのMLでCGI::Application::Dispatchのv2.00_01がでてます

svnで取得できます。
svn://svn.cromedome.net/CGI-Application-Dispatch

新しいdispatch tableがいい感じ。
今までは、PATH_INFOが

/Module/Runmode

で固定でしたが、これをいじる事ができます。

dispatchのカスタマイズをするにはCGI::Application::Dispatchを継承してdispatch_argsをoverrideします。

package MyApp::Dispatch;
use base 'CGI::Application::Dispatch';

sub dispatch_args {
    return {
        prefix  => 'MyApp',
        table   => [
            '' => { app => 'Welcome', rm => 'start' },
            :app/:rm' => { },
            'admin/:app/:rm' => { prefix => 'MyApp::Admin' },
        ],
    };
}

package main;
MyApp::Dispatch->dispatch;


tableの中身は

PATH_INFO => Local設定のhashref

の配列です。PATH_INFO中で
:app = Module
:rm = Runmode
:foo = $self->param('foo')で取得可能
になります。Local設定では、prefixやModule、Runmodeを指定可能っす。

これは結構便利なんじゃないでしょうか。