TextReporter::generate()   A
last analyzed

Complexity

Conditions 5
Paths 5

Size

Total Lines 28
Code Lines 16

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 30

Importance

Changes 2
Bugs 0 Features 0
Metric Value
cc 5
eloc 16
c 2
b 0
f 0
nc 5
nop 1
dl 0
loc 28
ccs 0
cts 23
cp 0
crap 30
rs 9.4222
1
<?php
2
/**
3
 * This file is part of the Code-Insight library.
4
 * For the full copyright and license information, please view
5
 * the LICENSE file that was distributed with this source code.
6
 *
7
 * @copyright Alexander Obuhovich <[email protected]>
8
 * @link      https://github.com/console-helpers/code-insight
9
 */
10
11
namespace ConsoleHelpers\CodeInsight\BackwardsCompatibility\Reporter;
12
13
14
class TextReporter extends AbstractReporter
15
{
16
17
	/**
18
	 * Returns reporter name.
19
	 *
20
	 * @return string
21
	 */
22
	public function getName()
23
	{
24
		return 'text';
25
	}
26
27
	/**
28
	 * Generates report.
29
	 *
30
	 * @param array $bc_breaks BC breaks.
31
	 *
32
	 * @return string
33
	 */
34
	public function generate(array $bc_breaks)
35
	{
36
		if ( !$bc_breaks ) {
0 ignored issues
show
Bug Best Practice introduced by
The expression $bc_breaks of type array is implicitly converted to a boolean; are you sure this is intended? If so, consider using empty($expr) instead to make it clear that you intend to check for an array without elements.

This check marks implicit conversions of arrays to boolean values in a comparison. While in PHP an empty array is considered to be equal (but not identical) to false, this is not always apparent.

Consider making the comparison explicit by using empty(..) or ! empty(...) instead.

Loading history...
37
			return 'No backwards compatibility breaks detected.';
38
		}
39
40
		$ret = 'Backward compatibility breaks:' . PHP_EOL;
41
42
		foreach ( $this->groupByType($bc_breaks) as $bc_break => $incidents ) {
43
			$ret .= PHP_EOL;
44
45
			$bc_break = ucwords(str_replace(array('.', '_'), ' ', $bc_break));
46
			$ret .= '<fg=red>=== ' . $bc_break . ' (' . count($incidents) . ') ===</>' . PHP_EOL;
47
48
			foreach ( $this->sortByElement($incidents) as $incident_data ) {
49
				if ( array_key_exists('old', $incident_data) ) {
50
					$ret .= ' * <fg=white;options=bold>' . $incident_data['element'] . '</>' . PHP_EOL;
51
					$ret .= '   OLD: ' . $incident_data['old'] . PHP_EOL;
52
					$ret .= '   NEW: ' . $incident_data['new'] . PHP_EOL;
53
					$ret .= PHP_EOL;
54
				}
55
				else {
56
					$ret .= ' * ' . $incident_data['element'] . PHP_EOL;
57
				}
58
			}
59
		}
60
61
		return $ret;
62
	}
63
64
}
65