Configuration   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 80
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 3

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
wmc 3
lcom 0
cbo 3
dl 0
loc 80
ccs 0
cts 56
cp 0
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A getConfigTreeBuilder() 0 10 1
A loadFormNode() 0 47 1
A loadTwigNode() 0 15 1
1
<?php
2
namespace Boekkooi\Bundle\JqueryValidationBundle\DependencyInjection;
3
4
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
5
use Symfony\Component\Config\Definition\ConfigurationInterface;
6
7
/**
8
 * @author Warnar Boekkooi <[email protected]>
9
 */
10
class Configuration implements ConfigurationInterface
11
{
12
    /**
13
     * {@inheritDoc}
14
     */
15
    public function getConfigTreeBuilder()
16
    {
17
        $treeBuilder = new TreeBuilder();
18
19
        $rootNode = $treeBuilder->root('boekkooi_jquery_validation');
20
        $rootNode->append($this->loadFormNode());
21
        $rootNode->append($this->loadTwigNode());
22
23
        return $treeBuilder;
24
    }
25
26
    private function loadFormNode()
27
    {
28
        $treeBuilder = new TreeBuilder();
29
30
        $node = $treeBuilder->root('form');
31
        $node
32
            ->treatTrueLike(array('enabled' => true, 'additional' => true))
33
            ->treatFalseLike(array('enabled' => false))
34
            ->addDefaultsIfNotSet()
35
            ->children()
36
                ->booleanNode('enabled')
37
                    ->info('Set to false to disable the form constraints being parsed/converted by default')
38
                    ->defaultTrue()
39
                ->end()
40
                ->arrayNode('additionals')
41
                    ->beforeNormalization()->ifString()->then(function ($v) { return strtolower($v) === 'true'; })->end()
42
                    ->treatTrueLike(array(
43
                        'accept' => true,
44
                        'ipv4' => true,
45
                        'ipv6' => true,
46
                        'iban' => true,
47
                        'luhn' => true,
48
                        'pattern' => true,
49
                        'time' => true,
50
                        'one_or_other' => true,
51
                        'required_group' => true,
52
                        'is_boolean' => true
53
                    ))
54
                    ->treatFalseLike(array())
55
                    ->addDefaultsIfNotSet()
56
                    ->children()
57
                        ->booleanNode('accept')->defaultFalse()->end()
58
                        ->booleanNode('ipv4')->defaultFalse()->end()
59
                        ->booleanNode('ipv6')->defaultFalse()->end()
60
                        ->booleanNode('iban')->defaultFalse()->end()
61
                        ->booleanNode('luhn')->defaultFalse()->end()
62
                        ->booleanNode('pattern')->defaultFalse()->end()
63
                        ->booleanNode('time')->defaultFalse()->end()
64
                        ->booleanNode('one_or_other')->defaultFalse()->end()
65
                        ->booleanNode('required_group')->defaultFalse()->end()
66
                        ->booleanNode('is_boolean')->defaultFalse()->end()
67
                    ->end()
68
                ->end()
69
            ->end();
70
71
        return $node;
72
    }
73
74
    private function loadTwigNode()
75
    {
76
        $treeBuilder = new TreeBuilder();
77
78
        $node = $treeBuilder->root('twig');
79
        $node
80
            ->treatTrueLike(array())
81
            ->treatFalseLike(array())
82
            ->addDefaultsIfNotSet()
83
            ->children()
84
                ->booleanNode('enabled')->defaultTrue()->end()
85
            ->end();
86
87
        return $node;
88
    }
89
}
90