Failed Conditions
Push — psr2 ( de3699...36dc94 )
by Andreas
03:29
created

Wordblock   A

Complexity

Total Complexity 8

Size/Duplication

Total Lines 43
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Importance

Changes 0
Metric Value
dl 0
loc 43
c 0
b 0
f 0
rs 10
wmc 8
lcom 1
cbo 2

4 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A preConnect() 0 13 4
A connectTo() 0 6 2
A getSort() 0 4 1
1
<?php
2
3
namespace dokuwiki\ParserMode;
4
5
/**
6
 * @fixme is this actually used?
7
 */
8
class Wordblock extends AbstractMode
9
{
10
    protected $badwords = array();
11
    protected $pattern = '';
12
13
    /**
14
     * Wordblock constructor.
15
     * @param $badwords
16
     */
17
    public function __construct($badwords)
18
    {
19
        $this->badwords = $badwords;
20
    }
21
22
    /** @inheritdoc */
23
    public function preConnect()
24
    {
25
26
        if (count($this->badwords) == 0 || $this->pattern != '') {
27
            return;
28
        }
29
30
        $sep = '';
31
        foreach ($this->badwords as $badword) {
32
            $this->pattern .= $sep.'(?<=\b)(?i)'.Doku_Lexer_Escape($badword).'(?-i)(?=\b)';
33
            $sep = '|';
34
        }
35
    }
36
37
    /** @inheritdoc */
38
    public function connectTo($mode)
39
    {
40
        if (strlen($this->pattern) > 0) {
41
            $this->Lexer->addSpecialPattern($this->pattern, $mode, 'wordblock');
42
        }
43
    }
44
45
    /** @inheritdoc */
46
    public function getSort()
47
    {
48
        return 250;
49
    }
50
}
51