Coro-Twiggy

 view release on metacpan or  search on metacpan

lib/Coro/Twiggy.pm  view on Meta::CPAN

package Coro::Twiggy;
use 5.008008;
use strict;
use warnings;

use Twiggy::Server;
use Scalar::Util 'weaken';
use Coro;
use Data::Dumper;

our $VERSION = '0.03';

=head1 NAME

Coro::Twiggy - Coro interface for L<Twiggy>

=head1 SYNOPSIS

lib/Coro/Twiggy.pm  view on Meta::CPAN


=cut

sub register_service {
    my ($self, $cb) = @_;
    $self->{app} = $cb || DEFAULT_SERVICE;
}

sub _app {
    my ($self) = @_;
    weaken $self;
    sub {
        my ($env) = @_;
        sub {
            my ($cb) = @_;
            async {
                return DEFAULT_SERVICE->() unless $self;
                my @res = eval { $self->{app}->($env, $self) };
                my $res = shift @res;

                if (my $err = $@) {



( run in 0.306 second using v1.01-cache-2.11-cpan-65fba6d93b7 )