Passed
Push — fix/filter-collection ( 4cf3e9 )
by Arnaud
05:22
created

DynamicComparisons::equal()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 1
c 1
b 0
f 0
nc 1
nop 2
dl 0
loc 3
rs 10
1
<?php
2
/*
3
 * This file is part of the Cecil/Cecil package.
4
 *
5
 * Copyright (c) Arnaud Ligny <[email protected]>
6
 *
7
 * For the full copyright and license information, please view the LICENSE
8
 * file that was distributed with this source code.
9
 */
10
11
namespace Cecil\Util;
12
13
trait DynamicComparisons
14
{
15
    private $operatorToMethod = [
16
        '=='  => 'equal',
17
        '===' => 'totallyEqual',
18
        '!='  => 'notEqual',
19
        '>'   => 'greaterThan',
20
        '<'   => 'lessThan',
21
    ];
22
23
    protected function is($valueA, $operation, $valueB)
24
    {
25
        if ($method = $this->operatorToMethod[$operation]) {
26
            return $this->$method($valueA, $valueB);
27
        }
28
29
        throw new \Exception('Unknown Dynamic Operator.');
30
    }
31
32
    private function equal($valueA, $valueB)
33
    {
34
        return $valueA == $valueB;
35
    }
36
37
    private function totallyEqual($valueA, $valueB)
38
    {
39
        return $valueA === $valueB;
40
    }
41
42
    private function notEqual($valueA, $valueB)
43
    {
44
        return $valueA != $valueB;
45
    }
46
47
    private function greaterThan($valueA, $valueB)
48
    {
49
        return $valueA > $valueB;
50
    }
51
52
    private function lessThan($valueA, $valueB)
53
    {
54
        return $valueA < $valueB;
55
    }
56
57
    private function greaterThanOrEqual($valueA, $valueB)
58
    {
59
        return $valueA >= $valueB;
60
    }
61
62
    private function lessThanOrEqual($valueA, $valueB)
63
    {
64
        return $valueA <= $valueB;
65
    }
66
}
67