/[Frey]/trunk/lib/Frey/Dumper.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/lib/Frey/Dumper.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 356 by dpavlin, Sun Nov 16 15:19:54 2008 UTC revision 357 by dpavlin, Sun Nov 16 16:35:48 2008 UTC
# Line 25  sub unroll { Line 25  sub unroll {
25          my ($self,$data,$ref,$key) = @_;          my ($self,$data,$ref,$key) = @_;
26          my $out;          my $out;
27          my $title = $ref ? qq| title="$ref"| : '';          my $title = $ref ? qq| title="$ref"| : '';
28    
29            $out .= qq|<li${title}>|;
30            my $mark = $key || '&diams;';
31            $out .= $ref && $ref !~ m{^(ARRAY|HASH)$} ? qq|<a href="/$ref" target="blessed" title="$ref">$mark</a>| : $key;
32    
33          if ( ref($data) eq 'ARRAY' ) {          if ( ref($data) eq 'ARRAY' ) {
34                  $out .= "<li>$key &darr;</li>" if $key;                  $out .= " &darr;</li>" if $key;
35                  $out .= qq|<ol${title} start=0>\n|;                  $out .= qq|<ol${title} start=0>\n|;
36                  $out .= $self->unroll($_,ref($_)) foreach @$data;                  $out .= $self->unroll($_,ref($_)) foreach @$data;
37                  $out .= "</ol>\n";                  $out .= "</ol>\n";
38          } elsif ( ref($data) eq 'HASH' ) {          } elsif ( ref($data) && eval { %$data } ) {
39                  $out .= "<li>$key &darr;</li>" if $key;                  $out .= " &darr;</li>" if $key;
40                  $out .= qq|<ul${title}>\n|;                  $out .= qq|<ul${title}>\n|;
41                  $out .= $self->unroll($data->{$_},ref($data->{$_}),$_) foreach keys %$data;                  $out .= $self->unroll($data->{$_},ref($data->{$_}),$_) foreach keys %$data;
42                  $out .= "</ul>\n";                  $out .= "</ul>\n";
43          } else {          } else {
44                  $out .= qq|<li${title}>|;                  $out .= " &rarr; " if $key;
                 $out .= "$key &rarr; " if $key;  
45                  if ( $data =~ m{<(\w+)>.+</\1>} ) {                  if ( $data =~ m{<(\w+)>.+</\1>} ) {
46                          $out .= qq|<div style="background: #eee; color: #000">$data</div></li>|;                          $out .= qq|<div style="background: #eee; color: #000">$data</div></li>|;
47                  } else {                  } else {
48                          $out .= "<span>" . $self->html_dump( $data ) . "</span></li>";                          $out .= "<span>" . $self->html_dump( $data ) . "</span></li>";
49                  }                  }
50          }          }
51            $out .= "</li>";
52    
53          return $out;          return $out;
54  }  }
55    

Legend:
Removed from v.356  
changed lines
  Added in v.357

  ViewVC Help
Powered by ViewVC 1.1.26