Conditions | 7 |
Paths | 5 |
Total Lines | 23 |
Code Lines | 12 |
Lines | 0 |
Ratio | 0 % |
Tests | 9 |
CRAP Score | 7.7656 |
Changes | 0 |
1 | <?php |
||
51 | 11 | public function ensureValidValue($value) |
|
52 | { |
||
53 | 11 | if ($value instanceof Money) { |
|
54 | 4 | return $value; |
|
55 | } |
||
56 | |||
57 | 9 | if (is_numeric($value)) { |
|
58 | 6 | return (string) $value; |
|
59 | } |
||
60 | |||
61 | 5 | if (is_string($value) && preg_match('/^(\d{1,5}(\.\d+)?)%$/', $value, $ms)) { |
|
62 | 3 | return $ms[1]; |
|
63 | } |
||
64 | |||
65 | 2 | if (is_string($value) && preg_match('/^(\d{1,5}(\.\d+)?) ([A-Z]{3})$/', $value, $ms)) { |
|
66 | 2 | return $this->moneyParser->parse($ms[1], new Currency($ms[3])); |
|
67 | } |
||
68 | |||
69 | /// TODO: add special exception |
||
70 | var_dump($value); |
||
|
|||
71 | $name = static::$name; |
||
72 | throw new \Exception("invalid $name value: $value"); |
||
73 | } |
||
74 | } |
||
75 |