On Thu, 22 Mar 2007, RA Jones wrote:

Following on from another thread about how to handle the debugobj, I've run into another conundrum. In trying out various SQL profiling configurations, I selectively load or comment out the base modules in MyApp.pm:

use Catalyst qw(lots of modules);

In doing so I can test for their existence in the controllers:

if ( $c->registered_plugins('DBIx::Class::QueryLog') ) {
do_something_with_DBIC-QueryLog
}

But how can I do the equivalent in the Model/Schema class, which does not know anything about $c. I want to do something like:

use base 'Catalyst::Model::DBIC::Schema';

sub new {
  my $self = shift->NEXT::new( @_ );

     if ( module_x is loaded ) { setup storage on x }
  elsif ( module_y is loaded ) { setup storage on y }

 return $self;
}


I was about to suggest you read the docs of DBIx::Class::Componentised.. Then I realised it doesn't have any.. Regardless, it has an "ensure_class_found" method, which may do what you want. Try looking at the code.

Also most components in DBIx::Class are stuffed into the base of the ResultSources, so you can just check isa() for those.

Jess

_______________________________________________
List: http://lists.rawmode.org/cgi-bin/mailman/listinfo/dbix-class
Wiki: http://dbix-class.shadowcatsystems.co.uk/
IRC: irc.perl.org#dbix-class
SVN: http://dev.catalyst.perl.org/repos/bast/trunk/DBIx-Class/
Searchable Archive: http://www.mail-archive.com/[email protected]/

Reply via email to