]> iEval git - gruntmaster-page.git/blobdiff - lib/Gruntmaster/Page/Base.pm
Heeere's Plack/PSGI!
[gruntmaster-page.git] / lib / Gruntmaster / Page / Base.pm
index 5b93f20992e00411b7d981f0af15edfc32a1e7c6..a7188d7cd4e660b3c6371be00f316bf55f54cb6e 100644 (file)
@@ -24,6 +24,10 @@ sub import {
        *{"${caller}::strftime"} = \&POSIX::strftime;
        *{"${caller}::NAME"} = sub () { $name };
        *{"${caller}::TITLE"} = sub () { $title };
+       *{"${caller}::debug"} = sub {
+               local $Log::Log4perl::caller_depth = $Log::Log4perl::caller_depth + 1;
+               $_[0]->({qw/level debug message/ => $_[1]})
+       };
 }
 
 ##################################################
@@ -32,17 +36,20 @@ my %orig_header_templates = (
   en => <<'HTML',
 <!DOCTYPE html>
 <title>TITLE_GOES_HERE</title>
-<link rel="stylesheet" href="/gm.css">
-<script src="/zepto.var" defer></script>
-<script src="/view.js" defer></script>
-<script src="/form.js" defer></script>
+<link rel="stylesheet" href="/static/gm.css">
+<script src="/static/zepto.var" defer></script>
+<script src="/static/view.js" defer></script>
+<script src="/static/form.js" defer></script>
 <meta charset="utf-8">
 
 <span id="admin"></span>
 <div id="title"><span class="i">i</span><span class="Eval">Eval</span></div>
 <div id="subtitle">TITLE_GOES_HERE</div>
 
-<nav><ul><li><a href="/learn.var">Learn</a><li><a href="/pb/">Practice</a><li><a href="/ct/">Compete</a><li><a href="/log/">Job log</a></ul></nav>
+<nav><ul>
+<li><a href="/pb/">Problems</a>
+<li><a href="/ct/">Contests</a>
+<li><a href="/log/">Job log</a></ul></nav>
 
 HTML
 );
@@ -101,15 +108,19 @@ sub cook_templates {
 my %templates;
 
 sub generate{
-       my ($self, $path, $lang) = @_;
+       my ($self, $lang, @args) = @_;
 
        $templates{$self} = { cook_templates $self->TEMPLATES, $self->NAME => $self->TITLE } if !exists $templates{$self} or reload_templates;
 
        my $htc = HTML::Template::Compiled->new(scalarref => \$templates{$self}{$lang}, default_escape => 'HTML',);
-       $self->_generate($htc, $path, $lang);
-       $htc->output
+       $self->_generate($htc, $lang, @args);
+       [200, ['Content-Type' => 'text/html', 'Content-Language' => $_[1]], [ $htc->output ] ]
 }
 
 sub _generate {}
 
+sub variants {
+       [ map { [ $_, 1, 'text/html', undef, undef, $_, undef ]} keys $_[0]->TEMPLATES ]
+}
+
 1
This page took 0.022165 seconds and 4 git commands to generate.