private function assertSummaryProseParts($old, $new, array $expect_parts, $label)
 {
     $engine = new PhutilProseDifferenceEngine();
     $diff = $engine->getDiff($old, $new);
     $parts = $diff->getSummaryParts();
     $this->assertParts($expect_parts, $parts, $label);
 }
 private function buildDiff()
 {
     $engine = new PhutilProseDifferenceEngine();
     return $engine->getDiff($this->oldText, $this->newText);
 }
Example #3
0
$args->setSynopsis(<<<EOHELP
**prosediff.php** __old__ __new__ [__options__]
    Diff two prose files.

EOHELP
);
$args->parseStandardArguments();
$args->parse(array(array('name' => 'files', 'wildcard' => true)));
$files = $args->getArg('files');
if (count($files) !== 2) {
    $args->printHelpAndExit();
}
$old_file = head($files);
$new_file = last($files);
$old_data = Filesystem::readFile($old_file);
$new_data = Filesystem::readFile($new_file);
$engine = new PhutilProseDifferenceEngine();
$prose_diff = $engine->getDiff($old_data, $new_data);
foreach ($prose_diff->getParts() as $part) {
    switch ($part['type']) {
        case '-':
            echo tsprintf('<bg:red>%B</bg>', $part['text']);
            break;
        case '+':
            echo tsprintf('<bg:green>%B</bg>', $part['text']);
            break;
        case '=':
            echo tsprintf('%B', $part['text']);
            break;
    }
}