RepeatingRValueSniff::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1.125

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 3
c 1
b 0
f 0
dl 0
loc 5
ccs 2
cts 4
cp 0.5
rs 10
cc 1
nc 1
nop 2
crap 1.125
1
<?php
2
declare(strict_types=1);
3
4
namespace Pluswerk\TypoScriptLinter\Sniff;
5
6
use Helmich\TypoScriptLint\Linter\LinterConfiguration;
7
use Helmich\TypoScriptLint\Linter\Report\File;
8
use Helmich\TypoScriptLint\Linter\Report\Issue;
9
use Helmich\TypoScriptLint\Linter\Sniff\TokenStreamSniffInterface;
10
use Helmich\TypoScriptParser\Tokenizer\TokenInterface;
11
12
final class RepeatingRValueSniff implements TokenStreamSniffInterface
13
{
14
    /**
15
     * @var RightValueSniffer
16
     */
17
    private $rightValueSniffer;
18
19
    /**
20
     * @param array                  $parameters
21
     * @param RightValueSniffer|null $rightValueSniffer
22
     */
23 2
    public function __construct(array $parameters, RightValueSniffer $rightValueSniffer = null)
24
    {
25 2
        $this->rightValueSniffer = $rightValueSniffer ?? new RightValueSniffer(
26
            $parameters['ignorePatterns'] ?? [],
27
            $parameters['ignoreClassNameValues'] ?? false
28
        );
29 2
    }
30
31
    /**
32
     * @param TokenInterface[]    $tokens
33
     * @param File                $file
34
     * @param LinterConfiguration $configuration
35
     *
36
     * @return void
37
     */
38 2
    public function sniff(array $tokens, File $file, LinterConfiguration $configuration): void
39
    {
40 2
        foreach ($tokens as $token) {
41 2
            $issue = $this->rightValueSniffer->sniff($token);
42 2
            if ($issue instanceof Issue) {
43 2
                $file->addIssue($issue);
44
            }
45
        }
46 2
    }
47
}
48