Passed
Branch factorize (4cfa74)
by Samuel
01:51
created

FreqTransformer   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 29
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 2

Test Coverage

Coverage 100%

Importance

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

2 Methods

Rating   Name   Duplication   Size   Complexity  
A transform() 0 10 2
A validate() 0 6 2
1
<?php
2
3
namespace Recurrence\Rrule\Transformer;
4
5
use Recurrence\Model\Frequency;
6
use Recurrence\Rrule\Extractor\FreqExtractor;
7
use Recurrence\Model\Exception\InvalidRruleException;
8
use Recurrence\Model\Exception\InvalidFrequencyOptionException;
9
10
/**
11
 * Class FreqTransformer
12
 * @package Recurrence\RruleTransformer
13
 */
14
class FreqTransformer implements RruleTransformerInterface
15
{
16
    /**
17
     * @param array $values
18
     * @throws InvalidRruleException
19
     * @return Frequency
20
     */
21
    public function transform(array $values)
22
    {
23 1
        $this->validate($values);
24
25
        try {
26 1
            return new Frequency($values[0]);
27 1
        } catch (InvalidFrequencyOptionException $e) {
28 1
            throw new InvalidRruleException(FreqExtractor::RRULE_PARAMETER, (string) $values[0]);
29
        }
30
    }
31
32
    /**
33
     * @param array $values
34
     * @throws InvalidRruleException
35
     */
36
    protected function validate(array $values)
37
    {
38 1
        if (!isset($values[0])) {
39 1
            throw new InvalidRruleException(FreqExtractor::RRULE_PARAMETER);
40
        }
41 1
    }
42
}
43