New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

petrovich

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

petrovich

JS library to inflect Russian first, middle and last names

latest
Source
npmnpm
Version
0.2.1
Version published
Weekly downloads
1.2K
-15.41%
Maintainers
1
Weekly downloads
 
Created
Source

#Petrovich#

Библиотека для склонения падежей русских имен, фамилий и отчеств.

Установка

Для NodeJS

Используйте npm:

npm install petrovich

Для браузера

Используйте bower:

bower install petrovich

Или вручную. Ссылка: petrovich.min.js

Подключение

В браузере:

<script type="text/javascript" src="/path/to/petrovich/dist/petrovich.min.js"></script>

В NodeJS:

var petrovich = require('petrovich');

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

Петровича можно использовать двумя способами.

###Первый вариант:

// создаем объект person, содержащий параметр gender
// и хотя бы один из параметров first, middle и last
var person = {
 gender: 'male',
 first: 'Петр',
 last: 'Чайковский'
};
// вызываем Петровича как функцию, указав падеж:
petrovich(person, 'dative');
// вернет копию объекта:
// {gender: 'male', first: 'Петру', last: 'Чайковскому'}

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

var person = {
 first: 'Петр',
 middle: 'Ильич',
 last: 'Чайковский'
};
petrovich(person, 'dative');
// вернет:
// {first: 'Петру', middle: 'Ильичу', last: 'Чайковскому', gender: 'male'}

###Второй вариант использования:

// Петрович обладает цепочкой методов вида petrovich[gender][nametype][case]:
petrovich.male.first.genitive('Андрей') // вернет "Андрея"
petrovich.female.last.accusative('Иванова') // вернет "Иванову"

Авто определение пола по отчеству

Петрович может определить пол по отчеству, используя простое правило:

  • мужские имена заканчиваются на "-ич",
  • женские - на "-на",
  • все остальное определяется как "androgynous".
petrovich.detect_gender('Иванович') // вернет 'male'
petrovich.detect_gender('Ильинична') // вернет 'female'
petrovich.detect_gender('Блаблабла') // вернет 'androgynous'

Cписок параметров и их возможных значений

Пол может иметь одно из следующих значений:

  • male - мужской,
  • female - женский,
  • androgynous - неопределенный.

Типы имени:

  • first - имя,
  • last - фамилия,
  • middle - отчество.

Падежи:

  • nominative - именительный (кто? что?)
  • genitive - родительный (кого? чего?)
  • dative - дательный (кому? чему?)
  • accusative - винительный (кого? что?)
  • instrumental - творительный (кем? чем?)
  • prepositional - предложный (о ком? о чем?)

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

Два ключевых файла проекта:

  • petrovich.js - содержит собственно модуль,
  • rules.json - содержит правила склонений, которые берутся из этого репозитория.

Правила включаются в модуль в процессе сборки (см. ниже).

В проекте используется следующие инструменты:

  • Grunt для автоматизации сборки,
  • Jasmine для тестирования.

Установка инструментов:

sudo npm install -g grunt-cli
sudo npm install -g jasmine-node

Клонирование репозитория:

git clone https://github.com/petrovich/petrovich-js.git

Установка локальных модулей:

npm install

Тесты находятся в директории tests/spec/. Запуск тестов:

jasmine-node tests/spec/
# или просто:
npm test

Сборка проекта в директорию dist (включает rules.json в petrovich.js и создает минифицированную копию последнего)

grunt build

Keywords

inflection

FAQs

Package last updated on 21 Oct 2015

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts