Passed
Push — master ( acf3f9...98cfe3 )
by Derek Stephen
03:04
created

DefaultErrorRender   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 59
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 7
eloc 21
c 0
b 0
f 0
dl 0
loc 59
ccs 24
cts 24
cp 1
rs 10

4 Methods

Rating   Name   Duplication   Size   Complexity  
A appendMessage() 0 7 1
A addErrorMessages() 0 8 2
A addCustomErrorMessage() 0 6 1
A render() 0 11 3
1
<?php
2
/**
3
 * User: delboy1978uk
4
 * Date: 04/12/2016
5
 * Time: 23:36
6
 */
7
8
namespace Del\Form\Renderer\Error;
9
10
11
use Del\Form\Field\FieldInterface;
12
use DOMElement;
13
use DOMText;
14
15
class DefaultErrorRender extends AbstractErrorRender implements ErrorRendererInterface
16
{
17
    /**
18
     * @param FieldInterface $field
19
     * @return DOMElement
20
     */
21 3
    public function render(FieldInterface $field)
22
    {
23 3
        $helpBlock = $this->getDom()->createElement('span');
24 3
        $helpBlock->setAttribute('class', 'text-danger');
25
26 3
        if ($this->shouldRender($field)) {
27 3
            $helpBlock = $field->hasCustomErrorMessage()
28 1
                ? $this->addCustomErrorMessage($helpBlock, $field)
29 2
                : $this->addErrorMessages($helpBlock, $field);
30
        }
31 3
        return $helpBlock;
32
    }
33
34
    /**
35
     * @param DOMElement $helpBlock
36
     * @param FieldInterface $field
37
     * @return DOMElement
38
     */
39 1
    private function addCustomErrorMessage(DOMElement $helpBlock, FieldInterface $field)
40
    {
41 1
        $message = $field->getCustomErrorMessage();
42 1
        $text = $this->createText($message);
43 1
        $helpBlock->appendChild($text);
44 1
        return $helpBlock;
45
    }
46
47
    /**
48
     * @param DOMElement $helpBlock
49
     * @param FieldInterface $field
50
     * @return DOMElement
51
     */
52 2
    private function addErrorMessages(DOMElement $helpBlock, FieldInterface $field)
53
    {
54 2
        $messages = $field->getMessages();
55
56 2
        foreach ($messages as $message) {
57 2
            $helpBlock = $this->appendMessage($helpBlock, $message);
58
        }
59 2
        return $helpBlock;
60
    }
61
62
    /**
63
     * @param DOMElement $helpBlock
64
     * @param $message
65
     * @return DOMElement
66
     */
67 2
    private function appendMessage(DOMElement $helpBlock, $message)
68
    {
69 2
        $text = $this->createText($message);
70 2
        $br = $this->createLineBreak();
71 2
        $helpBlock->appendChild($text);
72 2
        $helpBlock->appendChild($br);
73 2
        return $helpBlock;
74
    }
75
76
}