DBIx::Class::ResultSetManager
DBIx::Classをいじっているわけですが、
Class::DBIみたいに、パッケージに自分を生成するクラスメソッドを作りたかったんですよ。
こんな感じにしたい
$schema->resultset('Sample')->recent_entries;
DBIx::Class::ResultSetManagerでResultSetにメソッドを追加 の素晴らしい事例を見て納得、なるほど。
こんなのがテーブルにマッピングしたモジュールにあって、呼び出したらイテレータなどが返ってくるという感じ。↓
package Schema::Sample;
use base qw/DBIx::Class/;
__PACKAGE__->load_components(qw/
ResultSetManager
Core
/);
__PACKAGE__->table(’sample');
__PACKAGE__->add_columns(qw/id title body timestamp/);
__PACKAGE__->set_primary_key('id');sub recent_entries : ResultSet {
my $class = shift;
return $class->search( undef, { order_by => [ qw/timestamp/ ] } );
}
で、resultsetから直接 recent_entries を実行できました。








