Template::Plugin::Dumper - Plugin interface to Data::Dumper


Template-Toolkit documentation Contained in the Template-Toolkit distribution.

Index


Code Index:

NAME

Top

Template::Plugin::Dumper - Plugin interface to Data::Dumper

SYNOPSIS

Top

    [% USE Dumper %]

    [% Dumper.dump(variable) %]
    [% Dumper.dump_html(variable) %]

DESCRIPTION

Top

This is a very simple Template Toolkit Plugin Interface to the Data::Dumper module. A Dumper object will be instantiated via the following directive:

    [% USE Dumper %]

As a standard plugin, you can also specify its name in lower case:

    [% USE dumper %]

The Data::Dumper Pad, Indent and Varname options are supported as constructor arguments to affect the output generated. See Data::Dumper for further details.

    [% USE dumper(Indent=0, Pad="<br>") %]

These options can also be specified in lower case.

    [% USE dumper(indent=0, pad="<br>") %]

METHODS

Top

There are two methods supported by the Dumper object. Each will output into the template the contents of the variables passed to the object method.

dump()

Generates a raw text dump of the data structure(s) passed

    [% USE Dumper %]
    [% Dumper.dump(myvar) %]
    [% Dumper.dump(myvar, yourvar) %]

dump_html()

Generates a dump of the data structures, as per dump(), but with the characters <, > and & converted to their equivalent HTML entities and newlines converted to <br>.

    [% USE Dumper %]
    [% Dumper.dump_html(myvar) %]

AUTHOR

Top

Simon Matthews <sam@tt2.org>

COPYRIGHT

Top

SEE ALSO

Top

Template::Plugin, Data::Dumper


Template-Toolkit documentation Contained in the Template-Toolkit distribution.

#==============================================================================
# 
# Template::Plugin::Dumper
#
# DESCRIPTION
#
# A Template Plugin to provide a Template Interface to Data::Dumper
#
# AUTHOR
#   Simon Matthews <sam@tt2.org>
#
# COPYRIGHT
#   Copyright (C) 2000 Simon Matthews.  All Rights Reserved
#
#   This module is free software; you can redistribute it and/or
#   modify it under the same terms as Perl itself.
#
#==============================================================================

package Template::Plugin::Dumper;

use strict;
use warnings;
use base 'Template::Plugin';
use Data::Dumper;

our $VERSION = 2.70;
our $DEBUG   = 0 unless defined $DEBUG;
our @DUMPER_ARGS = qw( Indent Pad Varname Purity Useqq Terse Freezer
                       Toaster Deepcopy Quotekeys Bless Maxdepth );
our $AUTOLOAD;

#==============================================================================
#                      -----  CLASS METHODS -----
#==============================================================================

#------------------------------------------------------------------------
# new($context, \@params)
#------------------------------------------------------------------------

sub new {
    my ($class, $context, $params) = @_;
    my ($key, $val);
    $params ||= { };


    foreach my $arg (@DUMPER_ARGS) {
        no strict 'refs';
        if (defined ($val = $params->{ lc $arg })
            or defined ($val = $params->{ $arg })) {
            ${"Data\::Dumper\::$arg"} = $val;
        }
    }

    bless { 
        _CONTEXT => $context, 
    }, $class;
}

sub dump {
    my $self = shift;
    my $content = Dumper @_;
    return $content;
}


sub dump_html {
    my $self = shift;
    my $content = Dumper @_;
    for ($content) {
        s/&/&amp;/g;
        s/</&lt;/g;
        s/>/&gt;/g;
        s/\n/<br>\n/g;
    }
    return $content;
}

1;

__END__