Skip to content

Commit 6106fac

Browse files
committed
Extracted reporter output to Reporter/Reporter.
1 parent ef27158 commit 6106fac

File tree

2 files changed

+49
-34
lines changed

2 files changed

+49
-34
lines changed

src/PHPSemVerChecker/Console/Command/CompareCommand.php

Lines changed: 2 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
use File_Iterator_Facade;
66
use PHPSemVerChecker\Registry\Registry;
7+
use PHPSemVerChecker\Reporter\Reporter;
78
use PHPSemVerChecker\Scanner\Scanner;
89
use Symfony\Component\Console\Command\Command;
910
use Symfony\Component\Console\Helper\ProgressBar;
@@ -51,40 +52,7 @@ protected function execute(InputInterface $input, OutputInterface $output)
5152
$beforeRegistry = $beforeScanner->getRegistry();
5253
$afterRegistry = $afterScanner->getRegistry();
5354

54-
$differences = $beforeRegistry->compare($afterRegistry);
55-
56-
$suggestedChange = Registry::NONE;
57-
foreach ([Registry::MAJOR, Registry::MINOR, Registry::PATCH, Registry::NONE] as $level) {
58-
if ( ! empty($differences['function'][$level]) || ! empty($differences['class'][$level])) {
59-
$suggestedChange = $level;
60-
break;
61-
}
62-
}
63-
64-
$output->writeln(''); // line clear
65-
$output->writeln('Suggested semantic versioning change: ' . Registry::levelToString($suggestedChange));
66-
67-
$output->writeln(''); // line clear
68-
$output->writeln('CLASS');
69-
$output->writeln("LEVEL\tLOCATION\tREASON");
70-
71-
foreach ([Registry::MAJOR, Registry::MINOR, Registry::PATCH, Registry::NONE] as $level) {
72-
$differencesForLevel = $differences['class'][$level];
73-
foreach ($differencesForLevel as $difference) {
74-
$output->writeln(Registry::levelToString($level) . "\t" . $difference['location'] . "\t" . $difference['reason']);
75-
}
76-
}
77-
78-
$output->writeln(''); // line clear
79-
$output->writeln('FUNCTION');
80-
$output->writeln("LEVEL\tLOCATION\tREASON");
81-
82-
foreach ([Registry::MAJOR, Registry::MINOR, Registry::PATCH, Registry::NONE] as $level) {
83-
$differencesForLevel = $differences['function'][$level];
84-
foreach ($differencesForLevel as $difference) {
85-
$output->writeln(Registry::levelToString($level) . "\t" . $difference['location'] . "\t" . $difference['reason']);
86-
}
87-
}
55+
$reporter = new Reporter($beforeRegistry, $afterRegistry, $output);
8856
}
8957

9058
protected function fileScanner($pattern)
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
<?php
2+
3+
namespace PHPSemVerChecker\Reporter;
4+
5+
use PHPSemVerChecker\Registry\Registry;
6+
use Symfony\Component\Console\Output\OutputInterface;
7+
8+
class Reporter
9+
{
10+
public function output(Registry $beforeRegistry, Registry $afterRegistry, OutputInterface $output)
11+
{
12+
$differences = $beforeRegistry->compare($afterRegistry);
13+
14+
$suggestedChange = Registry::NONE;
15+
foreach ([Registry::MAJOR, Registry::MINOR, Registry::PATCH, Registry::NONE] as $level) {
16+
if ( ! empty($differences['function'][$level]) || ! empty($differences['class'][$level])) {
17+
$suggestedChange = $level;
18+
break;
19+
}
20+
}
21+
22+
$output->writeln(''); // line clear
23+
$output->writeln('Suggested semantic versioning change: ' . Registry::levelToString($suggestedChange));
24+
25+
$output->writeln(''); // line clear
26+
$output->writeln('CLASS');
27+
$output->writeln("LEVEL\tLOCATION\tREASON");
28+
29+
foreach ([Registry::MAJOR, Registry::MINOR, Registry::PATCH, Registry::NONE] as $level) {
30+
$differencesForLevel = $differences['class'][$level];
31+
foreach ($differencesForLevel as $difference) {
32+
$output->writeln(Registry::levelToString($level) . "\t" . $difference['location'] . "\t" . $difference['reason']);
33+
}
34+
}
35+
36+
$output->writeln(''); // line clear
37+
$output->writeln('FUNCTION');
38+
$output->writeln("LEVEL\tLOCATION\tREASON");
39+
40+
foreach ([Registry::MAJOR, Registry::MINOR, Registry::PATCH, Registry::NONE] as $level) {
41+
$differencesForLevel = $differences['function'][$level];
42+
foreach ($differencesForLevel as $difference) {
43+
$output->writeln(Registry::levelToString($level) . "\t" . $difference['location'] . "\t" . $difference['reason']);
44+
}
45+
}
46+
}
47+
}

0 commit comments

Comments
 (0)