Completed
Push — develop ( a5d0c7...2b55ee )
by Vadim
02:36
created

AbstractOptions   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 29
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Test Coverage

Coverage 100%

Importance

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

2 Methods

Rating   Name   Duplication   Size   Complexity  
A setOption() 0 8 2
A setOptions() 0 6 2
1
<?php
2
3
namespace AudioManager\Adapter\Options;
4
5
use AudioManager\Exception\RuntimeException;
6
7
/**
8
 * @package Adapter\Options
9
 */
10
abstract class AbstractOptions implements OptionsInterface
11
{
12
    /**
13
     * Set option
14
     * @param $name
15
     * @param $value
16
     * @return mixed
17
     */
18 3
    public function setOption($name, $value)
19
    {
20 3
        $methodName = 'set' . ucfirst($name);
21 3
        if (!method_exists($this, $methodName)) {
22 1
            throw new RuntimeException('Method not exists: ' . $methodName);
23
        }
24 2
        $this->$methodName($value);
25 2
    }
26
27
    /**
28
     * Set options
29
     * @param array $options
30
     * @return mixed
31
     */
32 2
    public function setOptions(array $options)
33
    {
34 2
        foreach ($options as $name => $value) {
35 2
            $this->setOption($name, $value);
36 2
        }
37 2
    }
38
}
39