StarRemover::decorate()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 16
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 16
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 6
nc 1
nop 1
1
<?php
2
3
/**
4
 * This software package is licensed under `AGPL, Commercial` license[s].
5
 *
6
 * @package maslosoft/zamm
7
 * @license AGPL, Commercial
8
 *
9
 * @copyright Copyright (c) Peter Maselkowski <[email protected]>
10
 * @link https://maslosoft.com/zamm/
11
 */
12
13
namespace Maslosoft\Zamm\Decorators;
14
15
use Maslosoft\Zamm\Interfaces\Decorators\RendererDecoratorInterface;
16
17
/**
18
 * Remove stars `*` which surrounds php doc comments, like this one.
19
 *
20
 * @author Piotr Maselkowski <pmaselkowski at gmail.com>
21
 */
22
class StarRemover extends RendererDecorator implements RendererDecoratorInterface
23
{
24
25
	public function decorate(&$docComment)
26
	{
27
		$docComment = trim($docComment);
28
29
		// Remove leading slash
30
		$docComment = preg_replace('~^/~ms', '', $docComment);
31
32
		// Remove trailing slash
33
		$docComment = preg_replace('~/$~ms', '', $docComment);
34
35
		// Remove stars and one space
36
		$docComment = preg_replace('~^\s*\**~ms', '', $docComment);
37
38
		// Remove leading spaces. Other whitespace must be preserved.
39
		$docComment = preg_replace('~^ {1}~ms', '', $docComment);
40
	}
41
42
}
43