--- trunk/lib/Frey/Dumper.pm 2008/11/16 15:19:54 355
+++ trunk/lib/Frey/Dumper.pm 2008/11/16 16:35:48 357
@@ -25,25 +25,31 @@
my ($self,$data,$ref,$key) = @_;
my $out;
my $title = $ref ? qq| title="$ref"| : '';
+
+ $out .= qq|
|;
+ my $mark = $key || '♦';
+ $out .= $ref && $ref !~ m{^(ARRAY|HASH)$} ? qq|$mark| : $key;
+
if ( ref($data) eq 'ARRAY' ) {
- $out .= "$key ↓" if $key;
+ $out .= " ↓" if $key;
$out .= qq|\n|;
$out .= $self->unroll($_,ref($_)) foreach @$data;
$out .= "
\n";
- } elsif ( ref($data) eq 'HASH' ) {
- $out .= "$key ↓" if $key;
+ } elsif ( ref($data) && eval { %$data } ) {
+ $out .= " ↓" if $key;
$out .= qq|\n|;
$out .= $self->unroll($data->{$_},ref($data->{$_}),$_) foreach keys %$data;
$out .= "
\n";
} else {
- $out .= qq||;
- $out .= "$key → " if $key;
+ $out .= " → " if $key;
if ( $data =~ m{<(\w+)>.+\1>} ) {
$out .= qq|$data
|;
} else {
$out .= "" . $self->html_dump( $data ) . "";
}
}
+ $out .= "";
+
return $out;
}