NumberExtension::getName()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 0
cts 2
cp 0
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 0
crap 2
1
<?php
2
3
namespace OSS\CoreBundle\Twig;
4
5
class NumberExtension extends \Twig_Extension
6
{
7
    /**
8
     * @return \Twig_SimpleFilter
9
     */
10
    public function getFilters()
11
    {
12
        return array(
13
            new \Twig_SimpleFilter('money', array($this, 'moneyFilter')),
14
            new \Twig_SimpleFilter('signed', array($this, 'signedFilter')),
15
            new \Twig_SimpleFilter('cssClass', array($this, 'cssClassFilter')),
16
        );
17
    }
18
19
    /**
20
     * @param int $amount
21
     *
22
     * @return string
23
     */
24 1
    public function moneyFilter($amount)
25
    {
26 1
        return number_format($amount, 0, ',', '.') . '$';
27
    }
28
29
    /**
30
     * @param int $amount
31
     *
32
     * @return string
33
     */
34 1
    public function signedFilter($amount)
35
    {
36 1
        if ($amount > 0) {
37 1
            return '+' . $amount;
38
        } else {
39 1
            return (string) $amount;
40
        }
41
    }
42
43
    /**
44
     * @param int $amount
45
     *
46
     * @return string
47
     */
48 1
    public function cssClassFilter($amount)
49
    {
50 1
        if ($amount > 0) {
51 1
            return 'plus';
52 1
        } elseif ($amount < 0) {
53 1
            return 'minus';
54
        } else {
55 1
            return '';
56
        }
57
    }
58
59
    /**
60
     * @return string
61
     */
62
    public function getName()
63
    {
64
        return 'oss.core.number';
65
    }
66
}
67