App-htmlcat

 view release on metacpan or  search on metacpan

lib/App/htmlcat.pm  view on Meta::CPAN

        $env->{'psgi.streaming'} or die 'psgi.streaming not supported';

        if ($env->{PATH_INFO} eq '/stream') {
            return sub {
                my $respond = shift;

                my $remote_addr = $env->{REMOTE_ADDR};

                my $writer = $respond->([
                    200, [
                        'Content-Type' => 'text/event-stream; charset=utf-8',
                        'Cache-Control' => 'no-cache'
                    ]
                ]);

                my $io = $env->{'psgix.io'};
                my $handle = AnyEvent::Handle->new(
                    fh => $io,
                    on_error => sub {
                        my ($handle, $fatal, $message) = @_;
                        warn "client [$remote_addr]: $message\n";

lib/App/htmlcat.pm  view on Meta::CPAN

                    handle => $handle,
                    writer => $writer, # keep reference
                };
                $self->{in}->on_read($self->_on_read_cb);
            };
        } elsif ($env->{PATH_INFO} eq '/css') {
            return [ 200, [ 'Content-Type' => 'text/css' ], [ $self->{ansi}->css ] ];
        } elsif ($env->{PATH_INFO} eq '/js') {
            return [ 200, [ 'Content-Type' => 'text/javascript' ], [ get_data_section('js') ] ];
        } elsif ($env->{PATH_INFO} eq '/') {
            return [ 200, [ 'Content-Type' => 'text/html; charset=utf-8' ], [ get_data_section('html') ] ];
        } else {
            return [ 404, [], [] ];
        }
    };
}

sub run {
    my $self = shift;
    my $runner = Plack::Runner->new(app => $self->as_psgi);
    $runner->parse_options(



( run in 0.648 second using v1.01-cache-2.11-cpan-4d50c553e7e )