Test Failed
Push — master ( ed25dd...eced50 )
by Fran
04:57 queued 01:39
created

AssetsNode::compile()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 28

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 14
CRAP Score 2

Importance

Changes 0
Metric Value
cc 2
nc 2
nop 1
dl 0
loc 28
rs 9.472
c 0
b 0
f 0
ccs 14
cts 14
cp 1
crap 2
1
<?php
2
3
namespace PSFS\base\extension;
4
/**
5
 * Class AssetsNode
6
 * @package PSFS\base\extension
7
 */
8
class AssetsNode extends \Twig_Node
9
{
10
11
    protected $hash;
12
    protected $type;
13
14
    /**
15
     * @param string $name
16
     * @param array $values
17
     * @param int $line
18
     * @param null $tag
19
     * @param string $type
20
     */
21 1
    public function __construct($name, $values, $line, $tag = null, $type = 'js')
22
    {
23 1
        parent::__construct(array('scripts' => $values["node"]), array('name' => $name), $line, $tag);
24 1
        $this->hash = $values["hash"];
25 1
        $this->type = $type;
26 1
    }
27
28 1
    public function compile(\Twig_Compiler $compiler)
29
    {
30 1
        $scripts = $this->getNode("scripts");
31
32
        //Creamos el parser
33 1
        $compiler->addDebugInfo($scripts)->write('$parser = new \\PSFS\\base\\extension\\AssetsParser(\'' . $this->type . '\')')
34 1
            ->raw(";\n");
35
36
        //Asociamos el hash
37 1
        $compiler->write('$parser->setHash(\'' . $this->hash . '\')')
38 1
            ->raw(";\n");
39
40
        //Asociamos los ficheros
41 1
        foreach ($scripts->getAttribute("value") as $value) {
42 1
            $compiler->write('$parser->addFile(\'' . $value . '\')')->raw(";\n");
43
        }
44
45
        //Procesamos los ficheros
46 1
        $compiler->write('$parser->compile()')
47 1
            ->raw(";\n");
48
49
        //Imprimimos los tags
50 1
        $compiler->write('$parser->printHtml()')
51 1
            ->raw(";\n");
52
53
        //Damos oxigeno
54 1
        $compiler->raw("\n");
55 1
    }
56
}
57