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

AbstractOptions::setOption()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 8
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 6
CRAP Score 2

Importance

Changes 1
Bugs 1 Features 0
Metric Value
c 1
b 1
f 0
dl 0
loc 8
ccs 6
cts 6
cp 1
rs 9.4285
cc 2
eloc 5
nc 2
nop 2
crap 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