/[Frey]/trunk/lib/Frey/View/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

Annotation of /trunk/lib/Frey/View/Dumper.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 455 - (hide annotations)
Wed Nov 19 15:28:23 2008 UTC (15 years, 6 months ago) by dpavlin
Original Path: trunk/lib/Frey/Dumper.pm
File size: 1312 byte(s)
rename invocable events with prefix as_ with fallback in Frey::Web

This started with brute-force rename using:

  perl -p -i -n -e 's/sub markup/sub as_markup/'  `grep -lr 'sub markup' lib t`
  perl -p -i -n -e 's/sub data/sub as_data/'      `grep -lr 'sub data' lib t`
  perl -p -i -n -e 's/sub sponge/sub as_sponge/'  `grep -lr 'sub sponge' lib t`

  perl -p -i -n -e 's/->markup/->as_markup/'      `grep -lr -- '->markup' lib t`
  perl -p -i -n -e 's/->data/->as_data/'          `grep -lr -- '->data' lib t`
  perl -p -i -n -e 's/->sponge/->as_sponge/'      `grep -lr -- '->sponge' lib t`

  perl -p -i -n -e 's!/markup!/as_markup!'        `grep -lr -- '/markup' lib t etc`
  perl -p -i -n -e 's!/data!/as_data!'            `grep -lr -- '/data' lib t etc`
  perl -p -i -n -e 's!/sponge!/as_sponge!'        `grep -lr -- '/sponge' lib t etc`

1 dpavlin 287 package Frey::Dumper;
2     use Moose;
3    
4 dpavlin 455 with 'Frey::Web';
5 dpavlin 327 with 'Frey::Escape';
6    
7 dpavlin 325 use Data::Dump qw/dump/;
8    
9 dpavlin 287 =head1 NAME
10    
11 dpavlin 325 Frey::Dumper - dump perl data as tree
12 dpavlin 287
13     =cut
14    
15     has data => (
16     is => 'rw',
17     required => 1,
18     );
19    
20 dpavlin 455 sub as_markup {
21 dpavlin 287 my ($self) = @_;
22 dpavlin 327 qq|<div class="frey-dumper">| . $self->unroll( $self->data ) . qq|</div>|;
23     }
24 dpavlin 325
25 dpavlin 327 sub unroll {
26     my ($self,$data,$ref,$key) = @_;
27     my $out;
28     my $title = $ref ? qq| title="$ref"| : '';
29 dpavlin 357
30     $out .= qq|<li${title}>|;
31     my $mark = $key || '&diams;';
32 dpavlin 367 $out .= $ref && $ref !~ m{^(ARRAY|HASH)$} ? qq|<a href="/$ref" class="blessed" target="blessed" title="$ref">$mark</a>| : ( $key || '' );
33 dpavlin 357
34 dpavlin 327 if ( ref($data) eq 'ARRAY' ) {
35 dpavlin 357 $out .= " &darr;</li>" if $key;
36 dpavlin 329 $out .= qq|<ol${title} start=0>\n|;
37 dpavlin 327 $out .= $self->unroll($_,ref($_)) foreach @$data;
38 dpavlin 329 $out .= "</ol>\n";
39 dpavlin 357 } elsif ( ref($data) && eval { %$data } ) {
40     $out .= " &darr;</li>" if $key;
41 dpavlin 329 $out .= qq|<ul${title}>\n|;
42 dpavlin 327 $out .= $self->unroll($data->{$_},ref($data->{$_}),$_) foreach keys %$data;
43 dpavlin 329 $out .= "</ul>\n";
44 dpavlin 327 } else {
45 dpavlin 357 $out .= " &rarr; " if $key;
46 dpavlin 433 if ( defined $data && $data =~ m{<(\w+).*>.+</\1>} ) {
47 dpavlin 360 $out .= qq|<div style="background: #eee; color: #000" title="HTML">$data</div></li>|;
48 dpavlin 347 } else {
49     $out .= "<span>" . $self->html_dump( $data ) . "</span></li>";
50     }
51 dpavlin 325 }
52 dpavlin 357 $out .= "</li>";
53    
54 dpavlin 327 return $out;
55 dpavlin 287 }
56    
57     1;

  ViewVC Help
Powered by ViewVC 1.1.26