DBIx::Skinny::InflateColumn::DateTimeを書きました

SkinnyでSchemaを定義する時に、

package MyApp::Schema;
use DBIx::Skinny::Schema;

use DBIx::Skinny::InflateColumn::DateTime;

install_table books => schema {
    pk 'id';
    columns qw/id name create_at updated_at/;
};

のように use DBIx::Skinny::InflateColumn::DateTime すると、/_(at|on)$/ なカラムを自動でDateTimeオブジェクトとしてInflate/Deflateします。

例によってDBIx::Skinny本体はgithubの最新版でどうぞ。

hide-kさんのDBIx::Class::InflateColumn::DateTime::Autoの機能を取り込んでいて、insert/update時に所定のカラムがあれば更新時刻を自動で入れるようにしました。::Auto付けて別モジュールにしようかとも思ったけど、自分にとっては既に必須機能になっているのでまとめました。offにするオプションは付けてもいいかも。

insert時はcreated_at, created_on, updated_at, updated_onが、update時はupdated_at, updated_onが自動更新の対象になります。

これでDBIx::Skinnyで欲しい機能はあらかた使えるようになったかな。目下の所、ドキュメント不足が深刻な課題なのでそこをやらんといかんですな。テストも足りない。

(追記)Skinnyにはintro.podとか日本語のドキュメントが同梱されてるので、それを見れば結構な情報は載ってます。「深刻な課題」って言うとちょっと語弊がありますね。ただ、perldocに取り込まれてないのと、Web上で参照できる情報が少ないって意味では、まだまだやるべきことがたくさん。

irc.perl.orgの#dbix-skinnyにSkinnyの専用チャンネルがあるので、ちょっとでも興味がある人はjoin now! 今のところid:nekokakさんと僕の2人しかいないよ…