[Templates] Template::Plugin::Procedural
Shannon, Bryan
BShannon@Tribune.com
Tue, 10 Sep 2002 09:14:07 -0500
This looks like something I whipped up a while ago, when I tried to explain
to a colleague writing a template why they had to "shift" away the first
argument inside their custom perl code...
I trust yours more, though. Sounds like a good addition.
-Bryan
> -----Original Message-----
> From: Mark Fowler [mailto:mark@twoshortplanks.com]
> Sent: Monday, September 02, 2002 2:49 PM
> To: templates@template-toolkit.org
> Subject: [Templates] Template::Plugin::Procedural
>
>
> Another random Idea for the Template Toolkit:
>
> =head1 NAME
>
> Template::Plugin::Procedural - Base class for procedural plugins
>
> =head1 SYNOPSIS
>
> package Template::Plugin::LWPSimple;
> use base qw(Template::Plugin::Procedural);
> use LWP::Simple; # exports 'get'
> 1;
>
> [% USE LWPSimple %]
> [% LWPSimple.get("http://www.tt2.org/") %]
>
> =head1 DESCRIPTION
>
> B<Template::Plugin::Procedural> is a base class for Template Toolkit
> plugins that causes defined subprocedures to be called directly
> rather than as a method. Essentially this means that subroutines will
> not receive the class name or object as its first argument.
>
> This is most useful when creating plugins for modules that normally
> work by exporting subroutines that do not expect such additional
> arguments.
>
> Despite the fact that procedures will not be called in an OO manner,
> inheritance still functions as normal. A class that uses
> B<Template::Plugin::Procedural> can be subclassed and both
> subprocedures
> defined in the subclass and subprocedures defined in the original
> class will be available to the Template Toolkit and will be called
> without the class/object argument.
>
>
> Is all done and has passing tests. Should I go ahead and
> commit it in?
>
> Oh, and if I do, what should I do about Changes? Start a
> section for a
> new developer release?
>
> Mark.
>
> --
> s'' Mark Fowler
> London.pm Bath.pm
> http://www.twoshortplanks.com/
> mark@twoshortplanks.com
> ';use Term'Cap;$t=Tgetent
> Term'Cap{};print$t->Tputs(cl);for$w(split/ +/
> ){for(0..30){$|=print$t->Tgoto(cm,$_,$y)."
> $w";select$k,$k,$k,.03}$y+=2}
>
>
> _______________________________________________
> templates mailing list
> templates@template-toolkit.org
> http://www.template-toolkit.org/mailman/listinfo/templates
>