Completed
Push — master ( dbcf7e...59e046 )
by Randy
21s queued 19s
created

OptionalBase   A

Complexity

Total Complexity 9

Size/Duplication

Total Lines 70
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 0

Importance

Changes 0
Metric Value
dl 0
loc 70
rs 10
c 0
b 0
f 0
wmc 9
lcom 1
cbo 0

7 Methods

Rating   Name   Duplication   Size   Complexity  
A isNone() 0 4 1
A default() 0 4 2
A do() 0 6 2
A ensureNotFalse() 0 6 1
A isNotEqualTo() 0 4 1
A isNotIdenticalTo() 0 4 1
A __invoke() 0 4 1
1
<?php
2
3
namespace Dgame\Optional;
4
5
/**
6
 * Class OptionalBase
7
 * @package Dgame\Optional
8
 */
9
abstract class OptionalBase implements Optional
10
{
11
    /**
12
     * @return bool
13
     */
14
    final public function isNone(): bool
15
    {
16
        return !$this->isSome();
17
    }
18
19
    /**
20
     * @param mixed $default
21
     *
22
     * @return mixed
23
     */
24
    final public function default($default)
25
    {
26
        return $this->isSome($value) ? $value : $default;
27
    }
28
29
    /**
30
     * @param callable $callback
31
     */
32
    final public function do(callable $callback): void
33
    {
34
        if ($this->isSome($value)) {
35
            $callback($value);
36
        }
37
    }
38
39
    /**
40
     * @return Optional
41
     */
42
    final public function ensureNotFalse(): Optional
43
    {
44
        return $this->ensure(static function ($value): bool {
45
            return $value !== false;
46
        });
47
    }
48
49
    /**
50
     * @param mixed $value
51
     *
52
     * @return bool
53
     */
54
    final public function isNotEqualTo($value): bool
55
    {
56
        return !$this->isEqualTo($value);
57
    }
58
59
    /**
60
     * @param mixed $value
61
     *
62
     * @return bool
63
     */
64
    final public function isNotIdenticalTo($value): bool
65
    {
66
        return !$this->isIdenticalTo($value);
67
    }
68
69
    /**
70
     * @param mixed $value
71
     * 
72
     * @return bool
73
     */
74
    final public function __invoke(&$value = null): bool
75
    {
76
        return $this->isSome($value);
77
    }
78
}
79