Skip to content

Commit

Permalink
Enhancement: Rename package
Browse files Browse the repository at this point in the history
  • Loading branch information
localheinz committed Sep 7, 2019
1 parent d7e7810 commit db9e577
Show file tree
Hide file tree
Showing 43 changed files with 114 additions and 301 deletions.
19 changes: 11 additions & 8 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,23 +1,26 @@
language: php

env:
global:
- secure: "Qh1la5ftgwh6pGgNZaAxnCdIIj8sANQifZYtHubaOeadSj1IjNndfgVtYBr2sx+ID/CO5DcLsVvpZJgyDIO8+jGCCXAxWiaXcMoEEc38CJpW+aQfhoZ15gkAHrmWh1u9T8fcrCizjtq7OzUS7Huc8D7g1uGFieP5PR//ywFOH3Gn9J2tzJwxIJoq0hqIBcW/BmbNVbHr9WFyU1L6L/lTLVgt9xadypo0Y3B36vkOPuq5TsqoJ+rbmLWRn2KGK2/PXzuNEfSRV2HGaYtyyYtLKYr3F+Dem7ckF6Zyjh6QqfHECxZkywdBRx/8SztZJAa0cUwIMSllBkYon4aLfSWvyRQJWEbZhCUFEacJIF8mZnhi/rXNakbJOySqiQWBL2PFJ0K51nWbHfYKNS71Z5chXav6dkQSxXKCDzARXmx3L8rpIJ2tXuWmcnR0Zn11EDzaPp65IpL1W3zlAxEKCmfW1XKiU8n0D72/8fqTXgrbbJ62VieclSW0rqJLXj040+r6zHACNJ1DN6UAuvanSnQ/CeewtFLlYxzt1QfROb5gKRTFsg4Dk3Lg1gEn6ZLPsrmvILxzLJV0C9UjRowlJ72EFE1TiRsXyMxW80I2CrPOtOrEswV5yHhZlZsT3SpBqtixr/o2dNtoogzbzarGL/vH9tmKH115LamzenpU0ZYCXnU="

cache:
directories:
- $HOME/.composer/cache

php:
- 7.1
- 7.2
- 7.3
- 7.4snapshot

before_install:
- composer self-update
- composer clear-cache
- phpenv config-rm xdebug.ini

install:
- travis_retry composer update --no-interaction --no-ansi --no-progress --no-suggest --optimize-autoloader --prefer-stable
- composer update --no-ansi --no-interaction --no-progress --no-suggest --optimize-autoloader --prefer-stable

script:
- ./vendor/bin/phpunit --coverage-clover=coverage.xml

