DateTimeHumanizerExtension   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 36
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 2
lcom 1
cbo 4
dl 0
loc 36
ccs 25
cts 25
cp 1
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A getName() 0 4 1
B getFilters() 0 25 1
1
<?php
2
3
namespace EmanueleMinotto\HumanizerBundle\Twig;
4
5
use Coduo\PHPHumanizer\DateTimeHumanizer;
6
use DateTime;
7
use Twig_SimpleFilter;
8
9
/**
10
 * Twig extension used to map DateTimeHumanizer methods to Twig filters.
11
 *
12
 * @author Emanuele Minotto <[email protected]>
13
 */
14
class DateTimeHumanizerExtension extends AbstractHumanizerExtension
15
{
16
    /**
17
     * {@inheritdoc}
18
     */
19 45
    public function getFilters()
20
    {
21 1
        return [
22 45
            new Twig_SimpleFilter(
23 45
                'difference',
24 30
                function (DateTime $fromDate, DateTime $toDate) {
25 3
                    return DateTimeHumanizer::difference(
26 2
                        $fromDate,
27 2
                        $toDate,
28 3
                        $this->translator->getLocale()
29 1
                    );
30 30
                }
31 15
            ),
32 45
            new Twig_SimpleFilter(
33 45
                'precise_difference',
34 31
                function (DateTime $fromDate, DateTime $toDate) {
35 3
                    return DateTimeHumanizer::preciseDifference(
36 2
                        $fromDate,
37 2
                        $toDate,
38 3
                        $this->translator->getLocale()
39 1
                    );
40 30
                }
41 15
            ),
42 15
        ];
43
    }
44
45 15
    public function getName()
46
    {
47 15
        return 'humanizer_datetime';
48
    }
49
}
50