独自row拡張の拡張
http://d.hatena.ne.jp/magicalhat/20100118/1263745674
こちらでto_jsonのメソッドを生やすのに大変な思いをさせてしまいましたが、
先程独自Rowをもう少し拡張しやすいバージョンをgithubにpushしました。
http://github.com/nekokak/p5-dbix-skinny/commit/2bd156a7d4c08cb621197105c3652151e86675d5
これのサンプルが
http://github.com/nekokak/p5-dbix-skinny-sample/commit/1123d7b92bfcb28e8afda7cf3dbc030854202050
こちらになります。
簡単に解説すると、
Demo::DBがSkinnyを利用するクラスとすると
Demo::DB::Rowというクラスを定義してここにto_jsonメソッドを用意してあげます。
するとSkinnyでは内部でDemo::DB::RowをベースのRowクラスに利用するので、
to_jsonメソッドが利用できるようになっています。
また、
http://d.hatena.ne.jp/magicalhat/20100119/1263870619
こちらではイテレータにto_jsonメソッドをはやしていますが、
こういうのはRow側でto_jsonできるメソッドがあれば
あとは使う側でmapするだけですね。
my $itr = $db->search('user'); my @json = map { $_->to_json } $itr->all;
なので、無理にイテレータにメソッド生やす必要はないと思いますです。