Code Duplication    Length = 11-12 lines in 4 locations

src/Russian/FirstNamesInflection.php 2 locations

@@ 502-512 (lines=11) @@
499
                self::TVORIT => RussianLanguage::isHissingConsonant(S::slice($name, -1)) || S::slice($name, -1) == 'ц' ? $prefix.'ем' : $prefix.'ом',
500
                self::PREDLOJ => $prefix.'е',
501
            );
502
        } elseif (S::slice($name, -1) == 'ь' && self::isConsonant(S::slice($name, -2, -1))) { // soft consonant
503
            $prefix = S::name(S::slice($name, 0, -1));
504
            return array(
505
                self::IMENIT => $prefix.'ь',
506
                self::RODIT => $prefix.'я',
507
                self::DAT => $prefix.'ю',
508
                self::VINIT => $prefix.'я',
509
                self::TVORIT => $prefix.'ем',
510
                self::PREDLOJ => $prefix.'е',
511
            );
512
        } elseif (in_array(S::slice($name, -2), array('ай', 'ей', 'ой', 'уй', 'яй', 'юй', 'ий'))) {
513
            $prefix = S::name(S::slice($name, 0, -1));
514
            $postfix = S::slice($name, -2) == 'ий' ? 'и' : 'е';
515
            return array(
@@ 574-584 (lines=11) @@
571
                    self::PREDLOJ => $prefix.'е',
572
                );
573
            }
574
        } elseif (S::slice($name, -1) == 'ь' && self::isConsonant(S::slice($name, -2, -1))) {
575
            $prefix = S::name(S::slice($name, 0, -1));
576
            return array(
577
                self::IMENIT => $prefix.'ь',
578
                self::RODIT => $prefix.'и',
579
                self::DAT => $prefix.'и',
580
                self::VINIT => $prefix.'ь',
581
                self::TVORIT => $prefix.'ью',
582
                self::PREDLOJ => $prefix.'и',
583
            );
584
        } elseif (RussianLanguage::isHissingConsonant(S::slice($name, -1))) {
585
            $prefix = S::name($name);
586
            return array(
587
                self::IMENIT => $prefix,

src/Russian/GeographicalNamesInflection.php 1 location

@@ 163-174 (lines=12) @@
160
                    self::TVORIT => $prefix.'ым',
161
                    self::PREDLOJ => $prefix.'ом',
162
                );
163
            } elseif (S::slice($name, -1) == 'а') {
164
                // Москва, Рига
165
                $prefix = S::name(S::slice($name, 0, -1));
166
                return array(
167
                    self::IMENIT => $prefix.'а',
168
                    self::RODIT => $prefix.(self::isVelarConsonant(S::slice($name, -2, -1)) ? 'и' : 'ы'),
169
                    self::DAT => $prefix.'е',
170
                    self::VINIT => $prefix.'у',
171
                    self::TVORIT => $prefix.'ой',
172
                    self::PREDLOJ => $prefix.'е',
173
                );
174
            } elseif (S::slice($name, -1) == 'я') {
175
                // Азия
176
                $prefix = S::name(S::slice($name, 0, -1));
177
                return array(

src/Russian/LastNamesInflection.php 1 location

@@ 186-196 (lines=11) @@
183
                self::TVORIT => $prefix.'ей',
184
                self::PREDLOJ => $prefix.'е'
185
            );
186
        } elseif (S::slice($name, -1) == 'а') {
187
            $prefix = S::name(S::slice($name, 0, -1));
188
            return array(
189
                self::IMENIT => S::name($name),
190
                self::RODIT => $prefix.(self::isDeafConsonant(S::slice($name, -2, -1)) ? 'и' : 'ы'),
191
                self::DAT => $prefix.'е',
192
                self::VINIT => $prefix.'у',
193
                self::TVORIT => $prefix.'ой',
194
                self::PREDLOJ => $prefix.'е'
195
            );
196
        } elseif (self::isConsonant(S::slice($name, -1)) && S::slice($name, -2) != 'ых') {
197
            $prefix = S::name($name);
198
            return array(
199
                self::IMENIT => S::name($name),