drupal/core/vendor/sebastian/diff
webchick da85a66183 Issue #2114823 by alexpott, neclimdul, Xano, cosmicdreams, chx: Update PHPUnit to 4.x. 2014-06-14 22:29:44 -07:00
..
build Issue #2114823 by alexpott, neclimdul, Xano, cosmicdreams, chx: Update PHPUnit to 4.x. 2014-06-14 22:29:44 -07:00
src Issue #2114823 by alexpott, neclimdul, Xano, cosmicdreams, chx: Update PHPUnit to 4.x. 2014-06-14 22:29:44 -07:00
tests Issue #2114823 by alexpott, neclimdul, Xano, cosmicdreams, chx: Update PHPUnit to 4.x. 2014-06-14 22:29:44 -07:00
.gitignore Issue #2114823 by alexpott, neclimdul, Xano, cosmicdreams, chx: Update PHPUnit to 4.x. 2014-06-14 22:29:44 -07:00
.travis.yml Issue #2114823 by alexpott, neclimdul, Xano, cosmicdreams, chx: Update PHPUnit to 4.x. 2014-06-14 22:29:44 -07:00
LICENSE Issue #2114823 by alexpott, neclimdul, Xano, cosmicdreams, chx: Update PHPUnit to 4.x. 2014-06-14 22:29:44 -07:00
README.md Issue #2114823 by alexpott, neclimdul, Xano, cosmicdreams, chx: Update PHPUnit to 4.x. 2014-06-14 22:29:44 -07:00
build.xml Issue #2114823 by alexpott, neclimdul, Xano, cosmicdreams, chx: Update PHPUnit to 4.x. 2014-06-14 22:29:44 -07:00
composer.json Issue #2114823 by alexpott, neclimdul, Xano, cosmicdreams, chx: Update PHPUnit to 4.x. 2014-06-14 22:29:44 -07:00
phpunit.xml.dist Issue #2114823 by alexpott, neclimdul, Xano, cosmicdreams, chx: Update PHPUnit to 4.x. 2014-06-14 22:29:44 -07:00

README.md

Diff

Diff implementation for PHP, factored out of PHPUnit into a stand-alone component.

Installation

You can use Composer or the PEAR Installer to download and install this package as well as its dependencies.

Composer

To add this package as a local, per-project dependency to your project, simply add a dependency on sebastian/diff to your project's composer.json file. Here is a minimal example of a composer.json file that just defines a dependency on Diff:

{
    "require": {
        "sebastian/diff": "*"
    }
}

PEAR Installer

The following two commands (which you may have to run as root) are all that is required to install this package using the PEAR Installer:

pear config-set auto_discover 1
pear install pear.phpunit.de/Diff

Usage

The Differ class can be used to generate a textual representation of the difference between two strings:

use SebastianBergmann\Diff\Differ;

$differ = new Differ;
print $differ->diff('foo', 'bar');

The code above yields the output below:

--- Original
+++ New
@@ @@
-foo
+bar

The Parser class can be used to parse a unified diff into an object graph:

use SebastianBergmann\Diff\Parser;
use SebastianBergmann\Git;

$git = new Git('/usr/local/src/money');

$diff = $git->getDiff(
  '948a1a07768d8edd10dcefa8315c1cbeffb31833',
  'c07a373d2399f3e686234c4f7f088d635eb9641b'
);

$parser = new Parser;

print_r($parser->parse($diff));

The code above yields the output below:

Array
(
    [0] => SebastianBergmann\Diff\Diff Object
        (
            [from:SebastianBergmann\Diff\Diff:private] => a/tests/MoneyTest.php
            [to:SebastianBergmann\Diff\Diff:private] => b/tests/MoneyTest.php
            [chunks:SebastianBergmann\Diff\Diff:private] => Array
                (
                    [0] => SebastianBergmann\Diff\Chunk Object
                        (
                            [start:SebastianBergmann\Diff\Chunk:private] => 87
                            [startRange:SebastianBergmann\Diff\Chunk:private] => 7
                            [end:SebastianBergmann\Diff\Chunk:private] => 87
                            [endRange:SebastianBergmann\Diff\Chunk:private] => 7
                            [lines:SebastianBergmann\Diff\Chunk:private] => Array
                                (
                                    [0] => SebastianBergmann\Diff\Line Object
                                        (
                                            [type:SebastianBergmann\Diff\Line:private] => 3
                                            [content:SebastianBergmann\Diff\Line:private] =>      * @covers SebastianBergmann\Money\Money::add
                                        )

                                    [1] => SebastianBergmann\Diff\Line Object
                                        (
                                            [type:SebastianBergmann\Diff\Line:private] => 3
                                            [content:SebastianBergmann\Diff\Line:private] =>      * @covers SebastianBergmann\Money\Money::newMoney
                                        )

                                    [2] => SebastianBergmann\Diff\Line Object
                                        (
                                            [type:SebastianBergmann\Diff\Line:private] => 3
                                            [content:SebastianBergmann\Diff\Line:private] =>      */
                                        )

                                    [3] => SebastianBergmann\Diff\Line Object
                                        (
                                            [type:SebastianBergmann\Diff\Line:private] => 2
                                            [content:SebastianBergmann\Diff\Line:private] =>     public function testAnotherMoneyWithSameCurrencyObjectCanBeAdded()
                                        )

                                    [4] => SebastianBergmann\Diff\Line Object
                                        (
                                            [type:SebastianBergmann\Diff\Line:private] => 1
                                            [content:SebastianBergmann\Diff\Line:private] =>     public function testAnotherMoneyObjectWithSameCurrencyCanBeAdded()
                                        )

                                    [5] => SebastianBergmann\Diff\Line Object
                                        (
                                            [type:SebastianBergmann\Diff\Line:private] => 3
                                            [content:SebastianBergmann\Diff\Line:private] =>     {
                                        )

                                    [6] => SebastianBergmann\Diff\Line Object
                                        (
                                            [type:SebastianBergmann\Diff\Line:private] => 3
                                            [content:SebastianBergmann\Diff\Line:private] =>         $a = new Money(1, new Currency('EUR'));
                                        )

                                    [7] => SebastianBergmann\Diff\Line Object
                                        (
                                            [type:SebastianBergmann\Diff\Line:private] => 3
                                            [content:SebastianBergmann\Diff\Line:private] =>         $b = new Money(2, new Currency('EUR'));
                                        )

                                )

                        )

                )

        )

)