Support version operators for plugin directory: >= and >

This commit is contained in:
Frederic Guillot 2016-09-03 18:02:00 -04:00
parent 75a9e01a98
commit ffd58d06fa
No known key found for this signature in database
GPG Key ID: 92D77191BA7FBC99
3 changed files with 13 additions and 0 deletions

View File

@ -24,6 +24,7 @@ Improvements:
* Add "reference" hooks
* Show project name in task forms
* Convert vanilla CSS to SASS
* Support version operators for plugin directory: >= and >
Other changes:

View File

@ -40,6 +40,13 @@ class Directory extends BaseCore
return true;
}
foreach (array('>=', '>') as $operator) {
if (strpos($plugin['compatible_version'], $operator) === 0) {
$pluginVersion = substr($plugin['compatible_version'], strlen($operator));
return version_compare($appVersion, $pluginVersion, $operator);
}
}
return $plugin['compatible_version'] === $appVersion;
}

View File

@ -12,6 +12,11 @@ class DirectoryTest extends Base
$this->assertFalse($pluginDirectory->isCompatible(array('compatible_version' => '1.0.29'), '1.0.28'));
$this->assertTrue($pluginDirectory->isCompatible(array('compatible_version' => '1.0.28'), '1.0.28'));
$this->assertTrue($pluginDirectory->isCompatible(array('compatible_version' => '1.0.28'), 'master.1234'));
$this->assertTrue($pluginDirectory->isCompatible(array('compatible_version' => '>=1.0.32'), 'master'));
$this->assertTrue($pluginDirectory->isCompatible(array('compatible_version' => '>=1.0.32'), '1.0.32'));
$this->assertTrue($pluginDirectory->isCompatible(array('compatible_version' => '>=1.0.32'), '1.0.33'));
$this->assertTrue($pluginDirectory->isCompatible(array('compatible_version' => '>1.0.32'), '1.0.33'));
$this->assertFalse($pluginDirectory->isCompatible(array('compatible_version' => '>1.0.32'), '1.0.32'));
}
public function testGetAvailablePlugins()