App-ZofCMS
view release on metacpan or search on metacpan
lib/App/ZofCMS/Plugin/Debug/Dumper.pm view on Meta::CPAN
package App::ZofCMS::Plugin::Debug::Dumper;
use warnings;
use strict;
our $VERSION = '1.001008'; # VERSION
use Data::Dumper;
use HTML::Entities (qw/encode_entities/);
sub new { bless {}, shift }
sub process {
my ( $self, $template, $query, $config ) = @_;
my %conf = (
t_prefix => 'dumper_',
use_qq => 1,
pre => 1,
escape_html => 1,
line_length => 150,
%{ delete $config->conf->{plug_dumper} || {} },
%{ delete $template->{plug_dumper} || {} },
);
if ( $conf{use_qq} ) {
$Data::Dumper::Useqq = 1;
}
my $t_dump = Dumper $template;
$template->{t}{ $conf{t_prefix} . 't' . $_ } = Dumper $template->{$_}
for qw/t d/;
$template->{t}{ $conf{t_prefix} . 't' } = $t_dump;
$template->{t}{ $conf{t_prefix} . 'q' } = Dumper $query;
$template->{t}{ $conf{t_prefix} . 'c' } = Dumper $config->conf;
if ( $conf{line_length } ) {
for ( qw/tt td t q c/ ) {
$template->{t}{ $conf{t_prefix} . $_ } =~ s/(.{$conf{line_length}})(?!\n)/$1\n/g;
}
}
if ( $conf{escape_html} ) {
encode_entities $template->{t}{ $conf{t_prefix} . $_ }
for qw/tt td t q c/;
}
if ( $conf{pre} ) {
$template->{t}{ $conf{t_prefix} . $_ }
= qq|<pre style="font-family: 'DejaVu Sans Mono', monotype;">|
. $template->{t}{ $conf{t_prefix} . $_ } . q|</pre>|
for qw/tt td t q c/;
}
return 1;
}
1;
__END__
=encoding utf8
=head1 NAME
App::ZofCMS::Plugin::Debug::Dumper - small debugging plugin that Data::Dumper::Dumper()s interesting portions into {t}
=head1 SYNOPSIS
In your Main Config file or ZofCMS Template:
plugins => [ qw/Debug::Dumper/ ],
In your L<HTML::Template> template:
Dump of {t} key: <tmpl_var name="dumper_tt">
Dump of {d} key: <tmpl_var name="dumper_td">
Dump of ZofCMS template: <tmpl_var name="dumper_t">
Dump of query: <tmpl_var name="dumper_q">
Dump of main config: <tmpl_var name="dumper_c">
=head1 DESCRIPTION
The module is a small debugging plugin for L<App::ZofCMS>. It uses L<Data::Dumper> to
make dumps of 5 things and sticks them into C<{t}> ZofCMS template key so you could display
the dumps in your L<HTML::Template> template for debugging purposes.
This documentation assumes you've read L<App::ZofCMS>, L<App::ZofCMS::Config>
and L<App::ZofCMS::Template>
=head1 MAIN CONFIG FILE OR ZofCMS TEMPLATE
=head2 C<plugins>
plugins => [ qw/Debug::Dumper/ ],
plugins => [ { UserLogin => 100 }, { 'Debug::Dumper' => 200 } ],
You need to add the plugin to the list of plugins to execute (duh!). By setting the priority
of the plugin you can make dumps before or after some plugins executed.
=head2 C<plug_dumper>
plug_dumper => {
t_prefix => 'dumper_',
use_qq => 1,
pre => 1,
escape_html => 1,
line_length => 80,
},
( run in 0.805 second using v1.01-cache-2.11-cpan-5735350b133 )