Configuration::getConfigTreeBuilder()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 21

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 16
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 21
ccs 16
cts 16
cp 1
rs 9.584
c 0
b 0
f 0
cc 1
nc 1
nop 0
crap 1
1
<?php
2
3
namespace Flagbit\Bundle\CurrencyBundle\DependencyInjection;
4
5
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
6
use Symfony\Component\Config\Definition\ConfigurationInterface;
7
8
class Configuration implements ConfigurationInterface
9
{
10
    /**
11
     * Generates the configuration tree builder.
12
     *
13
     * @return \Symfony\Component\Config\Definition\Builder\TreeBuilder The tree builder
14
     */
15 7
    public function getConfigTreeBuilder()
16
    {
17 7
        $treeBuilder = new TreeBuilder();
18 7
        $rootNode = $treeBuilder->root('flagbit_currency');
19
20
        $rootNode
21 7
            ->children()
22 7
                ->scalarNode('default_currency')
23 7
                    ->info('ISO 4217 currency code')
24 7
                    ->validate()
25 7
                        ->ifTrue(function ($v) {
26 5
                            return 1 !== preg_match('/^[A-Z]{3}$/', $v);
27 7
                        })
28 7
                        ->thenInvalid('Invalid currency code "%s"')
29 7
                    ->end()
30 7
                    ->defaultValue('EUR')
31 7
                ->end()
32 7
            ->end();
33
34 7
        return $treeBuilder;
35
    }
36
}
37