Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Теля-Авива #25

Open
IVA-apps opened this issue Oct 29, 2019 · 11 comments
Open

Теля-Авива #25

IVA-apps opened this issue Oct 29, 2019 · 11 comments

Comments

@IVA-apps
Copy link

Павел, доброго здоровьица!)

Проблема с Тель-Авивом и, думаю, другими городами с подобным написанием.

@IVA-apps
Copy link
Author

Ещё Куала-Лумпур

А разве есть вообще города, которые до дефиса в названии склоняются?

@IVA-apps
Copy link
Author

Айя-Напа
Айия-Напа

@IVA-apps
Copy link
Author

Давер-Чесволд

@IVA-apps
Copy link
Author

Делта-Джанкшен

@IVA-apps
Copy link
Author

Каунсил-Блафс

@IVA-apps
Copy link
Author

А сити, кажется и вовсе не склоняются.

прим. Кресента-Сити

@nodkz
Copy link
Owner

nodkz commented Oct 30, 2019

К сожалению есть города, которые склоняются до дефиса
https://github.com/nodkz/lvovich/blob/master/src/__tests__/city-test.js#L308-L309

Ростов-на-Дону, Ростове-на-Дону, Ростова-на-Дону, Ростов-на-Дону
Комсомольск-на-Амуре, Комсомольске-на-Амуре, Комсомольска-на-Амуре, Комсомольск-на-Амуре
Каменск-Уральский, Каменске-Уральском, Каменска-Уральского, Каменск-Уральский
Петропавловск-Камчатский, Петропавловске-Камчатском, Петропавловска-Камчатского, Петропавловск-Камчатский

и это только те которые есть в тесте, возможно их гораздо больше.

Я сам не смогу заняться внесением правок. Но вы самостоятельно довольно просто можете это сделать (т.к. код достаточно хорошо покрыт тестами, и отстрелить кому-то ногу, сломав код, будет достаточно сложно):

  • Склонировать репку git clone https://github.com/nodkz/lvovich.git
  • Запустить установку пакетов yarn install
  • Запустить тесты в watch режиме yarn watch
  • Перед коммитом прогнать все тесты yarn test

Сама логика разбивки слов храниться тут https://github.com/nodkz/lvovich/blob/master/src/city.js#L21-L36

А дополнительные правила, по тем частям которые не склоняются находятся здесь https://github.com/nodkz/lvovich/blob/master/src/rules/cityRules.js#L17-L51

Буду очень рад, если у вас получиться внести в код правки, расширить тесты вашими кейсами и открыть Пулл Реквесты.

Пулл реквесты я достаточно быстро принимаю и опубликовать пакет я могу даже с телефона.

@IVA-apps
Copy link
Author

Не сильно разобрался, но как запретить любые склонения если присутствует какая-то часть? Например -сити

@nodkz
Copy link
Owner

nodkz commented Nov 14, 2019

Добавить 'сити' в frozenParts
https://github.com/nodkz/lvovich/blob/master/src/rules/cityRules.js#L17-L51

И добавить строку для теста свой города
https://github.com/nodkz/lvovich/blob/master/src/__tests__/city-test.js#L338

@IVA-apps
Copy link
Author

Я так понимаю, тогда он начнет склонять Москвы-сити, а это не верно.

@nodkz
Copy link
Owner

nodkz commented Nov 15, 2019

Согласен, тогда необходимо допилить метод isFrozen:
https://github.com/nodkz/lvovich/blob/master/src/city.js#L22

Внутри него делать разбивку по дефису и искать слово сити в конце. Пока можно захардкодить прям в коде, пока новые исключения не появится.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants