Neonatal Penguin March

    petrovich-js

    0.1.1 • Public • Published

    Petrovich

    Petrovich-js

    Склонение русских имен, фамилий, и отчеств.
    Портировано с библиотеки от авторов Андрей Козлов, Дмитрий Усталов:

    https://github.com/rocsci/petrovich

    Установка

    В папке с проектом:

    npm install petrovich-js

    Для работы библиотеки нужны правила склонений. Скачать rules.yml можно из репозитория с оригинальной библиотекой

    https://github.com/rocsci/petrovich/blob/master/lib/petrovich/rules.yml

    Добавить библиотеку в проект:

    var Petrovich = require('petrovich');

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

    Константы для склонения и пола:

    Склонения:

    Petrovich.gcases.N == Petrovich.gcases.NOMINATIVE == 'nominative'
    Petrovich.gcases.G == Petrovich.gcases.GENITIVE == 'genitive'
    Petrovich.gcases.D == Petrovich.gcases.DATIVE == 'dative'
    Petrovich.gcases.A == Petrovich.gcases.ACCUSATIVE == 'accusative'
    Petrovich.gcases.I == Petrovich.gcases.INSTRUMENTAL == 'instrumental'
    Petrovich.gcases.P == Petrovich.gcases.PREPOSITIONAL == 'prepositional'

    Пол:

    Petrovich.genders.M == Petrovich.genders.MALE == 'male'
    Petrovich.genders.F == Petrovich.genders.FEMALE == 'female'
    Petrovich.genders.A == Petrovich.genders.ANDROGYNOUS == 'androgynous'

    Создание Petrovich объекта:

    var name = new Petrovich('male', Petrovich.gcases.D);
    var name = new Petrovich({gcase: 'dative', gender: Petrovich.genders.MALE});
    var name = new Petrovich();

    Параметры по умолчанию: androgynous, nominative

    Склонение

    Вызовы lastname, firstname, middlename добавляют результат во внутренний кэш в порядке их вызова. Цепные вызовы:

    name.lastname('Иванов').toString();
    name.gcase(Petrovich.gcases.INSTRUMENTAL).lastname('Иванов').firstname('Иван').toString();
    name.gcase('genitive').gender('female').lastname('Иванова').firstname('Маруся').middlename('Петровна').toString();
    name.gcase('genitive').gender('female').firstname('Маруся').lastname('Иванова').middlename('Петровна').toString();

    Возможно также такое использование без цепных вызовов:

    name.gcase('dative');
    name.lastname('Иванов');
    name.firstname('Иван');
    name.toString();

    При преобразовании в строку (toString вызывается вручную, либо автоматически при конкатенации строк) кэш очищается. Для возможности многократного использования в toString вручную нужно передать "true":

    name.toString(true);
    name.toString(true);

    Возможно простое использование без объекта, результатом является сразу строка:

    var Petrovich = require('petrovich-js');
    Petrovich.lastname('Иванов', 'male', 'dative');
    Petrovich.firstname('Иван', 'male', 'dative');
    Petrovich.middlename('Петрович', 'male', 'dative');

    Keywords

    none

    Install

    npm i petrovich-js

    DownloadsWeekly Downloads

    6

    Version

    0.1.1

    License

    MIT

    Last publish

    Collaborators

    • mainnika