App-Templer
view release on metacpan or search on metacpan
lib/Templer/Plugin/Redis.pm view on Meta::CPAN
if ( !$@ )
{
#
# OK the module was loaded, but Redis might not be
# running locally, or accessible remotely so in those
# cases we'll be disabled.
#
# NOTE: Redis will use $ENV{'REDIS_SERVER'} if that is
# set, otherwise defaulting to 127.0.0.1:6379.
#
eval {$self->{ 'redis' } = new Redis()};
}
return $self;
}
=head2 expand_variables
This is the method which is called by the L<Templer::Plugin::Factory>
to expand the variables contained in a L<Templer::Site::Page> object.
Variables are written in the file in the form "key: value", and are
internally stored within the Page object as a hash.
This method iterates over each key & value and updates any that
seem to refer to redis-fetches.
=cut
sub expand_variables
{
my ( $self, $site, $page, $data ) = (@_);
#
# Get the page-variables in the template.
#
my %hash = %$data;
#
# Look for a value of "redis_get" in each key.
#
foreach my $key ( keys %hash )
{
if ( $hash{ $key } =~ /^redis_get\((.*)\)/ )
{
#
# The lookup value.
#
my $rkey = $1;
#
# Strip leading/trailing whitespace and quotes
#
$rkey =~ s/^\s+|\s+$//g;
$rkey =~ s/^["']|['"]$//g;
#
# If we have redis, and it is alive/connected, then use it.
#
if ( $self->{ 'redis' } &&
$self->{ 'redis' }->ping() )
{
$hash{ $key } = $self->{ 'redis' }->get($rkey);
}
}
}
#
# Return.
#
return ( \%hash );
}
#
# Register the plugin.
#
Templer::Plugin::Factory->new()->register_plugin("Templer::Plugin::Redis");
( run in 1.251 second using v1.01-cache-2.11-cpan-df04353d9ac )