Giter VIP home page Giter VIP logo

petrovich-js's Introduction

#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

petrovich-js's People

Contributors

thaumant avatar

Watchers

Kirill Berezin avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.