private function resolveSet()
{
$rules = $this->set;
$hasSet = null;
// expand sets
do {
$hasSet = false;
$tmpRules = $rules;
$rules = array();
foreach ($tmpRules as $name => $value) {
if (!$hasSet && '@' === $name[0]) {
$hasSet = true;
$set = $this->getSetDefinition($name);
foreach ($set as $nestedName => $nestedValue) {
// if set value is false then disable all fixers in set, if not then get value from set item
$rules[$nestedName] = $value ? $nestedValue : false;
}
continue;
}
$rules[$name] = $value;
}
} while ($hasSet);
// filter out all rules that are off
$rules = array_filter($rules);
$this->rules = $rules;
return $this;
}