Skip to content

Commit 727bf9a

Browse files
#11: Allow users to configure which Pattern Data Rules are used
1 parent 1fa44ec commit 727bf9a

File tree

1 file changed

+21
-6
lines changed

1 file changed

+21
-6
lines changed

src/PatternLab/PatternData.php

+21-6
Original file line numberDiff line numberDiff line change
@@ -390,14 +390,29 @@ public static function getRules() {
390390
* Load all of the rules related to Pattern Data
391391
*/
392392
public static function loadRules($options) {
393-
foreach (glob(__DIR__."/PatternData/Rules/*.php") as $filename) {
394-
$ruleName = str_replace(".php","",str_replace(__DIR__."/PatternData/Rules/","",$filename));
395-
if ($ruleName[0] != "_") {
396-
$ruleClass = "\PatternLab\PatternData\Rules\\".$ruleName;
397-
$rule = new $ruleClass($options);
398-
self::setRule($ruleName, $rule);
393+
$ruleClasses = Config::getOption("enabledPatternRules");
394+
395+
// Allow the enabled Pattern Data Rules to be overridden in
396+
// config. Use the default rules if the config key is empty.
397+
if (!$ruleClasses || !is_array($ruleClasses)) {
398+
$ruleClasses = [];
399+
400+
foreach (glob(__DIR__."/PatternData/Rules/*.php") as $filename) {
401+
$ruleName = str_replace(".php","",str_replace(__DIR__."/PatternData/Rules/","",$filename));
402+
if ($ruleName[0] != "_") {
403+
$ruleClasses[] = "\PatternLab\PatternData\Rules\\".$ruleName;
404+
}
399405
}
400406
}
407+
408+
// Load the configured rules.
409+
foreach ($ruleClasses as $ruleClass) {
410+
$parts = explode('\\', $ruleClass);
411+
$ruleName = end($parts);
412+
$rule = new $ruleClass($options);
413+
self::setRule($ruleName, $rule);
414+
}
415+
401416
}
402417

403418
/**

0 commit comments

Comments
 (0)