[Catalyst] Hops-0.05 and two questions

Vsevolod (Simon) Ilyushchenko simonf at cshl.edu
Tue Jul 5 03:18:19 CEST 2005


Hi,

On suggestion from Will Hawes, I've got rid of the uri_base parameter in 
Hops and released version 0.05. It's at
http://www.simonf.com/catalyst

For the new list members, Hops is a demo of generic database CRUD 
operations using Catalyst, rewritten from the Maypole BeerDB example.



I've finally tried to use Catalyst in some real-world applications, and 
here are two issues I've run into:

1. By default, Class::DBI::Loader::Generic tries to create classes for 
all tables. I have over a hundred tables serving about 10 applications, 
and I don't want to auto-discover all of the tables. So, I'd like to use 
my own loader that specifies which tables to load.

Currently, Catalyst::Model::CDBI::new explicitly uses 
Class::DBI::Loader. I would separate loader creation into a method 
called something like "initLoader" and let subclasses override it.

However, it's not so easy, because Class::DBI::Loader::Generic 
autodiscovers the loader class that's appropriate for the database type. 
I'd like to override the loader name at this point, but I'm not sure how.

2. When I tried to use a Mason view, I got the following error:
***
Couldn't instantiate component "CSHL::GA::V::View", "The 'comp_root' 
parameter ("/var/www/libperl/CSHL/GA/root") to 
HTML::Mason::Resolver::File->new() was a 'hashref object', which is not 
one of the allowed types: scalar arrayref" at 
/opt/software/perl/lib/Module/Pluggable/Fast.pm line 86
***

The method Catalyst::View::Mason::new() passes the value of comp_root to 
the HTML::Mason::Interp constructor. However, comp_root is an instance 
of Path::Class::Dir, not a simple string, and the HTML::Mason::Interp 
constructor does not like it.

I'm using the latest Catalyst 5.30 and HTML::Mason 1.28, but nobody else 
has reported this error, so perhaps I'm doing something stupid.

Thanks,
Simon
-- 

Simon (Vsevolod ILyushchenko)   simonf at cshl.edu
				http://www.simonf.com

Terrorism is a tactic and so to declare war on terrorism
is equivalent to Roosevelt's declaring war on blitzkrieg.

Zbigniew Brzezinski, U.S. national security advisor, 1977-81



More information about the Catalyst mailing list