after_success:
- bash <(curl -s https://codecov.io/bash)
- ./vendor/bin/phpunit

notifications:
email: false
Expand Down
196 changes: 3 additions & 193 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,195 +1,5 @@
# sebastian/diff
# localheinz/diff

Diff implementation for PHP, factored out of PHPUnit into a stand-alone component.
This is a fork of [`sebastian/diff`](https://github.com/sebastianbergmann/diff) for use with [`localheinz/composer-normalize`](https://github.com/localheinz/composer-normalize), with permission from Sebastian Bergmann.

## Installation

You can add this library as a local, per-project dependency to your project using [Composer](https://getcomposer.org/):

composer require sebastian/diff

If you only need this library during development, for instance to run your project's test suite, then you should add it as a development-time dependency:

composer require --dev sebastian/diff

### Usage

#### Generating diff

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

```php
<?php
use SebastianBergmann\Diff\Differ;

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

The code above yields the output below:
```diff
--- Original
+++ New
@@ @@
-foo
+bar
```

There are three output builders available in this package:

#### UnifiedDiffOutputBuilder

This is default builder, which generates the output close to udiff and is used by PHPUnit.

```php
<?php

use SebastianBergmann\Diff\Differ;
use SebastianBergmann\Diff\Output\UnifiedDiffOutputBuilder;

$builder = new UnifiedDiffOutputBuilder(
"--- Original\n+++ New\n", // custom header
false // do not add line numbers to the diff
);

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

#### StrictUnifiedDiffOutputBuilder

Generates (strict) Unified diff's (unidiffs) with hunks,
similar to `diff -u` and compatible with `patch` and `git apply`.

```php
<?php

use SebastianBergmann\Diff\Differ;
use SebastianBergmann\Diff\Output\StrictUnifiedDiffOutputBuilder;

$builder = new StrictUnifiedDiffOutputBuilder([
'collapseRanges' => true, // ranges of length one are rendered with the trailing `,1`
'commonLineThreshold' => 6, // number of same lines before ending a new hunk and creating a new one (if needed)
'contextLines' => 3, // like `diff: -u, -U NUM, --unified[=NUM]`, for patch/git apply compatibility best to keep at least @ 3
'fromFile' => null,
'fromFileDate' => null,
'toFile' => null,
'toFileDate' => null,
]);

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

#### DiffOnlyOutputBuilder

Output only the lines that differ.

```php
<?php

use SebastianBergmann\Diff\Differ;
use SebastianBergmann\Diff\Output\DiffOnlyOutputBuilder;

$builder = new DiffOnlyOutputBuilder(
"--- Original\n+++ New\n"
);

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

#### DiffOutputBuilderInterface

You can pass any output builder to the `Differ` class as longs as it implements the `DiffOutputBuilderInterface`.

#### Parsing diff

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

```php
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'));
)
)
)
)
)
)
Please use [`sebastian/diff`](https://github.com/sebastianbergmann/diff) instead.
4 changes: 2 additions & 2 deletions composer.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "sebastian/diff",
"description": "Diff implementation",
"name": "localheinz/diff",
"description": "Fork of sebastian/diff for use with localheinz/composer-normalize",
"keywords": ["diff", "udiff", "unidiff", "unified diff"],
"homepage": "https://github.com/sebastianbergmann/diff",
"license": "BSD-3-Clause",
Expand Down
2 changes: 1 addition & 1 deletion phpunit.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/7.2/phpunit.xsd"
xsi:noNamespaceSchemaLocation="vendor/phpunit/phpunit/phpunit.xsd"
bootstrap="vendor/autoload.php"
forceCoversAnnotation="true"
beStrictAboutCoversAnnotation="true"
Expand Down
2 changes: 1 addition & 1 deletion src/Chunk.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
* file that was distributed with this source code.
*/

namespace SebastianBergmann\Diff;
namespace Localheinz\Diff;

final class Chunk
{
Expand Down
2 changes: 1 addition & 1 deletion src/Diff.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
* file that was distributed with this source code.
*/

namespace SebastianBergmann\Diff;
namespace Localheinz\Diff;

final class Diff
{
Expand Down
6 changes: 3 additions & 3 deletions src/Differ.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@
* file that was distributed with this source code.
*/

namespace SebastianBergmann\Diff;
namespace Localheinz\Diff;

use SebastianBergmann\Diff\Output\DiffOutputBuilderInterface;
use SebastianBergmann\Diff\Output\UnifiedDiffOutputBuilder;
use Localheinz\Diff\Output\DiffOutputBuilderInterface;
use Localheinz\Diff\Output\UnifiedDiffOutputBuilder;

/**
* Diff implementation.
Expand Down
2 changes: 1 addition & 1 deletion src/Exception/ConfigurationException.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
* file that was distributed with this source code.
*/

namespace SebastianBergmann\Diff;
namespace Localheinz\Diff;

final class ConfigurationException extends InvalidArgumentException
{
Expand Down
2 changes: 1 addition & 1 deletion src/Exception/Exception.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
* file that was distributed with this source code.
*/

namespace SebastianBergmann\Diff;
namespace Localheinz\Diff;

interface Exception
{
Expand Down
2 changes: 1 addition & 1 deletion src/Exception/InvalidArgumentException.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
* file that was distributed with this source code.
*/

namespace SebastianBergmann\Diff;
namespace Localheinz\Diff;

class InvalidArgumentException extends \InvalidArgumentException implements Exception
{
Expand Down
2 changes: 1 addition & 1 deletion src/Line.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
* file that was distributed with this source code.
*/

namespace SebastianBergmann\Diff;
namespace Localheinz\Diff;

final class Line
{
Expand Down
2 changes: 1 addition & 1 deletion src/LongestCommonSubsequenceCalculator.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
* file that was distributed with this source code.
*/

namespace SebastianBergmann\Diff;
namespace Localheinz\Diff;

interface LongestCommonSubsequenceCalculator
{
Expand Down
2 changes: 1 addition & 1 deletion src/MemoryEfficientLongestCommonSubsequenceCalculator.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
* file that was distributed with this source code.
*/

namespace SebastianBergmann\Diff;
namespace Localheinz\Diff;

final class MemoryEfficientLongestCommonSubsequenceCalculator implements LongestCommonSubsequenceCalculator
{
Expand Down
2 changes: 1 addition & 1 deletion src/Output/AbstractChunkOutputBuilder.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
* file that was distributed with this source code.
*/

namespace SebastianBergmann\Diff\Output;
namespace Localheinz\Diff\Output;

abstract class AbstractChunkOutputBuilder implements DiffOutputBuilderInterface
{
Expand Down
4 changes: 2 additions & 2 deletions src/Output/DiffOnlyOutputBuilder.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@
* file that was distributed with this source code.
*/

namespace SebastianBergmann\Diff\Output;
namespace Localheinz\Diff\Output;

use SebastianBergmann\Diff\Differ;
use Localheinz\Diff\Differ;

/**
* Builds a diff string representation in a loose unified diff format
Expand Down
2 changes: 1 addition & 1 deletion src/Output/DiffOutputBuilderInterface.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
* file that was distributed with this source code.
*/

namespace SebastianBergmann\Diff\Output;
namespace Localheinz\Diff\Output;

/**
* Defines how an output builder should take a generated
Expand Down
6 changes: 3 additions & 3 deletions src/Output/StrictUnifiedDiffOutputBuilder.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@
* file that was distributed with this source code.
*/

namespace SebastianBergmann\Diff\Output;
namespace Localheinz\Diff\Output;

use SebastianBergmann\Diff\ConfigurationException;
use SebastianBergmann\Diff\Differ;
use Localheinz\Diff\ConfigurationException;
use Localheinz\Diff\Differ;

/**
* Strict Unified diff output builder.
Expand Down
4 changes: 2 additions & 2 deletions src/Output/UnifiedDiffOutputBuilder.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@
* file that was distributed with this source code.
*/

namespace SebastianBergmann\Diff\Output;
namespace Localheinz\Diff\Output;

use SebastianBergmann\Diff\Differ;
use Localheinz\Diff\Differ;

/**
* Builds a diff string representation in unified diff format in chunks.
Expand Down

0 comments on commit db9e577

Please sign in to comment.