Completed
Push — master ( 06117a...d54351 )
by Rafael
03:01
created

BooleanParser::parseValue()   C

Complexity

Conditions 9
Paths 8

Size

Total Lines 24
Code Lines 18

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 24
rs 5.3563
cc 9
eloc 18
nc 8
nop 4
1
<?php
2
3
/**
4
 * LICENSE: This file is subject to the terms and conditions defined in
5
 * file 'LICENSE', which is part of this source code package.
6
 *
7
 * @copyright 2016 Copyright(c) - All rights reserved.
8
 */
9
10
namespace Rafrsr\LibArray2Object\Parser;
11
12
class BooleanParser implements ValueParserInterface
13
{
14
    /**
15
     * @inheritDoc
16
     */
17
    public function parseValue($value, $type, \ReflectionProperty $property, $object)
18
    {
19
        if ($type === 'boolean' || $type === 'bool') {
20
            if (is_string($value)) {
21
                switch (strtolower($value)) {
22
                    case 'true':
23
                    case 'yes':
24
                    case 'ok':
25
                        $value = true;
26
                        break;
27
                    case 'false':
28
                    case 'no':
29
                        $value = false;
30
                        break;
31
                    default:
32
                        $value = (boolean)$value;
33
                }
34
            } else {
35
                $value = (boolean)$value;
36
            }
37
        }
38
39
        return $value;
40
    }
41
}