Markdent::Role::DebugPrinter - A role for classes which output debugging information


Markdent documentation Contained in the Markdent distribution.

Index


Code Index:

NAME

Top

Markdent::Role::DebugPrinter - A role for classes which output debugging information

VERSION

Top

version 0.17

DESCRIPTION

Top

This role implements behavior shared by all classes which output debugging information.

ATTRIBUTES

Top

This roles provides the following attributes:

debug

This is a read-write boolean attribute.

It defaults to the value of $ENV{MARKDENT_DEBUG}, if set, or 0.

METHODS

Top

This roles provides the following methods:

$object->_debug_parse_result( $text, $type, $extra )

This method takes a text string, a parse result string (like "preformatted" or "code_start"), and an optional array reference of extra key/value pairs.

All of this will be concatenated together in a pretty(-ish) way and passed to $object->_print_debug().

$object->_print_debug($text)

This warns out the provided text along with a delimiter above the message.

BUGS

Top

See Markdent for bug reporting details.

AUTHOR

Top

Dave Rolsky <autarch@urth.org>

COPYRIGHT AND LICENSE

Top


Markdent documentation Contained in the Markdent distribution.

package Markdent::Role::DebugPrinter;
BEGIN {
  $Markdent::Role::DebugPrinter::VERSION = '0.17';
}

use strict;
use warnings;

use Markdent::Types qw( Bool );

use namespace::autoclean;
use Moose::Role;

has debug => (
    is      => 'rw',
    isa     => Bool,
    default => $ENV{MARKDENT_DEBUG} || 0,
);

my $HR1 = q{=} x 70;
my $HR2 = q{-} x 70;

sub _debug_parse_result {
    my $self  = shift;
    my $text  = shift;
    my $type  = shift;
    my $extra = shift || [];

    my $msg = '[' . $text . "]\n" . $HR2 . "\n" . '  - ' . $type . "\n";
    while ( @{$extra} ) {
        my ( $key, $value ) = splice @{$extra}, 0, 2;
        $msg .= sprintf( '    - %-10s : %s', $key, $value );
        $msg .= "\n";
    }

    $self->_print_debug($msg);
}

sub _print_debug {
    warn $HR1 . "\n" . ( ref $_[0] ) . "\n" . $_[1] . "\n";
}

1;

# ABSTRACT: A role for classes which output debugging information




__END__