Completed
Push — master ( 7a912b...b5ce16 )
by Peter
04:46 queued 02:49
created

BaseDriver::getMax()   A

Complexity

Conditions 4
Paths 4

Size

Total Lines 14
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 9
CRAP Score 4

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 14
ccs 9
cts 9
cp 1
rs 9.2
cc 4
eloc 7
nc 4
nop 1
crap 4
1
<?php
2
/**
3
 * AnimeDb package
4
 *
5
 * @package   AnimeDb
6
 * @author    Peter Gribanov <[email protected]>
7
 * @copyright Copyright (c) 2014, Peter Gribanov
8
 * @license   http://opensource.org/licenses/MIT
9
 */
10
11
namespace AnimeDb\Bundle\CacheTimeKeeperBundle\Service\Driver;
12
13
/**
14
 * Base driver
15
 *
16
 * @package AnimeDb\Bundle\CacheTimeKeeperBundle\Service\Driver
17
 * @author  Peter Gribanov <[email protected]>
18
 */
19
abstract class BaseDriver implements DriverInterface
20
{
21
    /**
22
     * Get a list of keys or dates and chooses the max date
23
     *
24
     * @param array $params
25
     *
26
     * @return \DateTime
27
     */
28 6
    public function getMax(array $params)
29
    {
30 6
        if (empty($params)) {
31 3
            throw new \InvalidArgumentException('Unknown key list');
32
        }
33
34 3
        foreach ($params as $key => $value) {
35 3
            if (!($value instanceof \DateTime)) {
36 3
                $params[$key] = $this->get($value);
37 3
            }
38 3
        }
39
40 3
        return max($params);
41
    }
42
}
43