10
10
use a9f \Fractor \Application \ValueObject \File ;
11
11
use a9f \Fractor \Configuration \ValueObject \Configuration ;
12
12
use a9f \Fractor \Console \Contract \Output ;
13
+ use a9f \Fractor \Differ \ValueObject \FileDiff ;
13
14
use a9f \Fractor \Differ \ValueObjectFactory \FileDiffFactory ;
14
15
use a9f \Fractor \FileSystem \FilesFinder ;
15
- use a9f \Fractor \Reporting \FractorsChangelogLinesResolver ;
16
+ use a9f \Fractor \ValueObject \FileProcessResult ;
17
+ use a9f \Fractor \ValueObject \ProcessResult ;
16
18
use Nette \Utils \FileSystem ;
17
19
use Webmozart \Assert \Assert ;
18
20
26
28
* @param iterable<FileProcessor<FractorRule>> $processors
27
29
*/
28
30
public function __construct (
29
- private FractorsChangelogLinesResolver $ fractorsChangelogLinesResolver ,
30
31
private FilesFinder $ fileFinder ,
31
32
private FilesCollector $ fileCollector ,
32
33
private iterable $ processors ,
@@ -37,14 +38,17 @@ public function __construct(
37
38
Assert::allIsInstanceOf ($ this ->processors , FileProcessor::class);
38
39
}
39
40
40
- public function run (Output $ output , Configuration $ configuration ): void
41
+ public function run (Output $ output , Configuration $ configuration ): ProcessResult
41
42
{
42
43
$ filePaths = $ this ->fileFinder ->findFiles ($ configuration ->getPaths (), $ configuration ->getFileExtensions ());
43
44
44
45
if (! $ configuration ->isQuiet ()) {
45
46
$ output ->progressStart (count ($ filePaths ));
46
47
}
47
48
49
+ /** @var FileDiff[] $fileDiffs */
50
+ $ fileDiffs = [];
51
+
48
52
foreach ($ filePaths as $ filePath ) {
49
53
$ file = new File ($ filePath , FileSystem::read ($ filePath ));
50
54
$ this ->fileCollector ->addFile ($ file );
@@ -67,6 +71,12 @@ public function run(Output $output, Configuration $configuration): void
67
71
}
68
72
69
73
$ file ->setFileDiff ($ this ->fileDiffFactory ->createFileDiff ($ file ));
74
+
75
+ $ fileProcessResult = new FileProcessResult ($ file ->getFileDiff ());
76
+ $ currentFileDiff = $ fileProcessResult ->getFileDiff ();
77
+ if ($ currentFileDiff instanceof FileDiff) {
78
+ $ fileDiffs [] = $ currentFileDiff ;
79
+ }
70
80
}
71
81
72
82
if (! $ configuration ->isQuiet ()) {
@@ -78,24 +88,14 @@ public function run(Output $output, Configuration $configuration): void
78
88
continue ;
79
89
}
80
90
81
- if (! $ configuration ->isQuiet ()) {
82
- $ output ->write ($ file ->getFileDiff ()->getDiffConsoleFormatted ());
83
- if ($ file ->getAppliedRules () !== []) {
84
- $ fractorsChangelogsLines = $ this ->fractorsChangelogLinesResolver ->createFractorChangelogLines (
85
- $ file ->getAppliedRules ()
86
- );
87
- $ output ->write ('<options=underscore>Applied rules:</> ' );
88
- $ output ->listing ($ fractorsChangelogsLines );
89
- $ output ->newLine ();
90
- }
91
- }
92
-
93
91
if ($ configuration ->isDryRun ()) {
94
92
continue ;
95
93
}
96
94
97
95
$ this ->fileWriter ->write ($ file );
98
96
}
97
+
98
+ return new ProcessResult ($ fileDiffs );
99
99
}
100
100
101
101
/**
0 commit comments