Pyrech\ComposerChangelogs\OperationHandler\UpdateHandler::getOutput PHP Method

getOutput() public method

public getOutput ( Composer\DependencyResolver\Operation\OperationInterface $operation, Pyrech\ComposerChangelogs\UrlGenerator\UrlGenerator $urlGenerator = null )
$operation Composer\DependencyResolver\Operation\OperationInterface
$urlGenerator Pyrech\ComposerChangelogs\UrlGenerator\UrlGenerator
    public function getOutput(OperationInterface $operation, UrlGenerator $urlGenerator = null)
    {
        if (!$operation instanceof UpdateOperation) {
            throw new \LogicException('Operation should be an instance of UpdateOperation');
        }
        $output = [];
        $initialPackage = $operation->getInitialPackage();
        $targetPackage = $operation->getTargetPackage();
        $versionFrom = new Version($initialPackage->getVersion(), $initialPackage->getPrettyVersion(), method_exists($initialPackage, 'getFullPrettyVersion') ? $initialPackage->getFullPrettyVersion() : VersionParser::formatVersion($initialPackage));
        $versionTo = new Version($targetPackage->getVersion(), $targetPackage->getPrettyVersion(), method_exists($targetPackage, 'getFullPrettyVersion') ? $targetPackage->getFullPrettyVersion() : VersionParser::formatVersion($targetPackage));
        $action = 'updated';
        if (Comparator::greaterThan($versionFrom->getName(), $versionTo->getName())) {
            $action = 'downgraded';
        }
        $output[] = sprintf(' - <fg=green>%s</fg=green> %s from <fg=yellow>%s</fg=yellow> to <fg=yellow>%s</fg=yellow>', $initialPackage->getName(), $action, $versionFrom->getPretty(), $versionTo->getPretty());
        if ($urlGenerator) {
            $compareUrl = $urlGenerator->generateCompareUrl($initialPackage->getSourceUrl(), $versionFrom, $targetPackage->getSourceUrl(), $versionTo);
            if (!empty($compareUrl)) {
                $output[] = sprintf('   See changes: %s', $compareUrl);
            }
            $releaseUrl = $urlGenerator->generateReleaseUrl($this->extractSourceUrl($operation), $versionTo);
            if (!empty($releaseUrl)) {
                $output[] = sprintf('   Release notes: %s', $releaseUrl);
            }
        }
        return $output;
    }

Usage Example

 public function test_it_uses_correct_action_name()
 {
     $package1 = new Package('acme/my-project1', 'v1.0.0.0', 'v1.0.0');
     $package2 = new Package('acme/my-project2', 'v1.0.1.0', 'v1.0.1');
     $operationUpdate = new UpdateOperation($package1, $package2);
     $expectedOutput = [' - <fg=green>acme/my-project1</fg=green> updated from <fg=yellow>v1.0.0</fg=yellow> to <fg=yellow>v1.0.1</fg=yellow>'];
     $this->assertSame($expectedOutput, $this->SUT->getOutput($operationUpdate, null));
     $operationDowngrade = new UpdateOperation($package2, $package1);
     $expectedOutput = [' - <fg=green>acme/my-project2</fg=green> downgraded from <fg=yellow>v1.0.1</fg=yellow> to <fg=yellow>v1.0.0</fg=yellow>'];
     $this->assertSame($expectedOutput, $this->SUT->getOutput($operationDowngrade, null));
 }
All Usage Examples Of Pyrech\ComposerChangelogs\OperationHandler\UpdateHandler::getOutput