« 絶対入れておきたいオンラインソフト(フリー限定)-CHEEBOW版 | メイン | CHEEBOWのしおり(2006-01-06) »

2006年1月 6日

新年だからCatalystでも勉強しよう

新しい年になったことだし、ちょっと変わったことでもやってみましょうということで、いまさらCatalyst入門。
Perl の MVC フレームワーク Catalyst に入門してみた : NDO::Weblog」をテキストにして、手持ちのFedoraCore4マシンにインストールすることから始めてみた。
んがっ! ……はまる。

[naoya@colinux naoya]$ sudo perl -MCPAN -e 'install Bundle::Catalyst'
[naoya@colinux naoya]$ sudo perl -MCPAN -e 'install Bundle::Catalyst::Everything'

これでいけるかなーと思ったら、全然インストールできる気配なし。しかたないので、

sudo perl -MCPAN -e 'install Task::Catalyst'

これでどかっとインストール。時間はかかるけど、これで何とかインストール終了。
MySQLを使うことにして、説明通りにテーブル作成。で、

catalyst.pl CHE::TinyURL

これで、プロジェクトをざくっと作成。いえい。

script/che_tinyurl_create.pl view TT TT

ここはさくりといったんだけど、

script/ndo_tinyurl_create.pl model CDBI CDBI DBI:mysql:tinyurl nobody nobody

ここでまたつまづく。

script/che_tinyurl_create.pl model DBIC DBIC DBI:mysql:tinyurl nobody nobody

としないと駄目みたい。CDBIでなくてDBICなわけね。
これ、どうも新しいバージョンのCatalystではデフォルトになってるみたい(hide-k.net#blog: Catalyst::Bundle in trunk)。うむむ。

めげずに先に進みます。TinyURL.pmにコードを追加していくよ。が、ここでも、ちょっと変更点が。

TinyURL::V::TTとかTinyURL::M::CDBI::Urlmapなんてところは、TinyURL::View::TTとかTinyURL::Model::CDBI::Urlmapとかにしてあげなくちゃ駄目なのね。これはディレクトリ構造が変わったんですかね。
ま、そのあたりはさくっと乗り越えいざ実行!

script/che_tinyurl_server.pl

ぽちっとな。
おおお! 動いた。入力フォームが出ましたよ!
で、URLの入力後画面遷移もおっけー!
……なのに、リダイレクト処理がうまくいかないみたい。

Caught exception "Can't locate object method "retrieve" via package "CHE::TinyURL::Model::DBIC::Urlmap" at /home/cheebow/CHE-TinyURL/script/../lib/CHE/TinyURL.pm line 79."

というエラーメッセージが僕を責める。なんでやねん!
もう、全然わかんない。もう、Catalyst嫌い!
ふてくされて昼飯を食べる。別の仕事もしてみる。
で、ふとググると「blog.nomadscafe.jp: DBIx::ClassやFormValidator::Simple::Plugin::DBIC::UniqueをつかってTropy」このページの

あとは、retrieveからfindへの変更をしたぐらいで、簡単に動くものはつくれました。

この記述を発見!
これだっ! と

sub redirect : Regex('^(\d+)) {
 my ($self, $c) = @_;
 my $map = NDO::TinyURL::M::CDBI::Urlmap->retrieve($c->req->snippets->[0]);
 $map ? $c->res->redirect($map->url) : $c->res->redirect('/');
}


この部分のretrieveをfindに書き換えたら、うふ、うふふふ。動くじゃん。
いやっほー。

おおお。感激。
Ruby on Railsよりも、どちらかというとCatalystの方が馴染める感じ。
でも、やっぱ、お作法がいろいろあるわけで、フレームワークを使いこなすには結構な時間がかかりそう。
ま、しかし、良い勉強になりましたー。

投稿者 CHEEBOW : 2006年1月 6日 16:44 このエントリーを含むはてなブックマーク

[ Development ]
【お知らせ】音楽に関することはこちらのブログで書いています。くじら音楽部::BLOG