private function handleRule($rule, $key, array $allDatas)
    {

        $methodName = "run";

        if (!strstr($rule, "_")) {
            $methodName .= ucfirst($rule);
        } else {
            $parsedName = array_map(function ($value) {
                return ucfirst($value);
            }, explode("_", $rule));

            $methodName = $methodName . join("", $parsedName);
        }

        if (!strstr($rule, ":")) {
            $called = $this->callMethod($methodName, [$key, $allDatas, $rule]);
        } else {
            $value = explode(":", $key)[1];
            if (strstr($value, ",")) {
                $sendDatas = [explode(",", $value), $key, $allDatas, $rule];
            } else {
                $sendDatas = [$value, $key, $allDatas, $rule];
            }

            $called = $this->callMethod($methodName, $sendDatas);
        }

        return $called;

    }