--- 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+)>.+} ) { $out .= qq|
    $data
    |; } else { $out .= "" . $self->html_dump( $data ) . ""; } } + $out .= ""; + return $out; }