Completed
Push — master ( 4fdf9b...3e8bcb )
by BENOIT
02:40
created

functions.php ➔ group()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 2
nc 1
nop 2
dl 0
loc 4
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace BenTools\Specification;
4
5
use BenTools\Specification\Exception\UnmetSpecificationException;
6
7
/**
8
 * @param             $specification
9
 * @param null|string $name
10
 * @return Specification
11
 * @throws \RuntimeException
12
 */
13
function spec($specification, ?string $name = null): Specification
14
{
15
    return Specification::factory($specification, $name);
16
}
17
18
/**
19
 * @param             $specification
20
 * @param null|string $name
21
 * @return Specification
22
 * @throws \RuntimeException
23
 */
24
function not($specification, ?string $name = null): Specification
25
{
26
    return Specification::factory($specification)->negate($name);
27
}
28
29
/**
30
 * @param             $specification
31
 * @param null|string $name
32
 * @return Specification
33
 * @throws \RuntimeException
34
 */
35
function group($specification, ?string $name = null): Specification
36
{
37
    return Specification::factory($specification)->asGroup($name);
38
}
39
40
/**
41
 * @param Specification[] ...$specifications
42
 * @throws UnmetSpecificationException
43
 */
44
function reject(Specification ...$specifications)
45
{
46
    if ([] !== $specifications) {
47
        UnmetSpecificationException::createFor(...$specifications)->throwIfUnmet();
48
    }
49
}
50