/**
  * @param Diff $diff A Diff object.
  *
  * @return array[] List of associative arrays, each describing a difference.
  */
 public function format($diff)
 {
     $oldline = 1;
     $newline = 1;
     $retval = [];
     foreach ($diff->getEdits() as $edit) {
         switch ($edit->getType()) {
             case 'add':
                 foreach ($edit->getClosing() as $line) {
                     $retval[] = ['action' => 'add', 'new' => $line, 'newline' => $newline++];
                 }
                 break;
             case 'delete':
                 foreach ($edit->getOrig() as $line) {
                     $retval[] = ['action' => 'delete', 'old' => $line, 'oldline' => $oldline++];
                 }
                 break;
             case 'change':
                 foreach ($edit->getOrig() as $key => $line) {
                     $retval[] = ['action' => 'change', 'old' => $line, 'new' => $edit->getClosing($key), 'oldline' => $oldline++, 'newline' => $newline++];
                 }
                 break;
             case 'copy':
                 $oldline += count($edit->getOrig());
                 $newline += count($edit->getOrig());
         }
     }
     return $retval;
 }
Example #2
0
 /**
  * @covers Diff::getEdits
  */
 public function testGetEdits()
 {
     $obj = new Diff([], []);
     $obj->edits = 'FooBarBaz';
     $this->assertEquals('FooBarBaz', $obj->getEdits());
 }