All Projects → petrovich → Petrovich Ruby

petrovich / Petrovich Ruby

Licence: mit
Petrovich, an inflector for Russian anthroponyms.

Programming Languages

ruby
36898 projects - #4 most used programming language
languages
34 projects

Labels

Projects that are alternatives of or similar to Petrovich Ruby

RooCMS
RooCMS - This is easy and convenient content management system designed to quickly create websites.
Stars: ✭ 21 (-94.7%)
Mutual labels:  russian
laravel-docs-ru
Актуализированная редакция документации Laravel версий 8.x и 9.x на русском языке.
Stars: ✭ 19 (-95.2%)
Mutual labels:  russian
The Tale
Основной репозиторий проекта: сайт и логика игры
Stars: ✭ 256 (-35.35%)
Mutual labels:  russian
Transliterate
Транслитерация для Laravel
Stars: ✭ 48 (-87.88%)
Mutual labels:  russian
udar
UDAR Does Accented Russian: A finite-state morphological analyzer of Russian that handles stressed wordforms.
Stars: ✭ 15 (-96.21%)
Mutual labels:  russian
Twelveish
🕛 Twelveish - Android Wear/Wear OS Watch Face
Stars: ✭ 29 (-92.68%)
Mutual labels:  russian
spacy russian tokenizer
Custom Russian tokenizer for spaCy
Stars: ✭ 35 (-91.16%)
Mutual labels:  russian
Index
Stars: ✭ 316 (-20.2%)
Mutual labels:  russian
SI
SIGame и продукты, с ней связанные
Stars: ✭ 89 (-77.53%)
Mutual labels:  russian
Kinopoisk-Watch
Скрипт, превращающий Kinopoisk.ru в онлайн - кинотеатр! 🎥
Stars: ✭ 85 (-78.54%)
Mutual labels:  russian
MLSummerSchool
Материалы факультатива по машинному обучению и искусственному интеллекту
Stars: ✭ 27 (-93.18%)
Mutual labels:  russian
simple-about-rust
Пошаговые уроки по языку программирования Rust для начинающих
Stars: ✭ 25 (-93.69%)
Mutual labels:  russian
elasticsearch-keyboard-layout
Elasticsearch plugin for keyboard layout suggestions
Stars: ✭ 21 (-94.7%)
Mutual labels:  russian
DeepMorphy
Морфологический анализатор для русского языка на C# для .NET
Stars: ✭ 23 (-94.19%)
Mutual labels:  russian
Link Grammar
The CMU Link Grammar natural language parser
Stars: ✭ 286 (-27.78%)
Mutual labels:  russian
russian-language
Russian Language Pack for Invision Community 4
Stars: ✭ 24 (-93.94%)
Mutual labels:  russian
number-to-words
convert number into words (english, french, italian, roman, spanish, portuguese, belgium, dutch, swedish, polish, russian, iranian, roman, aegean)
Stars: ✭ 53 (-86.62%)
Mutual labels:  russian
Ruby Style Guide
📘 Russian Version: A community-driven Ruby coding style guide.
Stars: ✭ 358 (-9.6%)
Mutual labels:  russian
Golang Videos Ru
Собрание видеозаписей докладов про Go | 2016-2018
Stars: ✭ 303 (-23.48%)
Mutual labels:  russian
Front-End-Performance-Checklist
🎮 Единственный чек-лист производительности фронтенда, который справляется лучше других
Stars: ✭ 163 (-58.84%)
Mutual labels:  russian

Petrovich

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

Petrovich также позволяет определять пол по имени, фамилии, отчеству.

RubyGems Build Status

Установка

Добавьте в Gemfile:

gem 'petrovich', '~> 1.0'

Установите гем cредствами Bundler:

$ bundle

Или установите его отдельно:

$ gem install petrovich

Зависимости

Для работы гема требуется Ruby не младше версии 1.9.3. Petrovich не привязан к Ruby on Rails и может свободно использоваться практически в любых приложениях и библиотеках на языке Ruby.

Использование

Вы задаёте начальные значения (фамилию, имя и отчество) в именительном падеже, а библиотека делает всё остальное. Если вам известен пол - укажите его, это повысит скорость работы и даст более точные результаты. Если пол не указан, то Petrovich попытается определить его автоматически. Примеры:

# Склонение в дательный падеж при помощи метода `dative`. Существуют методы `genitive`,
# `dative`, `accusative`, `instrumental`, `prepositional`.
Petrovich(
  lastname: 'Салтыков-Щедрин',
  firstname: 'Михаил',
  middlename: 'Евграфович',
).dative.to_s # => Салтыкову-Щедрину Михаилу Евграфовичу

# Склонение в творительный падеж с использованием метода `to` и возвратом отчества.
# Аналогично можно вызвать метод `firstname`, чтобы получить имя.
Petrovich(
  firstname: 'Иван',
  middlename: 'Петрович',
).to(:instrumental).middlename # => Петровича

# Склонение с указанием пола. В данном случае, по имени и фамилии невозможно определить пол
# человека, поэтому, если вам известен пол, то всегда передавайте его в аргументах,
# чтобы склонение было верным.
# Если пол неизвестен, то гем попытается определить его самостоятельно.
# Пол должен быть указан в виде строки или символа. Возможные значения: male, female.
Petrovich(
  lastname: 'Андрейчук',
  firstname: 'Саша',
  gender: :male
).to(:instrumental).to_s # => Андрейчуку Саше

Полный список поддерживаемых методов склонения приведён в таблице ниже.

Метод Падеж Характеризующий вопрос
genitive родительный Кого?
dative дательный Кому?
accusative винительный Кого?
instrumental творительный Кем?
prepositional предложный О ком?

Определение пола

Примеры:

Petrovich(
  lastname: 'Склифасовский'
).gender # => :male

Petrovich(
  firstname: 'Александра',
  lastname: 'Склифасовская'
).female? # => true

Petrovich(
  lastname: 'Склифасовский'
).male? # => true

Petrovich(
  firstname: 'Саша',
  lastname: 'Андрейчук'
).androgynous? # => true

Petrovich(
  firstname: 'Саша',
  lastname: 'Андрейчук'
  gender: :male,
).male? # => true

Интерфейс командной строки

Примеры вызовов:

petrovich -l Иванов -f Иван -m Иванович -g male -c accusative
petrovich -l Иванов -f Иван -m Иванович -c accusative -n
petrovich -l Иванов -f Иван -m Иванович -c accusative -o

Подробное руководство: petrovich --help.

Модульные тесты

Для запуска тестов достаточно выполнить команду rake. Чтобы запустить тесты "аккуратности" по словарю фамилий, выполните команду rake evaluate, после выполнения вы увидите подробный отчёт.

Разработчики

Благодарности

Эта библиотека не была бы столь замечательна без содействия Павла Скрылёва, Никиты Помящего, Игоря Бочкарёва, и других хороших людей.

Отдельная благодарность Андрею Бильжо за то, что разрешил нам использовать персонаж Петровича в нашем логотипе.

Портирование

Существуют официальные порты Petrovich на другие языке и платформы. Их список доступен по адресу https://github.com/petrovich. Ребята, спасибо!

Содействие

Если вы нашли баги как программной части, так и в базе правил, то вы всегда можете форкнуть репозиторий и внести необходимые изменения. Ваша помощь не останется незамеченной! Если вы заметили ошибки при склонении падежей имён, фамилий или отчеств, можете написать об этом в Issues на GitHub. Проблема будет сразу же исследована и, по возможности, решена.

Не стесняйтесь добавлять улучшения.

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].