Passed
Push — master ( 1c1d7c...fe33c8 )
by Michal
02:07
created

TrimTokenModifier::changeText()   A

Complexity

Conditions 3
Paths 4

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 3

Importance

Changes 0
Metric Value
eloc 3
dl 0
loc 5
ccs 4
cts 4
cp 1
rs 10
c 0
b 0
f 0
cc 3
nc 4
nop 1
crap 3
1
<?php
2
3
namespace Efabrica\TranslationsAutomatization\TokenModifier;
4
5
use Efabrica\TranslationsAutomatization\Tokenizer\Token;
6
use Efabrica\TranslationsAutomatization\TokenModifier\TokenModifier;
7
8
class TrimTokenModifier extends TokenModifier
9
{
10
    private $affectedTexts;
11
12
    private $prefixCharacterMask;
13
14
    private $suffixCharacterMask;
15
16 6
    public function __construct(
17
        int $affectedTexts = Token::TOKEN_ALL,
18
        ?string $prefixCharacterMask = null,
19
        ?string $suffixCharacterMask = null
20
    ) {
21 6
        $this->affectedTexts = $affectedTexts;
22 6
        $this->prefixCharacterMask = $prefixCharacterMask;
23 6
        $this->suffixCharacterMask = $suffixCharacterMask;
24 6
    }
25
26 6
    protected function modify(Token $token): Token
27
    {
28 6
        if ($this->affectedTexts & Token::TOKEN_TRANSLATION_KEY) {
29 6
            $token->changeTranslationKey($this->changeText($token->getTranslationKey()));
30
        }
31 6
        if ($this->affectedTexts & Token::TOKEN_TRANSLATION_CODE) {
32 6
            $token->changeTranslationCode($this->changeText($token->getTranslationCode()));
33
        }
34 6
        if ($this->affectedTexts & Token::TOKEN_TARGET_TEXT) {
35 4
            $token->changeTargetText($this->changeText($token->getTargetText()));
36
        }
37 6
        return $token;
38
    }
39
40 6
    private function changeText(string $text): string
41
    {
42 6
        $text = $this->prefixCharacterMask === null ? ltrim($text) : ltrim($text, $this->prefixCharacterMask);
43 6
        $text = $this->suffixCharacterMask === null ? rtrim($text) : rtrim($text, $this->suffixCharacterMask);
44 6
        return $text;
45
    }
46
}
47