gluck1986/project-lvl1-s156

View on GitHub
src/Scenario.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php

namespace BrainGames\Scenario;

const HEAD = 'head';
const ACTION = 'action';

function buildScenario(string $head, \Closure $action)
{
    return function ($signal) use ($head, $action) {
        if ($signal === HEAD) {
            return $head;
        } elseif ($signal === ACTION) {
            return $action;
        }
        throw new \Exception('Invalid signal:\'' . $signal . '\'');
    };
}

function getHead(\Closure $scenario): string
{
    return $scenario(HEAD);
}

function getGame(\Closure $scenario): \Closure
{
    return $scenario(ACTION);
}