NumberExtension   A
last analyzed

Complexity

Total Complexity 8

Size/Duplication

Total Lines 62
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 2

Test Coverage

Coverage 63.16%

Importance

Changes 0
Metric Value
wmc 8
lcom 0
cbo 2
dl 0
loc 62
ccs 12
cts 19
cp 0.6316
rs 10
c 0
b 0
f 0

5 Methods

Rating   Name   Duplication   Size   Complexity  
A getFilters() 0 8 1
A moneyFilter() 0 4 1
A signedFilter() 0 8 2
A cssClassFilter() 0 10 3
A getName() 0 4 1
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