PluralFilter::__invoke()   B
last analyzed

Complexity

Conditions 5
Paths 5

Size

Total Lines 14
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 6
CRAP Score 5

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 14
rs 8.8571
ccs 6
cts 6
cp 1
cc 5
eloc 7
nc 5
nop 4
crap 5
1
<?php
2
3
namespace BZIon\Twig;
4
5
use Doctrine\Common\Inflector\Inflector;
6
7
class PluralFilter
8
{
9
    /**
10
     * Make sure that a number is accompanied with the appropriate grammatical
11
     * number
12
     *
13
     * @param number $number
14
     * @param string $singular The noun in its singular form
15
     * @param string|null $plural The noun in its plural form (calculated
16
     *                            automatically by default)
17
     * @param bool   $hideNumber Whether or not to hide the number from the return value
18
     *
19
     * @return string
20 1
     */
21
    public function __invoke($singular, $number = null, $plural = null, $hideNumber = null)
22 1
    {
23 1
        if ($number == 1) {
24
            return "1 $singular";
25
        }
26 1
27
        $plural = $plural ?: Inflector::pluralize($singular);
28 1
29 1
        if ($number === null || $hideNumber) {
30
            return $plural;
31
        }
32 1
33
        return "$number $plural";
34
    }
35 1
36
    public static function get()
37 1
    {
38
        return new \Twig_SimpleFilter('plural', new self());
39
    }
40
}
41