PhpSpec\Console\ContainerAssembler::setupRerunner PHP Method

setupRerunner() private method

private setupRerunner ( IndexedServiceContainer $container )
$container PhpSpec\ServiceContainer\IndexedServiceContainer
    private function setupRerunner(IndexedServiceContainer $container)
    {
        $container->define('process.rerunner', function (IndexedServiceContainer $c) {
            return new ReRunner\OptionalReRunner($c->get('process.rerunner.platformspecific'), $c->get('console.io'));
        });
        if ($container->has('process.rerunner.platformspecific')) {
            return;
        }
        $container->define('process.rerunner.platformspecific', function (IndexedServiceContainer $c) {
            return new ReRunner\CompositeReRunner($c->getByTag('process.rerunner.platformspecific'));
        });
        $container->define('process.rerunner.platformspecific.pcntl', function (IndexedServiceContainer $c) {
            return ReRunner\PcntlReRunner::withExecutionContext($c->get('process.phpexecutablefinder'), $c->get('process.executioncontext'));
        }, ['process.rerunner.platformspecific']);
        $container->define('process.rerunner.platformspecific.passthru', function (IndexedServiceContainer $c) {
            return ReRunner\ProcOpenReRunner::withExecutionContext($c->get('process.phpexecutablefinder'), $c->get('process.executioncontext'));
        }, ['process.rerunner.platformspecific']);
        $container->define('process.rerunner.platformspecific.windowspassthru', function (IndexedServiceContainer $c) {
            return ReRunner\WindowsPassthruReRunner::withExecutionContext($c->get('process.phpexecutablefinder'), $c->get('process.executioncontext'));
        }, ['process.rerunner.platformspecific']);
        $container->define('process.phpexecutablefinder', function () {
            return new PhpExecutableFinder();
        });
    }