RepeatingRValueSniff   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 32
Duplicated Lines 0 %

Test Coverage

Coverage 80%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 4
eloc 9
c 1
b 0
f 0
dl 0
loc 32
ccs 8
cts 10
cp 0.8
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A sniff() 0 6 3
A __construct() 0 5 1
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