--- trunk/lib/Frey/Dumper.pm 2008/11/06 18:03:06 324 +++ trunk/lib/Frey/Dumper.pm 2008/11/06 20:25:04 325 @@ -1,14 +1,14 @@ package Frey::Dumper; use Moose; +use Data::Dump qw/dump/; + =head1 NAME -Frey::Dumper - dump data using L +Frey::Dumper - dump perl data as tree =cut -use Data::Dumper::HTML qw(dumper_html); - has data => ( is => 'rw', required => 1, @@ -16,7 +16,30 @@ sub markup { my ($self) = @_; - dumper_html( $self->data ); + + sub unroll { + my ($data,$ref,$key) = @_; + my $out; + my $title = $ref ? qq| title="$ref"| : ''; + if ( ref($data) eq 'ARRAY' ) { + $out .= "
  • $key
  • " if $key; + $out .= qq|\n|; + $out .= unroll($_,ref($_)) foreach @$data; + $out .= "\n"; + } elsif ( ref($data) ) { + $out .= "
  • $key
  • " if $key; + $out .= qq|\n|; + $out .= unroll($data->{$_},ref($data->{$_}),$_) foreach keys %$data; + $out .= "\n"; + } else { + $out .= qq||; + $out .= "$key → " if $key; + $out .= dump( $data ) . ""; + } + return $out; + } + + unroll( $self->data ); } 1;