morphos\RussianNamesDeclension::hasForms PHP Method

hasForms() public method

public hasForms ( $name, $gender )
    public function hasForms($name, $gender)
    {
        //var_dump(upper(slice($name, -1)));
        $name = lower($name);
        // man rules
        if ($gender === self::MAN) {
            // soft consonant
            if (lower(slice($name, -1)) == 'ь' && in_array(upper(slice($name, -2, -1)), self::$consonants)) {
                return true;
            } else {
                if (in_array(upper(slice($name, -1)), array_diff(self::$consonants, array('Й')))) {
                    // hard consonant
                    return true;
                } else {
                    if (slice($name, -1) == 'й') {
                        return true;
                    }
                }
            }
        }
        // common rules
        if (in_array(slice($name, -1), array('а', 'я')) && !in_array(upper(slice($name, -2, -1)), self::$vowels) || in_array(slice($name, -2), array('ия', 'ья', 'ея'))) {
            return true;
        }
        return false;
    }