$c->form の名前がだめ

ごろうさんが CGI.pm の param の扱いがいけてねーとかいってて、オレは validator がほしいよ、とかいってたんだけど、よく考えたら普通に validator つかえるじゃんか。

なんかページング処理とかで $c->req->params->{page} を自前でごにょっと処理してて嫌な感じだったんだけど

$c->form( page => [ ['GREATER_THAN', 1] ] );

とかしとけば $c->form->valid('page') で綺麗な値がとれると。

多分、めちゃくちゃ常識だと思われますが、僕は form という名前にだまされたのかこういう用途につかうということをまったく思いつかなかった。

$c->validator とかにすればいいのに!!

by typester / at 2006-02-09T23:20:00 / perl · catalyst / Comment

まぁ別に今の実装でもわかってれば特に不便ってわけでもないか。

by typester / at 2006-02-08T00:11:00 / perl · catalyst / Comment

Catalyst の config

基本的なものは MyApp.pm ないで

__PACKAGE__->config( ... );

で指定し、deploy 先で違うものなんかの設定を myapp.yml に書いて上書きとかってやろうとおもっても、現状の Catalyst.pm では

$class->config( { %$oldconf, %$conf } );

ってなってるだけだから普通に深い階層になるのがデフォな Catalyst 設定ではいまいち使えないあるね。

たとえば myapp.yml に

session:
   cookie_name: session

とか書くと、$c->{config}->{session} のほかのキー消されちゃう><

こういう使いかたしてる人いねってことかしら?

by typester / at 2006-02-07T23:46:00 / perl · catalyst / Comment

cpanrecent_crawler を Schema::Loader にスイッチ

今朝かいた Catalyst の Model を Schema::Loader でロードってやつを、CPAN Recent Changes のクローラでやってみた。

今までは use MyApp; 方式でロードしていて、それからの変更は以下のような感じ。

[223] (changeset) - Public Projects - Trac

こんな感じで割りとすぐ移行可能。Class::C3 の warning が消えたのがかなりうれしいなぁ。

by typester / at 2006-02-06T22:53:00 / perl · dbic / Comment

こないだ書いた Catalyst の DBIC モデルを外部スクリプトから利用するっていうやつ、DBIx::Class::Schema::Loader つかえばいいね。

use FindBin;
use lib "$FindBin::Bin/../lib";

{
    package MyApp::Model::DBIC;
    use base qw/DBIx::Class::Schema::Loader/;

    __PACKAGE__->load_from_connection(
        dsn => 'dbi:...',
    );
    __PACKAGE__->load_classes;
}

こんな感じにすれば、MyApp::Model::DBIC::* をロードしてくれる。

全部ロードしてもいいなら use MyApp; で終わりなんだけど多分ほとんどの場合外部スクリプトから必要なのはモデル部分だけだと思われる。

22:55: `load_classes` 書いてなかったので追記。ロードされてねーよ。
by typester / at 2006-02-06T04:41:00 / perl · dbic / Comment

Data::Clmemo

CLON の作成にあたり Data::Clmemo などというものができちゃったわけですが、激しくオレフォーマットな Changelog memo しかパースできないため、CLON の公開にはこれの拡張が必至。

フォーマットの定義を Data::Clmemo::* でやればいいのかね。DBIC::Loader とかのイメージで。

by typester / at 2006-02-05T20:38:00 / perl · clon / Comment

find_or_new

sub find_or_new { my $class = shift; my $attr = @_ > 1 ? {@} : $[0]; my $exists = $class->find($attr); return defined $exists ? $exists : $class->new($attr); }

find_or_create はあるのにこれはないとか謎い。NOT NULL なカラムもってるテーブルだとあんまりつかえねーよ>find_or_create

by typester / at 2006-02-05T04:31:00 / perl · dbic / Comment

updated daap_proxy.pl

[66] - Trickster 2.0 - Trac

TCP Keepalive を有効にしました。1曲終わると rebuffering のまま次の曲に行けないのがなくなったと思います。

うごいてなかった。違う環境でテストしてたよ。。

by typester / at 2006-02-04T19:18:00 / perl · trickster / Comment

のみまくし日記 - 配列を一気にハッシュへ変換

ここに出てきたコードがわからなかったので perldoc ってみた。

@days{'a','c'}      # same as ($days{'a'},$days{'c'})

基本っぺーorz

by typester / at 2006-02-01T22:44:00 / perl / Comment

Uninitialized value in pattern match

例えば

push @plugins, 'Static::Simple' if $ENV{CATALYST_ENGINE} =~ /^HTTP/;

などとしたときに $ENV{CATALYST_ENGINE} が未定義だとタイトルのように怒られるわけです。

$ENV{CATALYST_ENGINE} and $ENV{CATALYST_ENGINE} =~ /^HTTP/;

とか

$ENV{CATALYST_ENGINE} || '' =~ /^HTTP/;

とかするわけですがいまいち冗長!

これはどうするのが普通なのか。

by typester / at 2006-02-01T04:00:00 / perl / Comment

21 22 23 24 25 26 27 28 29 30

(Page 25 of 30)