Passed
Push — main ( 11848c...4790f2 )
by Breno
02:08
created

Comparator::compare()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 13
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 11
c 1
b 0
f 0
nc 1
nop 3
dl 0
loc 13
rs 9.9
1
<?php
2
declare(strict_types=1);
3
4
namespace BrenoRoosevelt\Validation;
5
6
use BrenoRoosevelt\Validation\Translation\Translator;
7
use InvalidArgumentException;
8
9
trait Comparator
10
{
11
    public function compare(mixed $a, string $operator, mixed $b): bool
12
    {
13
        return
14
        match ($operator) {
15
            Operator::EQUAL => $a == $b,
16
            Operator::EXACTLY => $a === $b,
17
            Operator::GREATER_THAN => $a > $b,
18
            Operator::GREATER_THAN_EQUAL => $a >= $b,
19
            Operator::LESS_THAN => $a < $b,
20
            Operator::LESS_THAN_EQUAL => $a <= $b,
21
            Operator::NOT_EQUAL => $a != $b,
22
            Operator::NOT_EXACTLY => $a !== $b,
23
            default => throw new InvalidArgumentException(sprintf('Invalid operator: %s', $operator))
24
        };
25
    }
26
}
27