Configuration::getConfigTreeBuilder()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 12
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 8
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 12
ccs 8
cts 8
cp 1
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 8
nc 1
nop 0
crap 1
1
<?php
2
3
namespace MediaMonks\CrawlerBundle\DependencyInjection;
4
5
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
6
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
7
use Symfony\Component\Config\Definition\ConfigurationInterface;
8
9
final class Configuration implements ConfigurationInterface
10
{
11
    /**
12
     * Generates the configuration tree.
13
     *
14
     * @return TreeBuilder
15
     */
16 2
    public function getConfigTreeBuilder()
17
    {
18 2
        $treeBuilder = new TreeBuilder();
19 2
        $rootNode = $treeBuilder->root('mediamonks_crawler');
20
21 2
        $this->addClient($rootNode);
22 2
        $this->addConfig($rootNode);
23 2
        $this->addPrerender($rootNode);
24 2
        $this->addPrerenderIo($rootNode);
25
26 2
        return $treeBuilder;
27
    }
28
29
    /**
30
     * @param ArrayNodeDefinition $node
31
     */
32 2
    private function addClient(ArrayNodeDefinition $node)
33
    {
34 2
        $node->children()
35 2
            ->scalarNode('client')
36 2
            ->defaultValue('goutte')
37 2
            ->end();
38 2
    }
39
40
    /**
41
     * @param ArrayNodeDefinition $node
42
     */
43 2
    private function addConfig(ArrayNodeDefinition $node)
44
    {
45 2
        $node->children()
46 2
            ->scalarNode('limit')
47 2
            ->defaultValue(0)
48 2
            ->end()
49 2
            ->booleanNode('stop_on_error')
50 2
            ->defaultFalse()
51 2
            ->end()
52 2
            ->booleanNode('exception_on_error')
53 2
            ->defaultFalse()
54 2
            ->end();
55 2
    }
56
57
    /**
58
     * @param ArrayNodeDefinition $node
59
     */
60 2
    private function addPrerender(ArrayNodeDefinition $node)
61
    {
62 2
        $node->children()
63 2
            ->arrayNode('prerender')
64 2
            ->addDefaultsIfNotSet()
65 2
            ->children()
66 2
            ->scalarNode('url')
67 2
            ->defaultNull()
68 2
            ->end()
69 2
            ->end();
70 2
    }
71
72
    /**
73
     * @param ArrayNodeDefinition $node
74
     */
75 2
    private function addPrerenderIo(ArrayNodeDefinition $node)
76
    {
77 2
        $node->children()
78 2
            ->arrayNode('prerender_io')
79 2
            ->addDefaultsIfNotSet()
80 2
            ->children()
81 2
            ->scalarNode('token')
82 2
            ->defaultNull()
83 2
            ->end()
84 2
            ->end();
85 2
    }
86
}
87