Acme-Parataxis

 view release on metacpan or  search on metacpan

builder/Acme/Parataxis/Builder.pm  view on Meta::CPAN

            require CPAN::Requirements::Dynamic;
            my $dynamic_parser = CPAN::Requirements::Dynamic->new();
            my $prereq         = $dynamic_parser->evaluate($dynamic);
            $meta{prereqs} = $meta->effective_prereqs->with_merged_prereqs($prereq)->as_string_hash;
            $meta = CPAN::Meta->new( \%meta );
        }
        $meta->save(@$_) for ['MYMETA.json'];
    }

    sub find ( $pattern, $base ) {
        $base = path($base) unless builtin::blessed $base;
        my $blah = $base->visit(
            sub ( $path, $state ) {
                $state->{$path} = $path if -f $path && $path =~ $pattern;

                #~ return \0 if keys %$state == 10;
            },
            { recurse => 1 }
        );
        values %$blah;
    }

lib/Acme/Parataxis.pm  view on Meta::CPAN

    sub fiber : prototype(&) ($code) { spawn( 'Acme::Parataxis', $code ) }

    sub async : prototype(&) ($code) {
        my $ret = run($code);
        stop();
        return $ret;
    }

    sub await {
        my $thing = shift;
        if ( builtin::blessed($thing) ) {
            return $thing->await if $thing->can('await');
            return $thing->wait  if $thing->can('wait');
        }
        croak 'await() requires a Future or Fiber object';
    }

    sub yield {
        my $invocant = shift;
        if ( !defined $invocant || ( ( ref $invocant || $invocant ) ne 'Acme::Parataxis' && !eval { $invocant->isa('Acme::Parataxis') } ) ) {
            unshift @_, $invocant if defined $invocant;

t/007_data_types.t  view on Meta::CPAN

    is $yielded->{status}, 'waiting', 'Yielded HASH correctly';
    diag 'Resuming fiber with an array ref...';
    my $final = $fiber->call( [ 'A', 'B' ] );
    is $final->{received}, [ 'A', 'B' ], 'Final return contains the resumed data';
};
our $DESTROYED = 0;
{

    package Local::Destructor {
        use Test2::V1 qw[diag];
        sub new { bless { name => pop @_ }, $_[0] }

        sub DESTROY ( $self, @ ) {
            diag 'Destroy ' . $self->{name};
            $main::DESTROYED++;
        }
    }
}
subtest 'Objects with Destructors' => sub {
    $DESTROYED = 0;
    subtest 'Passing object into fiber' => sub {



( run in 2.156 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )