summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog1
-rw-r--r--app/Core/Plugin/Directory.php7
-rw-r--r--tests/units/Core/Plugin/DirectoryTest.php5
3 files changed, 13 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index ba2aa6ad..b18606f7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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:
diff --git a/app/Core/Plugin/Directory.php b/app/Core/Plugin/Directory.php
index 21f11ca9..27c3514e 100644
--- a/app/Core/Plugin/Directory.php
+++ b/app/Core/Plugin/Directory.php
@@ -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;
}
diff --git a/tests/units/Core/Plugin/DirectoryTest.php b/tests/units/Core/Plugin/DirectoryTest.php
index 13aef4b9..302bd6f6 100644
--- a/tests/units/Core/Plugin/DirectoryTest.php
+++ b/tests/units/Core/Plugin/DirectoryTest.php
@@ -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()