diff options
author | Nicolas LÅ“uillet <nicolas@loeuillet.org> | 2017-04-20 14:58:20 +0200 |
---|---|---|
committer | Nicolas LÅ“uillet <nicolas@loeuillet.org> | 2017-04-20 15:17:02 +0200 |
commit | fdd725f58cfe96d9bb9454d0347f6ff847fce69d (patch) | |
tree | 7f70e8d3b766d8a8ffc7cd807ca7a2a16d5f2bda /src/Wallabag/CoreBundle/Operator | |
parent | 64f1d8f77a75332b731124c5ebab4bed7a512081 (diff) | |
download | wallabag-fdd725f58cfe96d9bb9454d0347f6ff847fce69d.tar.gz wallabag-fdd725f58cfe96d9bb9454d0347f6ff847fce69d.tar.zst wallabag-fdd725f58cfe96d9bb9454d0347f6ff847fce69d.zip |
Added notmatches operator for tagging rule
Diffstat (limited to 'src/Wallabag/CoreBundle/Operator')
-rw-r--r-- | src/Wallabag/CoreBundle/Operator/Doctrine/NotMatches.php | 25 | ||||
-rw-r--r-- | src/Wallabag/CoreBundle/Operator/PHP/NotMatches.php | 21 |
2 files changed, 46 insertions, 0 deletions
diff --git a/src/Wallabag/CoreBundle/Operator/Doctrine/NotMatches.php b/src/Wallabag/CoreBundle/Operator/Doctrine/NotMatches.php new file mode 100644 index 00000000..090da77c --- /dev/null +++ b/src/Wallabag/CoreBundle/Operator/Doctrine/NotMatches.php | |||
@@ -0,0 +1,25 @@ | |||
1 | <?php | ||
2 | |||
3 | namespace Wallabag\CoreBundle\Operator\Doctrine; | ||
4 | |||
5 | /** | ||
6 | * Provides a "notmatches" operator used for tagging rules. | ||
7 | * | ||
8 | * It asserts that a given pattern is not contained in a subject, in a | ||
9 | * case-insensitive way. | ||
10 | * | ||
11 | * This operator will be used to compile tagging rules in DQL, usable | ||
12 | * by Doctrine ORM. | ||
13 | * It's registered in RulerZ using a service (wallabag.operator.doctrine.matches); | ||
14 | */ | ||
15 | class NotMatches | ||
16 | { | ||
17 | public function __invoke($subject, $pattern) | ||
18 | { | ||
19 | if ($pattern[0] === "'") { | ||
20 | $pattern = sprintf("'%%%s%%'", substr($pattern, 1, -1)); | ||
21 | } | ||
22 | |||
23 | return sprintf('UPPER(%s) NOT LIKE UPPER(%s)', $subject, $pattern); | ||
24 | } | ||
25 | } | ||
diff --git a/src/Wallabag/CoreBundle/Operator/PHP/NotMatches.php b/src/Wallabag/CoreBundle/Operator/PHP/NotMatches.php new file mode 100644 index 00000000..eecb43cc --- /dev/null +++ b/src/Wallabag/CoreBundle/Operator/PHP/NotMatches.php | |||
@@ -0,0 +1,21 @@ | |||
1 | <?php | ||
2 | |||
3 | namespace Wallabag\CoreBundle\Operator\PHP; | ||
4 | |||
5 | /** | ||
6 | * Provides a "notmatches" operator used for tagging rules. | ||
7 | * | ||
8 | * It asserts that a given pattern is not contained in a subject, in a | ||
9 | * case-insensitive way. | ||
10 | * | ||
11 | * This operator will be used to compile tagging rules in PHP, usable | ||
12 | * directly on Entry objects for instance. | ||
13 | * It's registered in RulerZ using a service (wallabag.operator.array.matches); | ||
14 | */ | ||
15 | class NotMatches | ||
16 | { | ||
17 | public function __invoke($subject, $pattern) | ||
18 | { | ||
19 | return stripos($subject, $pattern) === false; | ||
20 | } | ||
21 | } | ||