public function parse($data = null, $forceRule = null)
{
$rule = null;
if (is_array($data)) {
$value = array_key_exists(0, $data) ? $data[0] : null;
$rule = array_key_exists(1, $data) ? $data[1] : null;
return $this->parse($value, $rule);
} else {
$value = strtolower(trim($data));
$aliases = $this->getCodeList();
foreach ($aliases as $alias) {
if (strpos($value, $alias) !== false) {
$rule = $alias;
$value = str_ireplace($rule, '', $value);
break;
}
}
}
$value = $this->cleanValue($value);
$rule = $this->checkRule($rule);
if ($forceRule) {
$rule = $forceRule;
}
return array($value, $rule);
}