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

Comparator   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 15
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 12
c 1
b 0
f 0
dl 0
loc 15
rs 10
wmc 1

1 Method

Rating   Name   Duplication   Size   Complexity  
A compare() 0 13 1
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