Passed
Push — master ( 4f5a04...f7b3b1 )
by Chris
07:47
created

ForeachLoop   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 14
Duplicated Lines 0 %

Test Coverage

Coverage 44.44%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 5
eloc 9
c 1
b 0
f 0
dl 0
loc 14
ccs 4
cts 9
cp 0.4444
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A iterate() 0 12 5
1
<?php
2
3
namespace WebTheory\Collection\Iteration;
4
5
use WebTheory\Collection\Contracts\LoopInterface;
6
use WebTheory\Collection\Enum\LoopAction;
7
8
class ForeachLoop implements LoopInterface
9
{
10 3
    public function iterate(iterable $items, callable $callback): void
11
    {
12 3
        foreach ($items as $key => $item) {
13 3
            $action = $callback($item, $key, $items);
14
15 3
            if ($action instanceof LoopAction) {
16
                switch ($action->getValue()) {
17
                    case LoopAction::Break:
18
                        break 2;
19
20
                    case LoopAction::Continue:
21
                        continue 2;
22
                }
23
            }
24
        }
25
    }
26
}
27