PhpSpec\Console\ContainerAssembler::setupRunner PHP Method

setupRunner() private method

private setupRunner ( IndexedServiceContainer $container )
$container PhpSpec\ServiceContainer\IndexedServiceContainer
    private function setupRunner(IndexedServiceContainer $container)
    {
        $container->define('runner.suite', function (IndexedServiceContainer $c) {
            return new Runner\SuiteRunner($c->get('event_dispatcher'), $c->get('runner.specification'));
        });
        $container->define('runner.specification', function (IndexedServiceContainer $c) {
            return new Runner\SpecificationRunner($c->get('event_dispatcher'), $c->get('runner.example'));
        });
        $container->define('runner.example', function (IndexedServiceContainer $c) {
            $runner = new Runner\ExampleRunner($c->get('event_dispatcher'), $c->get('formatter.presenter'));
            array_map(array($runner, 'registerMaintainer'), $c->getByTag('runner.maintainers'));
            return $runner;
        });
        $container->define('runner.maintainers.errors', function (IndexedServiceContainer $c) {
            return new Runner\Maintainer\ErrorMaintainer($c->getParam('runner.maintainers.errors.level', E_ALL ^ E_STRICT));
        }, ['runner.maintainers']);
        $container->define('runner.maintainers.collaborators', function (IndexedServiceContainer $c) {
            return new Runner\Maintainer\CollaboratorsMaintainer($c->get('unwrapper'), $c->get('loader.transformer.typehintindex'));
        }, ['runner.maintainers']);
        $container->define('runner.maintainers.let_letgo', function () {
            return new Runner\Maintainer\LetAndLetgoMaintainer();
        }, ['runner.maintainers']);
        $container->define('runner.maintainers.matchers', function (IndexedServiceContainer $c) {
            $matchers = $c->getByTag('matchers');
            return new Runner\Maintainer\MatchersMaintainer($c->get('formatter.presenter'), $matchers);
        }, ['runner.maintainers']);
        $container->define('runner.maintainers.subject', function (IndexedServiceContainer $c) {
            return new Runner\Maintainer\SubjectMaintainer($c->get('formatter.presenter'), $c->get('unwrapper'), $c->get('event_dispatcher'), $c->get('access_inspector'));
        }, ['runner.maintainers']);
        $container->define('unwrapper', function () {
            return new Wrapper\Unwrapper();
        });
        $container->define('access_inspector', function ($c) {
            return $c->get('access_inspector.magic');
        });
        $container->define('access_inspector.magic', function ($c) {
            return new MagicAwareAccessInspector($c->get('access_inspector.visibility'));
        });
        $container->define('access_inspector.visibility', function () {
            return new VisibilityAccessInspector();
        });
    }