Passed
Branch master (c435fb)
by Théo
02:10
created

PatchScoper::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 2
nc 1
nop 1
dl 0
loc 4
rs 10
c 0
b 0
f 0
ccs 3
cts 3
cp 1
crap 1
1
<?php
2
3
declare(strict_types=1);
4
5
/*
6
 * This file is part of the humbug/php-scoper package.
7
 *
8
 * Copyright (c) 2017 Théo FIDRY <[email protected]>,
9
 *                    Pádraic Brady <[email protected]>
10
 *
11
 * For the full copyright and license information, please view the LICENSE
12
 * file that was distributed with this source code.
13
 */
14
15
namespace Humbug\PhpScoper\Scoper;
16
17
use Humbug\PhpScoper\Scoper;
18
19
final class PatchScoper implements Scoper
20
{
21
    private $decoratedScoper;
22
23 1
    public function __construct(Scoper $decoratedScoper)
24
    {
25 1
        $this->decoratedScoper = $decoratedScoper;
26 1
    }
27
28
    /**
29
     * @inheritdoc
30
     */
31 1
    public function scope(string $filePath, string $prefix, array $patchers, callable $globalWhitelister): string
32
    {
33 1
        $content = $this->decoratedScoper->scope($filePath, $prefix, $patchers, $globalWhitelister);
34
35 1
        return array_reduce(
36 1
            $patchers,
37 1
            function (string $content, callable $patcher) use ($filePath, $prefix): string {
38 1
                return $patcher($filePath, $prefix, $content);
39 1
            },
40 1
            $content
41
        );
42
    }
43
}
44