[Catalyst] Context sensitive template locations

Zbigniew Lukasiak zzbbyy at gmail.com
Wed Nov 30 23:38:07 CET 2005


Can you send me the patch in a file?  I have some problems with
applying it and I think this might have to do with my cut and paste
from the email app.

Anyway I sent my latest patch in the thread "Re: [Catalyst] View::TT patches".

-- Zbyszek

On 11/30/05, ben.norman at qmunity.net <ben.norman at qmunity.net> wrote:
> Quoting ben.norman at qmunity.net:
>
> > Quoting Matt S Trout <dbix-class at trout.me.uk>:
> >
> > > On Fri, Nov 25, 2005 at 03:19:48PM +0100, Zbigniew Lukasiak wrote:
> > > > > > sub unshift_paths {
> > > > > >     my($self, @paths) = @_;
> > > > > >     unshift(@{$self->include_path}, @paths);
> > > > > > }
> > > > >
> > > > > Don't you want to rebuilt the path each time?  That looks like a
> > > > > small memory leak
> > > >
> > > > Hmm.  The question is where to add the cleaning code.  Perhaps to the
> > > > process method?  How would this work with subrequests?  I cannot see
> > > > other situations when process would be called multiple times in one
> > > > request.
> > >
> > > Quite possible not, but the Template object is persistent across requests
> > > for performance. So after 1000 requests you're going to have a 1000
> > > entry include path.
> > >
> > > Please read the Catalyst::View::TT source for details.
> > >
> >
> > It did add to the include_path every request. I came up with the following
> > diff.
> >  Im not saying its needed yet, Im just trying to contribute to the cause. It
> > also includes the magic bit someone mentioned ie it will prefix the current
> > request match value to the list of include_paths after the root directory.
> >
> > thanks
> > Ben
> >
> This one is tested with a really vanilla site.
> xxx at xxxxxx:/opt/xxxxx/positions> diff ../perl/Catalyst/View/TT.pm
> /usr/lib/perl5/site_perl/5.8.7/Catalyst/View/TT.pm
> 12,13d11
> < __PACKAGE__->mk_accessors('include_path');
> < __PACKAGE__->mk_accessors('init_include_path');
> 232,233d229
> <     my $init_include_path = $arguments->{INCLUDE_PATH} || [ $root,
> "$root/base" ];
> <     my @include_path = @{$init_include_path};
> 237a234
> >         INCLUDE_PATH       => [ $root, "$root/base" ],
> 239,240c236
> <         %{$arguments},
> <         INCLUDE_PATH       => \@include_path,
> ---
> >         %{$arguments}
> 274,275d269
> <     $self->include_path(\@include_path);
> <     $self->init_include_path($init_include_path);
> 298,301d291
> <       while (@{$self->include_path}) {shift @{$self->include_path};};
> <       push @{$self->include_path}, $c->config->{root} . '/' .
> $c->request->{match} if $c->stash->{add_match};
> <       push @{$self->include_path}, @{$self->init_include_path};
> <
>
>
> ----------------------------------------------------------------
> This message was sent using IMP, the Internet Messaging Program.
>
> _______________________________________________
> Catalyst mailing list
> Catalyst at lists.rawmode.org
> http://lists.rawmode.org/mailman/listinfo/catalyst
>


More information about the Catalyst mailing list