summary refs log tree commit diff
path: root/chat.pl
blob: bcdfb02d034468a352798b59cb7a8a32451ee5ec (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/usr/bin/env perl
use lib ('/home/franck/code/git/dancer/lib');
use Dancer;

use Plack::Builder;
use Plack::App::Cascade;
use Web::Hippie::App::JSFiles;

use lib ('lib');

load_app 'chat';
load_app 'chat::websocket';

my $dancer_base = sub {
    my $env     = shift;
    my $request = Dancer::Request->new($env);
    Dancer->dance($request);
};

my $websocket = sub {
    my $env = shift;
    my $request = Dancer::Request->new($env);
    Dancer->dance($request);
};

builder {
    mount '/_hippie' => builder {
        enable "+Web::Hippie";
        enable "+Web::Hippie::Pipe";
        $websocket;
    };
    mount '/static' => Plack::App::Cascade->new(
        apps => [
            Web::Hippie::App::JSFiles->new->to_app,
            Plack::App::File->new( root => 'public' )->to_app,
        ]
    );
    mount '/' => $dancer_base;
};