]> iEval git - plack-app-gruntmaster.git/blobdiff - lib/Gruntmaster/Page/Src.pm
Add Page::Src
[plack-app-gruntmaster.git] / lib / Gruntmaster / Page / Src.pm
diff --git a/lib/Gruntmaster/Page/Src.pm b/lib/Gruntmaster/Page/Src.pm
new file mode 100644 (file)
index 0000000..77a5cd2
--- /dev/null
@@ -0,0 +1,30 @@
+package Gruntmaster::Page::Src;
+
+use 5.014000;
+use strict;
+use warnings;
+use Gruntmaster::Page::Base;
+our @ISA = qw/Gruntmaster::Page::Base/;
+our $VERSION = '0.001';
+
+use constant CONTENT_TYPES => +{
+       c => 'text/x-csrc',
+       cpp => 'text/x-c++src',
+       cs => 'text/x-chsarp', # Used by GNOME. Not in mime.types.
+       java => 'text/x-java',
+       pas => 'text/x-pascal',
+       pl => 'text/x-perl',
+       py => 'text/x-python',
+};
+
+sub generate{
+       my ($self, $format, $logger, $ct, $job, $ext) = @_;
+       debug $logger => "Contest is $ct, job is $job and extension is $ext";
+       local $Gruntmaster::Data::contest = $ct if $ct;
+
+       [200, ['Content-Type' => CONTENT_TYPES->{$ext}, 'Cache-Control' => 'max-age=604800'], [job_inmeta($job)->{files}{prog}{content}] ]
+}
+
+sub variants{ [[file => 1, undef, undef, undef, undef, undef]] }
+
+1
This page took 0.023249 seconds and 4 git commands to generate.