Passed
Push — master ( 74fbac...a461f1 )
by Jean-Christophe
04:58
created

Yuml   A

Complexity

Total Complexity 9

Size/Duplication

Total Lines 51
Duplicated Lines 0 %

Test Coverage

Coverage 87.5%

Importance

Changes 0
Metric Value
wmc 9
eloc 30
dl 0
loc 51
ccs 21
cts 24
cp 0.875
rs 10
c 0
b 0
f 0

7 Methods

Rating   Name   Duplication   Size   Complexity  
A setMethodVariables() 0 2 1
A setClassContent() 0 2 1
A replaceMaskValues() 0 2 1
A parseMask() 0 3 1
A getNamesInMask() 0 5 2
A parseMaskArray() 0 9 2
A setPropertyVariables() 0 2 1
1
<?php
2
3
namespace Ubiquity\utils\yuml;
4
5
class Yuml {
6
	public static $classMask='[{classContent}]';
7
	public static $classSeparator='|';
8
	public static $memberSeparator=';';
9
	public static $parameterSeparator='‚';
10
	public static $parameterTypeSeparator=':';
11
	public static $groupeSeparator=",";
12
	public static $propertyMask='{access}{primary}{name}{type}';
13
	public static $methodMask='{access}{name}({parameters}){type}';
14
	public static $public='+';
15
	public static $protected='#';
16
	public static $private='-';
17
	public static $primary='«pk» ';
18
19 1
	public static function parseMask($element,$variable,$value) {
20 1
		$result=preg_replace('/(\{)'.$variable.'(\})/sim', $value, $element);
21 1
		return $result;
22
	}
23
24 1
	public static function parseMaskArray($element,$variables,$values) {
25 1
		$result=$element;
26 1
		$countValues=\sizeof($values);
27 1
		$maxVariables=\sizeof($variables)-1;
28 1
		for($i=0;$i<$countValues;$i++){
29 1
			$j=\min($maxVariables,$i);
30 1
			$result=self::parseMask($result, $variables[$j], $values[$i]);
31
		}
32 1
		return $result;
33
	}
34
35 1
	public static function getNamesInMask($mask){
36 1
		\preg_match_all('@\{(.*?)\}@sim', $mask,$matches);
37 1
		if(isset($matches[1]))
38 1
			return $matches[1];
39
		return [];
40
	}
41
42 1
	private static function replaceMaskValues($mask,$values){
43 1
		return self::parseMaskArray($mask, self::getNamesInMask($mask), $values);
44
	}
45
46 1
	public static function setPropertyVariables($values){
47 1
		return self::replaceMaskValues(self::$propertyMask, $values);
48
	}
49
50
	public static function setMethodVariables($values){
51
		return self::replaceMaskValues(self::$methodMask, $values);
52
	}
53
54 1
	public static function setClassContent($content){
55 1
		return self::parseMask(self::$classMask, 'classContent', $content);
56
	}
57
}
58