webgui/lib/WebGUI/Template/Plugin/Macro.pm
2011-05-17 15:20:17 -05:00

25 lines
546 B
Perl

package WebGUI::Template::Plugin::Macro;
use base 'Template::Plugin';
sub new {
my $config = ref($_[-1]) eq 'HASH' ? pop(@_) : { };
my ($class, $context) = @_;
my $session = $context->stash->{_session};
my $subs = {};
my $macros = $session->config->get("macros");
for my $macro ( keys %$macros ) {
my $package = "WebGUI::Macro::\u$macros->{macro}";
my $process = $package->can('process');
$subs->{$macro} = sub {
$process->($session, @_);
};
}
return $subs;
}
1;