Skip to content

Commit 6fd63f8

Browse files
committed
added stylish method to FilesDiffCommand
1 parent 92f5093 commit 6fd63f8

File tree

1 file changed

+69
-6
lines changed

1 file changed

+69
-6
lines changed

src/FilesDiffCommand.php

Lines changed: 69 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,47 @@ private function normalizeData($data)
3838
return $normalizedValue;
3939
}
4040

41+
private function stylish(array $differenceContent): array
42+
{
43+
return array_map(
44+
function ($differenceItem) {
45+
$result = null;
46+
if (!strcmp($differenceItem["status"],"not changed")) {
47+
$result = " " .
48+
$differenceItem["fileKey"] .
49+
": " .
50+
$differenceItem["file1Content"] .
51+
"\n";
52+
} elseif (!strcmp($differenceItem["status"],"changed")) {
53+
$result = " - " .
54+
$differenceItem["fileKey"] .
55+
": " .
56+
$differenceItem["file1Content"] .
57+
"\n" .
58+
" + " .
59+
$differenceItem["fileKey"] .
60+
": " .
61+
$differenceItem["file2Content"] .
62+
"\n";
63+
} else if (!strcmp($differenceItem["status"],"added")) {
64+
$result = " + " .
65+
$differenceItem["fileKey"] .
66+
": " .
67+
$differenceItem["file2Content"] .
68+
"\n";
69+
} else if (!strcmp($differenceItem["status"],"deleted")) {
70+
$result = " - " .
71+
$differenceItem["fileKey"] .
72+
": " .
73+
$differenceItem["file1Content"] .
74+
"\n";
75+
}
76+
return $result;
77+
},
78+
$differenceContent
79+
);
80+
}
81+
4182
private function getDifference($contentListKeys, $file1Content, $file2Content): array
4283
{
4384
return array_map(
@@ -47,16 +88,35 @@ function ($fileKey) use ($file1Content, $file2Content) {
4788
array_key_exists($fileKey, $file1Content) &&
4889
!strcmp($file1Content[$fileKey], $file2Content[$fileKey])
4990
) {
50-
$result = " " . $fileKey . ": " . $file1Content[$fileKey] . "\n";
91+
$result = [
92+
"status" => "not changed",
93+
"fileKey" => $fileKey,
94+
"file1Content" => $file1Content[$fileKey],
95+
"file2Content" => $file1Content[$fileKey]
96+
];
5197
} elseif (array_key_exists($fileKey, $file1Content)) {
52-
$result = " - " . $fileKey . ": " . $file1Content[$fileKey] . "\n" .
53-
" + " . $fileKey . ": " . $file2Content[$fileKey] . "\n";
98+
$result = [
99+
"status" => "changed",
100+
"fileKey" => $fileKey,
101+
"file1Content" => $file1Content[$fileKey],
102+
"file2Content" => $file2Content[$fileKey]
103+
];
54104
} else {
55-
$result = " + " . $fileKey . ": " . $file2Content[$fileKey] . "\n";
105+
$result = [
106+
"status" => "added",
107+
"fileKey" => $fileKey,
108+
"file1Content" => null,
109+
"file2Content" => $file2Content[$fileKey]
110+
];
56111
}
57112
return $result;
58113
} else {
59-
return " - " . $fileKey . ": " . $file1Content[$fileKey] . "\n";
114+
return [
115+
"status" => "deleted",
116+
"fileKey" => $fileKey,
117+
"file1Content" => $file1Content[$fileKey],
118+
"file2Content" => null
119+
];
60120
}
61121
},
62122
$contentListKeys
@@ -121,11 +181,14 @@ public function execute(CommandInterface $command = null): CommandInterface
121181
$file1Keys = array_keys($file1Content);
122182
$file2Keys = array_keys($file2Content);
123183
$mergedFileKeys = array_unique(array_merge($file1Keys, $file2Keys));
124-
$this->filesDiffs = $this->getDifference(
184+
185+
$contentAnalysisResult = $this->getDifference(
125186
$mergedFileKeys,
126187
$file1Content,
127188
$file2Content
128189
);
190+
191+
$this->filesDiffs = $this->stylish($contentAnalysisResult);
129192
$this->filesDiffsString = "{\n" . implode("", $this->filesDiffs) . "}\n";
130193
}
131194

0 commit comments

Comments
 (0)