Passed
Push — add/6 ( 1ceb7c...3ff08f )
by
unknown
09:22 queued 04:37
created

Expanded   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 44
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 18
dl 0
loc 44
rs 10
c 0
b 0
f 0
wmc 7

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 10 1
A indentStr() 0 3 1
A blockLines() 0 16 5
1
<?php
2
/**
3
 * SCSSPHP
4
 *
5
 * @copyright 2012-2018 Leaf Corcoran
6
 *
7
 * @license http://opensource.org/licenses/MIT MIT
8
 *
9
 * @link http://leafo.github.io/scssphp
10
 */
11
12
namespace Leafo\ScssPhp\Formatter;
13
14
use Leafo\ScssPhp\Formatter;
15
use Leafo\ScssPhp\Formatter\OutputBlock;
16
17
/**
18
 * Expanded formatter
19
 *
20
 * @author Leaf Corcoran <[email protected]>
21
 */
22
class Expanded extends Formatter
23
{
24
    /**
25
     * {@inheritdoc}
26
     */
27
    public function __construct()
28
    {
29
        $this->indentLevel = 0;
30
        $this->indentChar = '  ';
31
        $this->break = "\n";
32
        $this->open = ' {';
33
        $this->close = '}';
34
        $this->tagSeparator = ', ';
35
        $this->assignSeparator = ': ';
36
        $this->keepSemicolons = true;
37
    }
38
39
    /**
40
     * {@inheritdoc}
41
     */
42
    protected function indentStr()
43
    {
44
        return str_repeat($this->indentChar, $this->indentLevel);
45
    }
46
47
    /**
48
     * {@inheritdoc}
49
     */
50
    protected function blockLines(OutputBlock $block)
51
    {
52
        $inner = $this->indentStr();
53
54
        $glue = $this->break . $inner;
55
56
        foreach ($block->lines as $index => $line) {
57
            if (substr($line, 0, 2) === '/*') {
58
                $block->lines[$index] = preg_replace('/(\r|\n)+/', $glue, $line);
59
            }
60
        }
61
62
        $this->write($inner . implode($glue, $block->lines));
63
64
        if (empty($block->selectors) || ! empty($block->children)) {
65
            $this->write($this->break);
66
        }
67
    }
68
}
69