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

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

revision 23 by dpavlin, Sun Jun 29 16:24:41 2008 UTC revision 53 by dpavlin, Sat Jul 5 15:19:55 2008 UTC
# Line 4  use strict; Line 4  use strict;
4  use warnings;  use warnings;
5    
6  use Template::Declare::Tags; # defaults to 'HTML'  use Template::Declare::Tags; # defaults to 'HTML'
7  use base 'Template::Declare';  use Frey;
8    use base qw/Template::Declare/;
9  use Data::Dump qw/dump/;  use Data::Dump qw/dump/;
10    use Carp qw/carp confess/;
11    
12  template status => sub {  sub debug_dump {
13            my $dump = dump( @_ );
14            carp "debug_dump $dump\n";
15            pre {
16                    { class is 'debug' }
17                    outs $dump;
18            }
19    }
20    
21    template 'status' => sub {
22          my ( $self ) = @_;          my ( $self ) = @_;
23          p { 'Welcome to Frey' }          p { 'Welcome to Frey' };
24            show( 'templates' );
25            show( 'packages' );
26            show( 'introspect' );
27    };
28    
29    sub method_link {
30            my ( $pkg,$method ) = @_;
31            my $url = "/$pkg/$method";
32            $url = $method if $method =~ m!^/!;
33            a {
34                    { href is $url }
35                    outs $method
36            }
37    }
38    
39    sub package_methods {
40            my ( $pkg, $methods ) = @_;
41            confess "methods not ARRAY ",dump($methods) unless ref($methods) =~ m/^ARRAY/;
42            outs $pkg;
43            ul {
44                    foreach my $method ( @{ $methods } ) {
45                            li { method_link( "crud/$pkg", $method ) }
46                    }
47            }
48    }
49    
50    template 'package-templates' => sub {
51            my ( $self, $req, $package ) = @_;
52            $package ||= $req->param('package');
53            my $methods = Template::Declare->templates->{ $package } or die "no package $package\n";
54            package_methods( $package, $methods );
55    };
56    
57    template 'templates' => sub {
58          h1 { 'Available templates' };          h1 { 'Available templates' };
59          my $templates = Template::Declare->templates;          my $templates = Template::Declare->templates;
60          warn "templates = ",dump( $templates );          debug_dump( $templates );
61    
62          ul {          ul {
63                  foreach my $pkg ( keys %$templates ) {                  foreach my $package ( keys %$templates ) {
64                          li {                          li {
65                                  outs $pkg;                                  package_methods( $package, $templates->{$package} );
66                                  ul {                          }
67                                          foreach my $template ( @{ $templates->{$pkg} } ) {                  }
68                                                  li {          }
69                                                          a {  };
70                                                                  { href is "/$pkg/$template" }  
71                                                                  $template  template 'packages' => sub {
72                                                          }          my $self = shift;
73            h1 { 'All packages in image' };
74            my $f = Frey->new;
75            debug_dump( $f->classes );
76    };
77    
78    use Frey::Introspect;
79    
80    template 'introspect' => sub {
81            my $self = shift;
82            h1 { 'Introspect Moose packages' };
83            ul {
84                    map {
85                            my ( $package, $path ) = each( %$_ );
86                            li {
87                                    outs $package;
88                                    my $f = Frey::Introspect->new( package => $package );
89                                    my ( $class, $meta, $is_role ) = $f->load_package();
90                                    if ( $class->can('meta') ) {
91                                            ul {
92                                                    foreach my $m ( $f->methods ) {
93                                                            li { method_link( $package, $m ) }
94                                                  }                                                  }
95                                          }                                          }
96                                            pre {
97                                                    { class is 'debug' };
98                                                    outs $class->dump( 1 );
99                                            }
100                                    } else {
101                                            b { "not introspectable" }
102                                  }                                  }
103                          }                          }
104                  }                  } @{ Frey->new->classes };
         }  
         pre {  
                 { class is 'debug' }  
                 outs dump( Template::Declare->templates )  
105          }          }
106  };  };
107    
108  template 'refresh_modules' => sub {  template 'error' => sub {
109          Module::Refresh->refresh;          my ( $self, $req, $error ) = @_;
110          p { 'Modules refreshed' }          $error ||= dump( caller(1) );
111            warn "## error: $error\n";
112            pre {
113                    { class is 'error' }
114                    outs( $error );
115            };
116  };  };
117    
118  1;  1;

Legend:
Removed from v.23  
changed lines
  Added in v.53

  ViewVC Help
Powered by ViewVC 1.1.26