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

Contents of /trunk/lib/Frey/Mojo.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 790 - (show annotations)
Wed Dec 10 14:22:59 2008 UTC (15 years, 4 months ago) by dpavlin
File size: 1323 byte(s)
push correct Content-type to Mojo
1 package Frey::Mojo;
2
3 use strict;
4 use warnings;
5
6 use base 'Mojo';
7
8 use MojoX::Dispatcher::Static;
9
10 use lib 'lib';
11 use Frey::Server;
12
13 use Data::Dump qw/dump/;
14
15 __PACKAGE__->attr(
16 static => (
17 chained => 1,
18 default => sub { MojoX::Dispatcher::Static->new }
19 )
20 );
21
22 sub new {
23 my $self = shift->SUPER::new();
24
25 # This app should log only errors to STDERR
26 $self->log->level('error');
27 $self->log->path(undef);
28
29 warn "# home ", $self->home;
30
31 $self->static->root( './' );
32
33 return $self;
34 }
35
36 sub handler {
37 my ($self, $tx) = @_;
38
39 if ( $self->static->dispatch($tx) ) {
40 # warn "# static ",dump( $tx );
41 return $tx;
42 }
43
44 my $body;
45
46 my $server = Frey::Server->new;
47 $server->{_print} = sub {
48 $body .= join("\n", @_);
49 };
50
51 my $url = $tx->req->url->to_string;
52 my $params = $tx->req->params->to_hash;
53
54 warn "# url $url params ",dump($params);
55
56 my $content_type = $server->request( $url, $params ); # fetch body
57
58 =for developer
59
60 # compatiblity with unpatched Mojo
61 sub class2rest {
62 my $c = shift;
63 $c =~ s/::/-/gs;
64 $c;
65 }
66 $body =~ s{(/\w+::\w+[\w:]+)}{class2rest($1)}sge;
67
68 =cut
69
70 $tx->res->code(200);
71 $tx->res->headers->content_type( $content_type );
72 $tx->res->body( $body );
73
74 warn dump( $tx->res->headers );
75 return $tx;
76 }
77
78 1;

  ViewVC Help
Powered by ViewVC 1.1.26