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

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

trunk/lib/HTML.pm revision 21 by dpavlin, Sun Jun 29 13:12:59 2008 UTC trunk/lib/Frey/HTML.pm revision 32 by dpavlin, Sun Jun 29 20:52:33 2008 UTC
# Line 1  Line 1 
1  package HTML;  package Frey::HTML;
2    
3  use strict;  use strict;
4  use warnings;  use warnings;
5    
6  use Time::HiRes qw/time/;  use Time::HiRes qw/time/;
7  use Data::Dump qw/dump/;  use Data::Dump qw/dump/;
8  use Carp qw/confess/;  use Carp qw/confess carp/;
9    
10    =head1 NAME
11    
12    Frey::HTML - generate html pages
13    
14    =head2 METHODS
15    
16    =cut
17    
18  # FIXME  # FIXME
19    
20  our @view_classes = qw(  our @view_classes = qw(
21          Frey::View          Frey::View
         Frey::REST  
22          Strix::View          Strix::View
23  );  );
24    
# Line 27  foreach ( @view_classes ) { Line 34  foreach ( @view_classes ) {
34  warn "available templates = ",dump( Template::Declare->templates );  warn "available templates = ",dump( Template::Declare->templates );
35    
36  our @javascript;  our @javascript;
37    our $debug = 0;
38    
39  use Template::Declare;  use Template::Declare;
40  use Template::Declare::Tags; # defaults to 'HTML'  use Template::Declare::Tags; # defaults to 'HTML'
# Line 38  Template::Declare->init( roots => \@view Line 46  Template::Declare->init( roots => \@view
46                          title { $path }                          title { $path }
47                          link {                          link {
48                                  { rel is 'stylesheet' }                                  { rel is 'stylesheet' }
49                                  { href is 'static/app.css' }                                  { href is '/static/app.css' }
50                                  { type is 'text/css' }                                  { type is 'text/css' }
51                                  { media is 'screen' }                                  { media is 'screen' }
52                          };                          };
53                          foreach my $js ( @javascript ) {                          foreach my $js ( @javascript ) {
54                                  script {                                  script {
55                                          { type is 'text/javascript' }                                          { type is 'text/javascript' }
56                                          { src is $js }                                          { src is "/$js" }
57                                  }                                  }
58                          }                          };
59                  }                  }
60                  body {                  body {
61                          $orig->();                          $orig->();
62                  }                  }
63          }          };
64          warn "TEMPLATE $path ",dump($args),sprintf(" in %.4fs\n",time - $t);          warn "TEMPLATE $path ",dump($args),sprintf(" in %.4fs\n",time - $t) if $debug;
65  });  });
66    
67  sub view {  =head2 page
68          my $self = shift;  
69          return Template::Declare->show( @_ );  Wrap template into html page
70    
71      Frey::HTML->page( 'template_name', $req, $args );
72    
73    =cut
74    
75    sub page {
76            my ( $self, $page, $req, $args ) = @_;
77            warn "## page $page ",dump($args),"\n";
78            my $out = eval { Template::Declare->show( $page, $req, $args ) };
79            if ( $@ ) {
80                    carp "ERROR: $@";
81                    $out = Template::Declare->show( 'error', $req, "page $page " . dump($args) . ": $@" );
82            }
83            return $out;
84  }  }
85    
86    =head2 add_javascript
87    
88    Add javascript to current page
89    
90      Frey::HTML->add_javascript( 'static/javascript.js' );
91    
92    =cut
93    
94  sub add_javascript {  sub add_javascript {
95          my $self = shift;          my $self = shift;
96          my $js = shift or confess "no JavaScript path";          my $js = shift or confess "no JavaScript path";

Legend:
Removed from v.21  
changed lines
  Added in v.32

  ViewVC Help
Powered by ViewVC 1.1.26