1
0
Fork 0

Add 'dev' flag to version parser

pull/8/merge
Jordi Boggiano 2011-07-06 21:04:37 +02:00
parent 8cc320a2cb
commit d6ae5ddf35
2 changed files with 4 additions and 2 deletions

View File

@ -142,14 +142,14 @@ abstract class BasePackage implements PackageInterface
} }
/** /**
* Parses a version string and returns an array with the version and its type (dev, alpha, beta, RC, stable) * Parses a version string and returns an array with the version, its type (alpha, beta, RC, stable) and a dev flag (for development branches tracking)
* *
* @param string $version * @param string $version
* @return array * @return array
*/ */
public static function parseVersion($version) public static function parseVersion($version)
{ {
if (!preg_match('#^v?(\d+)(\.\d+)?(\.\d+)?-?((?:beta|RC\d+|alpha|dev)\d*)?$#i', $version, $matches)) { if (!preg_match('#^v?(\d+)(\.\d+)?(\.\d+)?-?((?:beta|RC\d+|alpha)\d*)?-?(dev)?$#i', $version, $matches)) {
throw new \UnexpectedValueException('Invalid version string '.$version); throw new \UnexpectedValueException('Invalid version string '.$version);
} }
@ -158,6 +158,7 @@ abstract class BasePackage implements PackageInterface
.(!empty($matches[2]) ? $matches[2] : '.0') .(!empty($matches[2]) ? $matches[2] : '.0')
.(!empty($matches[3]) ? $matches[3] : '.0'), .(!empty($matches[3]) ? $matches[3] : '.0'),
'type' => strtolower(!empty($matches[4]) ? $matches[4] : 'stable'), 'type' => strtolower(!empty($matches[4]) ? $matches[4] : 'stable'),
'dev' => !empty($matches[5]),
); );
} }
} }

View File

@ -33,6 +33,7 @@ class VersionConstraint extends SpecificConstraint
public function __construct($operator, $version) public function __construct($operator, $version)
{ {
// TODO add third parameter releaseType and match that too // TODO add third parameter releaseType and match that too
// TODO add fourth parameter devSnapshot and match that too
$this->operator = $operator; $this->operator = $operator;
$this->version = $version; $this->version = $version;
} }