[Catalyst] Newbie Catalyst::Model::Factory
    Michael Peck 
    mpeck at pobox.com
       
    Tue Oct 23 17:52:07 GMT 2007
    
    
  
I am new to Catalyst, but have been successful at creating simple DBIC CRUD
apps.  Now, I am trying something different...  I want to use an
Archive::Tar::File object as a model.  I have created my model as:
package LogManager::Model::Tar;
use strict;
use warnings;
use base 'Catalyst::Model::Factory';
__PACKAGE__->config(
    class       =3D> 'Archive::Tar::File',
    constructor =3D> 'new',
);
1;
The Archive::Tar::File constructor (new) requires a filename be passed e.g.,
new( file =3D> $path ).  In a controller, I have tried:
sub view : Local {
    my ( $self, $c, $file ) =3D @_;
    LogManager->config->{'Model::Tar'} =3D {
        class =3D> 'Archive::Tar::File',
        args  =3D> {
            file =3D> "c:\\temp\\logs\\$file",
        },
    };
    my $tarball =3D $c->model('LogManager::Tar');
    if( $tarball ) {
        my @items =3D $tarball->get_files;
        $c->stash->{items} =3D @items;
    }
    else {
        $c->stash->{error_msg} =3D "Couldn't instantiate LogManager::Tar
model";
    }
    $c->stash->{template} =3D 'log/view.tt2';
}
The server started without error, and I called it with *"*
http://localhost:3000/log/view/WEBCGI.usgap002.20071020093500.tar"
I have, unsuccessfully, tried several other scenarios, but all I get is an
undefined object, resulting in $c->stash->{error_msg} being set to "Couldn't
instantiate LogManager::Tar model".  Any pointers in the right direction are
greatly appreciated.
BTW, Catalyst is and awesome framework!
Thanks,
Mike Peck
mpeck at pobox.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.scsys.co.uk/pipermail/catalyst/attachments/20071023/31170=
a87/attachment.htm
    
    
More information about the Catalyst
mailing list