diff vendor/phar-io/version/src/VersionConstraintValue.php @ 2:5311817fb629

Theme updates
author Chris Cannam
date Tue, 10 Jul 2018 13:19:18 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/phar-io/version/src/VersionConstraintValue.php	Tue Jul 10 13:19:18 2018 +0000
@@ -0,0 +1,123 @@
+<?php
+namespace PharIo\Version;
+
+class VersionConstraintValue
+{
+    /**
+     * @var VersionNumber
+     */
+    private $major;
+
+    /**
+     * @var VersionNumber
+     */
+    private $minor;
+
+    /**
+     * @var VersionNumber
+     */
+    private $patch;
+
+    /**
+     * @var string
+     */
+    private $label = '';
+
+    /**
+     * @var string
+     */
+    private $buildMetaData = '';
+
+    /**
+     * @var string
+     */
+    private $versionString = '';
+
+    /**
+     * @param string $versionString
+     */
+    public function __construct($versionString) {
+        $this->versionString = $versionString;
+
+        $this->parseVersion($versionString);
+    }
+
+    /**
+     * @param $versionString
+     */
+    private function parseVersion($versionString) {
+        $this->extractBuildMetaData($versionString);
+        $this->extractLabel($versionString);
+
+        $versionSegments = explode('.', $versionString);
+        $this->major     = new VersionNumber($versionSegments[0]);
+
+        $minorValue = isset($versionSegments[1]) ? $versionSegments[1] : null;
+        $patchValue = isset($versionSegments[2]) ? $versionSegments[2] : null;
+
+        $this->minor = new VersionNumber($minorValue);
+        $this->patch = new VersionNumber($patchValue);
+    }
+
+    /**
+     * @param string $versionString
+     */
+    private function extractBuildMetaData(&$versionString) {
+        if (preg_match('/\+(.*)/', $versionString, $matches) == 1) {
+            $this->buildMetaData = $matches[1];
+            $versionString       = str_replace($matches[0], '', $versionString);
+        }
+    }
+
+    /**
+     * @param string $versionString
+     */
+    private function extractLabel(&$versionString) {
+        if (preg_match('/\-(.*)/', $versionString, $matches) == 1) {
+            $this->label   = $matches[1];
+            $versionString = str_replace($matches[0], '', $versionString);
+        }
+    }
+
+    /**
+     * @return string
+     */
+    public function getLabel() {
+        return $this->label;
+    }
+
+    /**
+     * @return string
+     */
+    public function getBuildMetaData() {
+        return $this->buildMetaData;
+    }
+
+    /**
+     * @return string
+     */
+    public function getVersionString() {
+        return $this->versionString;
+    }
+
+    /**
+     * @return VersionNumber
+     */
+    public function getMajor() {
+        return $this->major;
+    }
+
+    /**
+     * @return VersionNumber
+     */
+    public function getMinor() {
+        return $this->minor;
+    }
+
+    /**
+     * @return VersionNumber
+     */
+    public function getPatch() {
+        return $this->patch;
+    }
+}