{"id":20708047,"url":"https://github.com/petrovich/petrovich-ruby","last_synced_at":"2026-03-27T04:12:18.047Z","repository":{"id":8132391,"uuid":"9549998","full_name":"petrovich/petrovich-ruby","owner":"petrovich","description":"Petrovich, an inflector for Russian anthroponyms.","archived":false,"fork":false,"pushed_at":"2024-11-16T11:01:57.000Z","size":1998,"stargazers_count":410,"open_issues_count":0,"forks_count":33,"subscribers_count":27,"default_branch":"master","last_synced_at":"2025-04-14T02:57:36.017Z","etag":null,"topics":["help-needed","inflection","languages","russian"],"latest_commit_sha":null,"homepage":"https://rubygems.org/gems/petrovich","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/petrovich.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"MIT-LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-04-19T16:49:13.000Z","updated_at":"2025-03-26T20:15:45.000Z","dependencies_parsed_at":"2024-04-23T09:01:05.124Z","dependency_job_id":"5a5b1ab9-c70f-4e8a-843e-653a137cbc28","html_url":"https://github.com/petrovich/petrovich-ruby","commit_stats":{"total_commits":254,"total_committers":12,"mean_commits":"21.166666666666668","dds":0.6220472440944882,"last_synced_commit":"794e2f8f35012b753df9340820982713923674ee"},"previous_names":["petrovich/petrovich"],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/petrovich%2Fpetrovich-ruby","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/petrovich%2Fpetrovich-ruby/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/petrovich%2Fpetrovich-ruby/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/petrovich%2Fpetrovich-ruby/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/petrovich","download_url":"https://codeload.github.com/petrovich/petrovich-ruby/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254149872,"owners_count":22022850,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["help-needed","inflection","languages","russian"],"created_at":"2024-11-17T01:29:05.044Z","updated_at":"2025-12-15T22:32:36.862Z","avatar_url":"https://github.com/petrovich.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Petrovich](petrovich.png)\n\nСклонение падежей русских имён, фамилий и отчеств. Вы задаёте начальное имя\nв именительном падеже, а получаете в нужном вам. Просто посмотрите на\n[демонстрацию](http://petrovich.nlpub.ru/) и сделайте так же.\n\nPetrovich также позволяет определять пол по имени, фамилии, отчеству.\n\n[![RubyGems][rubygems_badge]][rubygems_link] [![Build Status][tests_badge]][tests_link]\n\n[rubygems_badge]: https://badge.fury.io/rb/petrovich.svg\n[rubygems_link]: https://rubygems.org/gems/petrovich\n[tests_badge]: https://github.com/petrovich/petrovich-ruby/actions/workflows/test.yml/badge.svg\n[tests_link]: https://github.com/petrovich/petrovich-ruby/actions/workflows/test.yml\n\n## Установка\n\nДобавьте в Gemfile:\n\n```ruby\ngem 'petrovich', '~\u003e 1.0'\n```\n\nУстановите гем cредствами Bundler:\n\n    $ bundle\n\nИли установите его отдельно:\n\n    $ gem install petrovich\n\n## Зависимости\n\nДля работы гема требуется Ruby не младше версии 1.9.3. Petrovich не\nпривязан к Ruby on Rails и может свободно использоваться практически\nв любых приложениях и библиотеках на языке Ruby.\n\n## Использование\n\nВы задаёте начальные значения (фамилию, имя и отчество) в именительном\nпадеже, а библиотека делает всё остальное. Если вам известен пол - укажите его, это повысит скорость работы и даст более точные результаты. Если пол не указан, то Petrovich попытается определить его автоматически. Примеры:\n\n```ruby\n# Склонение в дательный падеж при помощи метода `dative`. Существуют методы `genitive`,\n# `dative`, `accusative`, `instrumental`, `prepositional`.\nPetrovich(\n  lastname: 'Салтыков-Щедрин',\n  firstname: 'Михаил',\n  middlename: 'Евграфович',\n).dative.to_s # =\u003e Салтыкову-Щедрину Михаилу Евграфовичу\n\n# Склонение в творительный падеж с использованием метода `to` и возвратом отчества.\n# Аналогично можно вызвать метод `firstname`, чтобы получить имя.\nPetrovich(\n  firstname: 'Иван',\n  middlename: 'Петрович',\n).to(:instrumental).middlename # =\u003e Петровича\n\n# Склонение с указанием пола. В данном случае, по имени и фамилии невозможно определить пол\n# человека, поэтому, если вам известен пол, то всегда передавайте его в аргументах,\n# чтобы склонение было верным.\n# Если пол неизвестен, то гем попытается определить его самостоятельно.\n# Пол должен быть указан в виде строки или символа. Возможные значения: male, female.\nPetrovich(\n  lastname: 'Андрейчук',\n  firstname: 'Саша',\n  gender: :male\n).to(:instrumental).to_s # =\u003e Андрейчуку Саше\n```\n\nПолный список поддерживаемых методов склонения приведён\nв таблице ниже.\n\n| Метод          | Падеж        | Характеризующий вопрос |\n|----------------|--------------|------------------------|\n| genitive       | родительный  | Кого?                  |\n| dative         | дательный    | Кому?                  |\n| accusative     | винительный  | Кого?                  |\n| instrumental   | творительный | Кем?                   |\n| prepositional  | предложный   | О ком?                 |\n\n### Определение пола\n\nПримеры:\n\n```ruby\nPetrovich(\n  lastname: 'Склифасовский'\n).gender # =\u003e :male\n\nPetrovich(\n  firstname: 'Александра',\n  lastname: 'Склифасовская'\n).female? # =\u003e true\n\nPetrovich(\n  lastname: 'Склифасовский'\n).male? # =\u003e true\n\nPetrovich(\n  firstname: 'Саша',\n  lastname: 'Андрейчук'\n).androgynous? # =\u003e true\n\nPetrovich(\n  firstname: 'Саша',\n  lastname: 'Андрейчук'\n  gender: :male,\n).male? # =\u003e true\n```\n\n## Интерфейс командной строки\n\nПримеры вызовов:\n\n```bash\npetrovich -l Иванов -f Иван -m Иванович -g male -c accusative\npetrovich -l Иванов -f Иван -m Иванович -c accusative -n\npetrovich -l Иванов -f Иван -m Иванович -c accusative -o\n```\n\nПодробное руководство: `petrovich --help`.\n\n## Модульные тесты\n\nДля запуска тестов достаточно выполнить команду `rake`.\nЧтобы запустить тесты \"аккуратности\" по словарю фамилий, выполните команду `rake evaluate`, после выполнения вы увидите подробный отчёт.\n\n## Разработчики\n\n * [Андрей Козлов](https://github.com/tanraya)\n * [Дмитрий Усталов](https://github.com/dustalov)\n\n## Благодарности\n\nЭта библиотека не была бы столь замечательна без содействия Павла Скрылёва,\nНикиты Помящего, Игоря Бочкарёва, и других хороших людей.\n\nОтдельная благодарность [Андрею Бильжо](https://ru.wikipedia.org/wiki/%D0%91%D0%B8%D0%BB%D1%8C%D0%B6%D0%BE,_%D0%90%D0%BD%D0%B4%D1%80%D0%B5%D0%B9_%D0%93%D0%B5%D0%BE%D1%80%D0%B3%D0%B8%D0%B5%D0%B2%D0%B8%D1%87) за то, что разрешил нам использовать персонаж Петровича в нашем логотипе.\n\n## Портирование\n\nСуществуют официальные порты Petrovich на другие языке и платформы. Их список\nдоступен по адресу \u003chttps://github.com/petrovich\u003e. Ребята, спасибо!\n\n## Содействие\n\nЕсли вы нашли баги как программной части, так и в базе правил, то вы всегда\nможете форкнуть репозиторий и внести необходимые изменения. Ваша помощь не\nостанется незамеченной! Если вы заметили ошибки при склонении падежей имён,\nфамилий или отчеств, можете написать об этом в Issues на GitHub.\nПроблема будет сразу же исследована и, по возможности, решена.\n\nНе стесняйтесь добавлять улучшения.\n\n1. Fork it\n2. Create your feature branch (`git checkout -b my-new-feature`)\n3. Commit your changes (`git commit -am 'Add some feature'`)\n4. Push to the branch (`git push origin my-new-feature`)\n5. Create new Pull Request\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpetrovich%2Fpetrovich-ruby","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpetrovich%2Fpetrovich-ruby","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpetrovich%2Fpetrovich-ruby/lists"}