NumberExpressionLanguageProvider   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 22
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
dl 0
loc 22
rs 10
c 0
b 0
f 0
wmc 3

1 Method

Rating   Name   Duplication   Size   Complexity  
A getFunctions() 0 20 3
1
<?php
2
3
namespace PhpEarth\Stats\ExpressionLanguage;
4
5
use Symfony\Component\ExpressionLanguage\ExpressionFunction;
6
use Symfony\Component\ExpressionLanguage\ExpressionFunctionProviderInterface;
7
8
class NumberExpressionLanguageProvider implements ExpressionFunctionProviderInterface
9
{
10
    public function getFunctions()
11
    {
12
        return [
13
            new ExpressionFunction('ceil', function ($num) {
14
                return sprintf('(is_numeric(%1$s) ? ceil(%1$s) : %1$s)', $num);
15
            }, function ($arguments, $num) {
16
                if (!is_numeric($num)) {
17
                    return $num;
18
                }
19
20
                return ceil($num);
21
            }),
22
            new ExpressionFunction('floor', function ($num) {
23
                return sprintf('(is_numeric(%1$s) ? floor(%1$s) : %1$s)', $num);
24
            }, function ($arguments, $num) {
25
                if (!is_numeric($num)) {
26
                    return $num;
27
                }
28
29
                return floor($num);
30
            }),
31
        ];
32
    }
33
}
34