On Tue, Oct 30, 2007 at 03:15:03PM +0000, Jonas Alves wrote: > On 30/10/2007, Jonathan Rockway <[EMAIL PROTECTED]> wrote: > > Jonas Alves wrote: > > > Hi, > > > > > > I want my dbic components to be able to extend the ResultSet by adding > > > base classes when they are loaded. > > > > How about: > > > > package MyApp::ResultSet::FooAndBar > > use base qw/MyApp::ResultSet::Foo MyApp::ResultSet::Bar/; > > 1; > > > > If you want something more dynamic: > > > > package MyApp::RS::Base; > > use Moose; > > extends 'DBIx::Class::ResultSet'; > > 1; > > > > package MyApp::RS::Role::Foo; > > use Moose::Role; > > sub foo { } > > 1; > > > > <same idea for bar> > > > > Then you can say: > > > > __PACKAGE__->resultset_class('MyApp::RS::Base'); > > __PACKAGE__->resultset_class->meta->apply_role('MyApp::RS::Role::Foo'); > > > > Have I tested any of this? No. YMMV. > > > > (Dynamically building classes at runtime is probably a Bad Idea anyway. > > I suggest just going with the inheritance method shown first; just > > create a separate RS class for each case where you need one.) > > > > Regards, > > Jonathan Rockway > > > > Hi Jonathan, > I really like your Moose approach, but i would like a solution that > just require the user to load_component my extensions and with that > get the ResultSet methods for free.
I think the idea of his approach was your common class would generate the resultset_class invocation. That's exactly how resultset plugins are going to work once DBIC goes Moose. -- Matt S Trout Need help with your Catalyst or DBIx::Class project? Technical Director http://www.shadowcat.co.uk/catalyst/ Shadowcat Systems Ltd. Want a managed development or deployment platform? http://chainsawblues.vox.com/ http://www.shadowcat.co.uk/servers/ _______________________________________________ List: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class IRC: irc.perl.org#dbix-class SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/ Searchable Archive: http://www.grokbase.com/group/[EMAIL PROTECTED]