WithoutMutator::__invoke()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 12
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 8
CRAP Score 1

Importance

Changes 4
Bugs 0 Features 0
Metric Value
c 4
b 0
f 0
dl 0
loc 12
ccs 8
cts 8
cp 1
rs 9.4285
cc 1
eloc 7
nc 1
nop 2
crap 1
1
<?php
2
3
namespace Underscore\Mutator;
4
5
use Underscore\Accessor\ContainsAccessor;
6
use Underscore\Collection;
7
use Underscore\Mutator;
8
9
class WithoutMutator extends Mutator
10
{
11
    /**
12
     * Removes all provided values using strict comparison.
13
     *
14
     * @param Collection   $collection
15
     * @param \ArrayAccess $values
16
     * @return Collection
17
     */
18 2
    public function __invoke($collection, $values)
19
    {
20 2
        $values = new Collection($values);
21 2
        $contains = new ContainsAccessor();
22 2
        $reject = new RejectMutator();
23
24 2
        $iterator = function ($item) use ($values, $contains) {
25 2
            return $contains($values, $item);
26 2
        };
27
28 2
        return $reject($collection, $iterator);
29
    }
30
}
31