HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/SBogers10/eleo.komma.nl/vendor/jean85/pretty-package-versions/src/Version.php
<?php

namespace Jean85;

class Version
{
    const SHORT_COMMIT_LENGTH = PrettyVersions::SHORT_COMMIT_LENGTH;

    /** @var string */
    private $packageName;

    /** @var string */
    private $shortVersion;

    /** @var string */
    private $commitHash;

    /** @var bool */
    private $versionIsTagged;

    public function __construct(string $packageName, string $version)
    {
        $this->packageName = $packageName;
        $splittedVersion = explode('@', $version);
        $this->shortVersion = $splittedVersion[0];
        $this->commitHash = $splittedVersion[1];
        $this->versionIsTagged = preg_match('/[^v\d\.]/', $this->getShortVersion()) === 0;
    }

    public function getPrettyVersion(): string
    {
        if ($this->versionIsTagged) {
            return $this->getShortVersion();
        }

        return $this->getVersionWithShortCommit();
    }

    public function getFullVersion(): string
    {
        return $this->getShortVersion() . '@' . $this->getCommitHash();
    }

    public function getVersionWithShortCommit(): string
    {
        return $this->getShortVersion() . '@' . $this->getShortCommitHash();
    }

    public function getPackageName(): string
    {
        return $this->packageName;
    }

    public function getShortVersion(): string
    {
        return $this->shortVersion;
    }

    public function getCommitHash(): string
    {
        return $this->commitHash;
    }

    public function getShortCommitHash(): string
    {
        return substr($this->commitHash, 0, self::SHORT_COMMIT_LENGTH);
    }

    public function __toString(): string
    {
        return $this->getPrettyVersion();
    }
}