PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 2.15.5
Independent Analytics – WordPress Analytics Plugin v2.15.5
2.15.5 2.15.4 2.15.3 2.15.2 2.15.1 2.15.0 2.14.10 trunk 1.1 1.10 1.10.1 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.17.1 1.17.2 1.17.3 1.17.4 1.18 1.18.1 1.19.0 1.19.1 1.2 1.20.0 1.21.0 1.22.0 1.22.1 1.23.0 1.23.1 1.24.0 1.24.1 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.28.1 1.28.2 1.28.3 1.29.0 1.3 1.30.0 1.30.1 1.4 1.5 1.6 1.7 1.8 1.9 2.0.0 2.0.1 2.1.4 2.1.5 2.1.6 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.10 2.11.2 2.11.3 2.11.4 2.11.5 2.11.6 2.11.7 2.11.8 2.11.9 2.12.0 2.12.1 2.12.2 2.13.1 2.13.2 2.13.5 2.13.6 2.14.0 2.14.1 2.14.2 2.14.4 2.14.6 2.14.7 2.14.8 2.14.9 2.2.0 2.2.1 2.3.1 2.3.2 2.4.2 2.4.3 2.5.0 2.5.1 2.6.0 2.6.1 2.6.2 2.6.3 2.6.4 2.7.0 2.7.1 2.7.2 2.7.3 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.8 2.8.9 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7
independent-analytics / vendor / doctrine / inflector / src / RulesetInflector.php
independent-analytics / vendor / doctrine / inflector / src Last commit date
Rules 1 month ago CachedWordInflector.php 1 month ago GenericLanguageInflectorFactory.php 1 month ago Inflector.php 1 month ago InflectorFactory.php 1 month ago Language.php 1 month ago LanguageInflectorFactory.php 1 month ago NoopWordInflector.php 1 month ago RulesetInflector.php 1 month ago WordInflector.php 1 month ago
RulesetInflector.php
47 lines
1 <?php
2
3 declare (strict_types=1);
4 namespace IAWPSCOPED\Doctrine\Inflector;
5
6 use IAWPSCOPED\Doctrine\Inflector\Rules\Ruleset;
7 use function array_merge;
8 /**
9 * Inflects based on multiple rulesets.
10 *
11 * Rules:
12 * - If the word matches any uninflected word pattern, it is not inflected
13 * - The first ruleset that returns a different value for an irregular word wins
14 * - The first ruleset that returns a different value for a regular word wins
15 * - If none of the above match, the word is left as-is
16 * @internal
17 */
18 class RulesetInflector implements WordInflector
19 {
20 /** @var Ruleset[] */
21 private $rulesets;
22 public function __construct(Ruleset $ruleset, Ruleset ...$rulesets)
23 {
24 $this->rulesets = array_merge([$ruleset], $rulesets);
25 }
26 public function inflect(string $word) : string
27 {
28 if ($word === '') {
29 return '';
30 }
31 foreach ($this->rulesets as $ruleset) {
32 if ($ruleset->getUninflected()->matches($word)) {
33 return $word;
34 }
35 $inflected = $ruleset->getIrregular()->inflect($word);
36 if ($inflected !== $word) {
37 return $inflected;
38 }
39 $inflected = $ruleset->getRegular()->inflect($word);
40 if ($inflected !== $word) {
41 return $inflected;
42 }
43 }
44 return $word;
45 }
46 }
47