male_or_female 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. data/.gitignore +18 -0
  2. data/Gemfile +4 -0
  3. data/LICENSE.txt +22 -0
  4. data/README.md +44 -0
  5. data/Rakefile +111 -0
  6. data/doc/logo.png +0 -0
  7. data/doc/logo.psd +0 -0
  8. data/lib/male_or_female/data_compiled/.DS_Store.yaml +20 -0
  9. data/lib/male_or_female/data_compiled/ru.yaml +452 -0
  10. data/lib/male_or_female/data_source/ru//320/260.yaml +14 -0
  11. data/lib/male_or_female/data_source/ru//320/261.yaml +35 -0
  12. data/lib/male_or_female/data_source/ru//320/262.yaml +39 -0
  13. data/lib/male_or_female/data_source/ru//320/263.yaml +24 -0
  14. data/lib/male_or_female/data_source/ru//320/264.yaml +30 -0
  15. data/lib/male_or_female/data_source/ru//320/265.yaml +9 -0
  16. data/lib/male_or_female/data_source/ru//320/266.yaml +13 -0
  17. data/lib/male_or_female/data_source/ru//320/267.yaml +17 -0
  18. data/lib/male_or_female/data_source/ru//320/270.yaml +14 -0
  19. data/lib/male_or_female/data_source/ru//320/272.yaml +24 -0
  20. data/lib/male_or_female/data_source/ru//320/273.yaml +21 -0
  21. data/lib/male_or_female/data_source/ru//320/274.yaml +23 -0
  22. data/lib/male_or_female/data_source/ru//320/275.yaml +19 -0
  23. data/lib/male_or_female/data_source/ru//320/276.yaml +11 -0
  24. data/lib/male_or_female/data_source/ru//320/277.yaml +24 -0
  25. data/lib/male_or_female/data_source/ru//321/200.yaml +19 -0
  26. data/lib/male_or_female/data_source/ru//321/201.yaml +37 -0
  27. data/lib/male_or_female/data_source/ru//321/202.yaml +21 -0
  28. data/lib/male_or_female/data_source/ru//321/203.yaml +13 -0
  29. data/lib/male_or_female/data_source/ru//321/205.yaml +12 -0
  30. data/lib/male_or_female/data_source/ru//321/206.yaml +8 -0
  31. data/lib/male_or_female/data_source/ru//321/207.yaml +12 -0
  32. data/lib/male_or_female/data_source/ru//321/210.yaml +9 -0
  33. data/lib/male_or_female/data_source/ru//321/211.yaml +8 -0
  34. data/lib/male_or_female/data_source/ru//321/215.yaml +11 -0
  35. data/lib/male_or_female/data_source/ru//321/216.yaml +14 -0
  36. data/lib/male_or_female/data_source/ru//321/217.yaml +9 -0
  37. data/lib/male_or_female/version.rb +3 -0
  38. data/lib/male_or_female.rb +83 -0
  39. data/male_or_female.gemspec +26 -0
  40. data/test/test_compiled_male_formal.rb +198 -0
  41. data/test/test_exception.rb +47 -0
  42. data/test/test_female_informal.rb +30 -0
  43. data/test/test_male_informal.rb +31 -0
  44. data/test/test_source_female_formal.rb +198 -0
  45. data/test/test_source_male_formal.rb +205 -0
  46. data/test/test_unisex_formal.rb +16 -0
  47. data/test/test_unisex_informal.rb +23 -0
  48. metadata +171 -0
@@ -0,0 +1,30 @@
1
+ Д:
2
+ male_formal:
3
+ Дабор Давило Дагус Дажьбог Дал Далебор Далемир Далибор Даливит Даливой Далигор Далигост Далимил Далимир Далимысл
4
+ Далистрый Далята Дан Данибор Данимир Даньслав Данко Даньша Дарослав Дапамор Двинец Девясил Девятиглаз Девятой
5
+ Дедила Дедилец Дедовит Дедомил Дедослав Дедята Дежень Деиукс Делота Делян Демьстик Дерван Дергач Держан Держикрай
6
+ Держимир Держислав Дерн Десибрат Десивой Десимир Десирад Десислав Деян Див Дивий Дивиш Дивлян Дивозор Дикуша Дитята
7
+ Дичко Добегнев Добемест Добемир Добемысл Добеслав Добестой Добижив Добр Добран Добри Добривой Добрило Добрит
8
+ Добробой Добробуд Добровест Добровид Добровит Добровлад Добровук Доброга Доброгнев Доброгой Доброгость Добродан
9
+ Добродей Добродух Доброжай Доброжизн Доброжир Доброжит Добролик Доброман Добромысл Добролюб Добромил Добромир
10
+ Добросерд Доброслав Добростраж Добросул Добротех Доброхвал Доброход Доброчест Добрын Добря Довбуш Довгуш Довол
11
+ Догада Дойчин Докука Докучай Долговяз Долгой Долгомил Долгомысл Дольник Домагость Домамер Домамысл Доман Доманег
12
+ Домаш Домжар Домислав Доможир Доморад Домослав Дончо Дорога Дорогокуп Дорогомил Дорогомысл Дорогосил Дорож Драган
13
+ Драгобрат Драгогост Драгожит Драголюб Драгомир Драгослав Драгош Драгувит Драгун Драгутин Дражко Древан Древослав
14
+ Дреман Дробот Дрозд Дроцила Дружина Друсь Дубец Дубовик Дубок Дубун Дубыня Дугиня удика Дукора Дулей Духен Духовлад
15
+ Духослав Душан Дынко Дюдко Дюжен Дюк Дягиль Дяка Дятел Давыд Давид Данила Даниил Дементий Демид Демьян Денис
16
+ Дмитрий Дорофей
17
+
18
+ male_informal:
19
+ Дима
20
+
21
+ female_formal:
22
+ Даль Далина Дана Данута Дарёна Дарина Даролюба Даромила Дена Десислава Деснянка Дина Добрава Добринка
23
+ Добромила Доброгнева Добродея Добромира Добронега Добронрава Доброслава Додола Долгождана Долгослава
24
+ Доляна Домослава Досада Доступа Драга Драгана Драгомира Древа Дружина Дубрава Душка Дятелина Дарья Диана Доминика
25
+ Домна
26
+
27
+ female_informal:
28
+ Даша
29
+
30
+ unisex:
@@ -0,0 +1,9 @@
1
+ Е:
2
+ male_formal:
3
+ Единец Ездислав Елага Еловит Ера Ероха Есеня Есислав Евгений Евграф Евдоким Евлампий Евсей Евстафий Евстигней Егор
4
+ Елизар Елисей Емельян Епифан Еремей Ермил Ермолай Ерофей Ефим Ефрем Ёж Ёрш
5
+
6
+ female_formal:
7
+ Ева Евгеиня Евдокия Евлампия Екатерина Елена Елизавета Ефросинья Ефросиния Елень Елица
8
+
9
+ unisex:
@@ -0,0 +1,13 @@
1
+ Ж:
2
+ male_formal:
3
+ Жавр Жадан Жадок Жалибор Жалигнев Жалигост Жалидед Жалимир Жалислав Жань Жар Жаровник Жарок Жарох Ждажир Ждамир
4
+ Ждан Ждибор Ждигод Ждимир Ждислав Жегло Жегало Желан Желислав Желуток Желыба Жердей Жерех Жернак Жест Жёлтик Живан
5
+ Живко Живобуд Живоин Живорад Живород Животтък Жидислав Жидята Жиздор Жизнебор Жизнерад Жизнобуд Жизномир Жилец
6
+ Жилка Жилята Жирнос Жировит Жиромир Жирослав Жирота Жирята Житко Жито Житоваб Житомир Жихарь Жмурёнок Жук Жунь
7
+ Жур Журба Журав Журило Жуяга
8
+
9
+ female_formal:
10
+ Жанна Жарава Ждана Ждислава Желана Желанья Жиромира Жилена Жула
11
+
12
+ unisex_informal:
13
+ Женя
@@ -0,0 +1,17 @@
1
+ З:
2
+ male_formal:
3
+ Забияка Забог Забожан Забой Заброда Забуд Завада Заварза Завид Загреба Загуми Задора Заика Залом Замята Замятня
4
+ Заребог Зареслав Заруба Заслав Захворай Заяц Заян Збигнев Збигонь Збраслав Збыслав Зван Званимир Звездан Звенец
5
+ Звенидраг Звенислав Зверополк Звонимир Звонило Звонислав Звяга Здебор Зденек Здерад Здравень Здышко Зеленя Зелибор
6
+ Земибор Земибуд Земидар Земирад Земислав Земко Земовит Земомил Земомысл Зерно Златан Златимир Златко Златовлас
7
+ Златодан Златозар Златосвет Златослав Златояр Злоба Зловед Зловид Зломысл Злоказ Зоран Зоремир Зореслав Зорко Зоря
8
+ Зорян Зубаха Зуберь Зуй Зыба Зыбко Зык Зыряй Зюзя Захар Зиновий Зосима
9
+
10
+ female_formal:
11
+ Забава Забела Загляда Загорка Загоска Замятня Заревласта Зарина Зарена Заслава Звана Звенимира
12
+ Звенислава Зимава Зима Злата Златовласка Златоцвета Зозуля Зорина Зоряна Зинаида Зоя
13
+
14
+ female_informal:
15
+ Зина
16
+
17
+ unisex:
@@ -0,0 +1,14 @@
1
+ И:
2
+ male_formal:
3
+ Иван Игнатий Измаил Изот Иларион Илья Иннокентий Иосиф Ипат Ипатий Ипполит Ираклий Исай Исидор
4
+ Ивач Иверень Ивиц Ивор Игорь Идан Идаризий Избор Избыгнев Изеч Износок Изявлад Изяслав Иловай Имислав Инго
5
+ Ирогость Искр Искус Истислав Истома
6
+
7
+ female_formal:
8
+ Ивица Иголка Изяслава Ирица Ирмера Иля Инга Искра Истома Изабелла Изольда Инесса Инна Ираида Ирина Ия
9
+
10
+ female_informal:
11
+ Ира
12
+
13
+ unisex_formal:
14
+ Ива
@@ -0,0 +1,24 @@
1
+ К:
2
+ male_formal:
3
+ Казимир Казце Калинка Камен Капица Кареслав Катай Катигорох Квасура Квач Квашня Кветан Кветослав Келогость Кий
4
+ Кисель Кислоквас Клад Клек Клен Клюкас Кля Кнур Кобыла Кобяк Коваль Коврига Ковря Козенец Козёл Кол Кола Колбинец
5
+ Колоб Колобуд Коловрат Колос Колот Колотило Колотига Колоша Колояр Колун Колч Колыван Кольцо Комонебранец Коптел
6
+ Копыл Корепан Корило Корислав Корлин Кормушка Коснятин Космина Кот Котышко Коцел Кочебор Кочева Кочень Кочет Кощей
7
+ Крак Кракра Крас Красимил Красислав Красномир Краснослав Красун Крев Кремень Крепимир Кресибор Кресимир Кресислав
8
+ Кресомысл Крив Криворог Кривослав Кробат Крок Кромегость Крот Круглец Крук Крут Крутослав Кручина Крючок Кряж
9
+ Куделин Куденя Кудеяр Кудрой Кужел Куконос Кукуй Кукша Кулага Кулотка Кумодраг Курбат Курнява Кутила Кучка Куц
10
+ Кучма Кышек Каллистрат Капитон Карл Карп Касьян Ким Кир Кирилл Клавдий Климент Клементий Клим Кондрат Кондратий
11
+ Конон Константин Корнил Корней Корнилий Кузьма Куприян
12
+
13
+ male_informal:
14
+ Коля Костя
15
+
16
+ female_formal:
17
+ Кази Казимира Калина Карина Карислава Касатка Каша Квета Кислица Клёна Кокошка Краса Красимира
18
+ Красномира Краснослава Кропотка Кукоба Кунава Купава Калерия Капитолина Каролина Кира Клавдия Клара Кларисса
19
+ Клементина Клеопатра Конкордия Ксения
20
+
21
+ female_informal:
22
+ Киса
23
+
24
+ unisex_formal:
@@ -0,0 +1,21 @@
1
+ Л:
2
+ male_formal:
3
+ Лагач Лагодум Ладимир Ладислав Лан Лапа Лапоть Лебедян Левота Левша Легостай Лепко Лето Лех Лехослав Лешек Лешко
4
+ Линь Лиса Липок Лихарь Лихач Лихо Лиховид Лихослав Лобан Лозан Лось Лочок Луд Лудслав Лунь Лупиглав Лучан Лучезар
5
+ Льстимир Льстислав Лызло Лында Лытка Лычезар Любим Любислав Любодар Любозар Любомил Любомир Любомудр Любомысл
6
+ Любонег Любор Люборост Любочад Любояр Любша Людевит Людивой Людек Людин Людмил Людобож Людомир Людослав Людота
7
+ Лют Лютобор Лютобран Лютовой Лютовид Лютогнев Лютоман Лютомир Лютомысл Люторад Ляшько Лавр Лаврентий Лазарь Лев
8
+ Леон Леонид Леонтий Лонгин Лука Лукьян Любосмысл
9
+
10
+ male_informal:
11
+ Лёня Леня Лёша Леша
12
+
13
+ female_formal:
14
+ Леокадия Лиана Лидия Лилиана Лариса Лилия Лия Луиза Лукерья Людослава Ляля
15
+ Лабуня Лагода Лагута Лада Ладимира Ладислава Ладомила Ладослава Латыгорка Лебедь Леля Лесана Либуша
16
+ Лола Лыбедь Любава Любовь Любогнева Любомира Любомила Любомудра Люборада Любослава Любуша Людмила
17
+
18
+ female_informal:
19
+ Лена Люся Лера Люда Люба
20
+
21
+ unisex_formal:
@@ -0,0 +1,23 @@
1
+ М:
2
+ male_formal:
3
+ Макар Максим Максимильян Мариан Марк Мартын Мартьян Матвей Мефодий Милий Мина Мир Мирон Митофан Михаил Михей Модест
4
+ Майеслав Майслав Мал Маламир Малогость Малыга Малыш Малюта Марибор Марун Маслав Междамир Межко Мезенмир
5
+ Мезислав Мень Меньшак Меньшик Местивой Местило Местиуй Местята Метислав Мецислав Мечеслав Мечислав Меша
6
+ Мешко Микула Мил Милад Милан Милей Милен Миливой Милидух Милко Милован Милодар Милогость Миломир Милонег
7
+ Милорад Милослав Милота Милош Милутин Мильц Милюта Миляй Милятин Миробог Мирогость Миронег Миролюб Мироног
8
+ Мирослав Мистиша Михн Мичура Мишата Млад Младек Мната Мнислав Мовеслав Могута Моислав Моймир Мокош Мокроус
9
+ Молибог Молнезар Молчан Молчун Момчил Мончук Моргун Моргач Мордас Мороз Морозко Морхиня Моста Мостило Мстибог
10
+ Мстивой Мстиж Мстислав Мудрослав Мун Мура Мураш Мусат Мусокий Мутур Мухло Мятижир Моисей Мокей
11
+
12
+ male_informal:
13
+ Макс
14
+
15
+ female_formal:
16
+ Мазыря Малинка Малуша Метелица Мечеслава Мечислава Мила Милада Милава Милана Милева Милена Милица
17
+ Милолика Миломира Милонега Миловзора Милослава Милуша Мира Мирина Мирослава Млава Млада Морозка
18
+ Мстислава Майя Мальвина Маргарита Марианна Мариетта Марина Мария Марта Марфа Меланья Мелитриса Муза
19
+
20
+ female_informal:
21
+ Маша
22
+
23
+ unisex_formal:
@@ -0,0 +1,19 @@
1
+ Н:
2
+ male_formal:
3
+ Наволод Нагиба Надей Найдён Након Намест Нарышка Наседка Нахаба Небулос Невер Невзор Негодяй Негорад
4
+ Негослав Недан Неделя Нежата Неждан Нежен Нежил Незамысл Незван Незда Нездило Нездиня Незнайко Неклан Неклюд
5
+ Некрас Некрута Нелюб Немат Немизь Немил Немир Ненад Ненаш Непомук Нерадец Нерев Несда Несмеян Неугода Неудача
6
+ Неуспокой Неустрой Нехорошей Нецислав Нечай Неядва Никлот Нискиня Новак Новик Новожил Новомир Ноздрьча Носик
7
+ Носко Нур Нянко Назар Наркис Натан Наум Нестор Никандр Никанор Никита Никифор Никодим Николай Никон Нифонт
8
+
9
+ male_informal:
10
+ Ник
11
+
12
+ female_formal:
13
+ Наталья Наталия Неонила Ника Нина Нинель Нона Немира Ненагляда Несмеяна Новожея Новожила
14
+ Надежда Надия Найда Невея Негода Неда Недоля Неёла Нежа Нежана Неждана Нежелана Незвана Нелюба
15
+
16
+ female_informal:
17
+ Настя Наташа
18
+
19
+ unisex_formal:
@@ -0,0 +1,11 @@
1
+ О:
2
+ male_formal:
3
+ Обиден Образец Овсяник Овчина Огневед Огнедар Огнезар Огнеслав Огурец Одинец Одяка Озар Озим Окатье Окула Окунь
4
+ Олбран Олдан Олег Олель Олен Олех Олимер Ольбег Ольстин Олята Омьша Оногость Ончутка Опост Ордогост Орей Орёл
5
+ Орлин Орогость Осина Оскол Осляба Осмак Осменник Осмол Осмомысл Осока Останец Остроглаз Островец Остромир
6
+ Остромысл Остроус Остроух Осьмиглаз Осьмун Отай Отеня Отрад Ошурок Ощера Олимпий Онуфрий Орест Осип Остап
7
+
8
+ female_formal:
9
+ Оксана Октябрина Олимпиада Ольга Ожега Олисава Олова Оляна Омелица Отава
10
+
11
+ unisex_formal:
@@ -0,0 +1,24 @@
1
+ П:
2
+ male_formal:
3
+ Падинога Падун Пакобуд Пакомил Пакослав Пальчек Пан Паркун Паря Пасмур Пачемир Пачеслав Пащек Певень Пелг Пепелюга
4
+ Перван Первой Первонег Первослав Первуша ПереверниГора Перегуд Передслав Перемышль Перенег Переплут Перепят Пересвет
5
+ Пересмага Пересмяк Переяр Переяслав Перко Перунько Перята Петун Пешка Пешок ПёсьяСтарость Пинай Пинещин Пискун
6
+ Пирогость Плавен Плакса Плаксень Пламен Плат Плен Пленко Плехан Плешко Плоскиня Повтарь Погудко Подебрад Поджар
7
+ Поджога ПодоприГора Подпрята Позвизд Поздей Познан Позняк Покатигорошек Поле Полежай Полетай Полуденник Полюд Полян
8
+ Попель Попельвар Порей Поруба Порывай Посока Поспел Постник Потан Потепа Потеха Поток Потучик Починок Правдолюб
9
+ Праволюб Правомил Православ Прасол Предмир Предполк Предраг Предслав Преибор Прелюб Премил Пренег Премысл Преслав
10
+ Престан Претимир Претич Прехвал Прибина Прибислав Прибувой Прибыгнев Прибыдруг Прибынег Прибыток Прибыхвал Прибычест
11
+ Прибыша Привал Придан Прилук Примак Прислав Приснобор Приснослав Притыка Приугрюмище Пркош Провид Продан Прозор
12
+ Прокуй Прокшиня Просислав Просо Простибор Простивой Простигнев Простимир Простислав Прохн Прочица Прус Пруша
13
+ Пршемысл Псан Пузейка Пулкав Пустило Пустимир Пустовид Путарь Путивой Путила Путимир Путислав Путисил Путьша Путята
14
+ Пучна Пырей Пяст Пятак Прокл Прокофий Прохор Павел Панкратий Панкрат Пантелеймон Панфил Парамон Парфен Пахом
15
+ Петр Пимен Платон Поликарп Порфирий Потап Пров Пантелей
16
+
17
+ male_informal:
18
+ Паша
19
+
20
+ female_formal:
21
+ Пелагея Поликсена Полина Прасковья Пульхерия Первуна Первуша Перегуда Переяслава Плакса Полада Полева Полеля
22
+ Полонея Полуница Поляна Пороша Потана Потвора Потреба Пребрана Предслава Прекраса Прелеста Прибавка Прибыслава Пригода
23
+
24
+ unisex_formal:
@@ -0,0 +1,19 @@
1
+ Р:
2
+ male_formal:
3
+ Рагоза Радей Радех Радивой Радило Радим Радимир Радислав Радко Радобрат Радобой Радобуд Радован Радовзор Радовид
4
+ Радовит Радогой Радогорд Радогость Радожар Радожир Радолюб Радом Радомил Радомир Радомысл Радонег Радосвет Радослав
5
+ Радосул Радота Радотех Радочест Радош Радуж Размысл Разрывай Разумник Раковор Рамен Ранко Раножир Ранослав Рарог
6
+ Распута Растимир Растислав Растич Ратай Ратебор Ратибор Ратислав Ратмир Ратша Рах Рахдай Раце Рацлав Рачуйко Рев
7
+ Резник Рекун Репа Репех Рог Рогволод Рогдай Рогня Родан Родислав Родогой Родогор Родолюб Родомил Родомысль Родосвет
8
+ Родослав Рознег Ропша Росволод Рослав Ростигнев Ростимир Ростимысл Ростислав Ростих Ростичар Ртищ Рубец Рудак
9
+ Рудожир Рудомир Рудомысл Рудослав Рудоток Румянец Руно Рус Русай Русалко Русан Русин Рутын Рыж Рында Рылей Рюма
10
+ Рюрик Ряб Рядко Ряха Родион Роман Рубен Руслан
11
+
12
+ male_informal:
13
+ Рома
14
+
15
+ female_formal:
16
+ Раиса Регина Рената Римма Роза Розалия Розина Руфина Рада Радана Радмила Радосвета Радомира Радослава Радостина
17
+ Радость Ракита Репка Рогнеда Родника Родослава Росана Ростислава Ружена Ружица Румяна Русава Русана Рута Рында Рябина
18
+
19
+ unisex_formal:
@@ -0,0 +1,37 @@
1
+ С:
2
+ male_formal:
3
+ Садко Само Самовит Самовлад Саморад Самород Самоха Санко Сах Сбыгнев Сбывой Сбылют Сбыслав Сбычест Сваромир Сваруна
4
+ Свебож Свентояр Свень Сверчок Светех Светибог Светигнев Светигой Светилюб Светислав Светичест Светлан Светник
5
+ Светобор Светодар Световик Светолик Светомир Светомысл Светозар Светокол Светолик Светослав Светояр Свибл Свир
6
+ Свирыня Свиря Свирята Свищ Свободан Своерад Свойбог Свойбор Свойжир Своймир Своймысл Свойслав Свойчест Свойрад
7
+ Своята Святобой Святобор Святогор Святожизн Святозар Святозор Святомир Святоплуг Святополк Святорад Святослав
8
+ Святоша Святояр Сдебуд Сдевит Сдевой Сделют Сдемил Сдемир Сдемысл Сдеслав Сдила Сева Сегеня Седун Сежир Сезем
9
+ Селан Селимир Семидол Семовит Семой Семьюн Середогост Сережень Сецех Сивак Сивер Север Сиводед Сиволап Сивояр
10
+ Сидраг Силимир Силослав Силостан Сирослав Синеок Синко Скалкус Скарбимир Скарбомир Скарбислав Скиф Склов Скородум
11
+ Скордяй Скорына Скорята Скотень Скрипица Скрынь Скряба Скуба Скурат Славата Славко Славен Славер Славибор Славий
12
+ Славн Славовит Славолюб Славомир Славомысл Славонег Славосуд Славотех Славута Славята Слинько Слободан Словиша
13
+ Словута Слон Слудый Смага Смехн Смеян Смил Смирной Смола Смолига Смык Смысл Снежко Сновид Собеслав Собигорд Собидраг
14
+ Собимил Собимысл Собин Собирад Соболь Собота Сова Содлилка Сокол Сокольник Солн Соловей Сомжар Сонцеслав Сорока
15
+ Сочень Спех Спирок Спитигнев Спичак Ставок Ставр Станивук Станил Станило Станимир Станислав Станята Старовит
16
+ Старовойт Старой Старослав Старшой Стемир Стипко Стогость Стожар Стоигнев Стоик Стоимил Стоймир Стойслав Столпосвет
17
+ Стоядин Стоян Страба Страдослав Страж Страживой Стражимир Стражислав Странимир Странислав Страх Страхквас Страхил
18
+ Страшимир Страшко Стребор Стрежимир Стрежислав Стрезибор Стрекало Стрет Стрига Стригун Стрижак Строй Стройгнев
19
+ Строймир Стройслав Стук Ступа Стуш Стырь Сувор Судак Судибор Судивой Судимир Судислав Судиша Судор Сул Сулибор
20
+ Суливой Сулимир Сулислав Сулирад Сумник Суморок Суровен Сусара Сухан Сухой Сухобор Суховерх Сухослав Суш Сындал
21
+ Сып Сыт Сябр Савва Савватий Савелий Самсон Самуил Севастьян Селиван Селиверст Семен Серафим Сергей Сигизмунд Сидор
22
+ Сила Силантий Сильвестр Симон Сократ Соломон Софон Софрон Спартак Спиридон Степан Салават
23
+
24
+ male_informal:
25
+ Стёпа Степа
26
+
27
+ female_formal:
28
+ Сбыслава Сватава Светана Светислава Светла Светлана Светогора Светозара Светолика Светослава Святослава
29
+ Святохна Селеница Селяна Сила Синеока Сияна Скрева Смеяна Смирена Снежа Снежана Снежина Слава Славина
30
+ Славолюба Славомила Славомира Славяна Сладка Собина Собислава Солоха Соня Сорока Среча Станислава
31
+ Сторожея Стояна Студеника Судислава Судомира Счаста Сухота Серафима Сильва Сильвия Саломея Софья Стела Степанида Сусанна
32
+
33
+ female_informal:
34
+ Света
35
+
36
+ unisex_informal:
37
+ Саша
@@ -0,0 +1,21 @@
1
+ Т:
2
+ male_formal:
3
+ Табомысл Таислав Талалай Талец Таргитай Тас Татомир Твердибой Твердило Твердимир Твердин Твердислав Твердодраг
4
+ Твердолик Твердополк Твердош Твердята Творинег Творирад Творилад Творило Творимир Творислав Творьян Телепень Тепло
5
+ Тепта Терпило Терпимир Терпимысл Терпислав Тетва Тетислав Тетомысл Техобуд Техожит Техомысл Техослав Тешата Тешен
6
+ Тешигнев Тешигор Тешидраг Тешимир Теширад Тешислав Тилей Тиста Тихоелето Тихомил Тихомир Тихомысл Тихорад Тишина
7
+ Толигнев Толимир Толислав Толчь Томивой Томило Томимир Томислав Топор Тороп Торч Торчин Точена Транно Требибор
8
+ Требимир Требислав Требомысл Треборад Тревзор Трегуб Тредеграс Трезор Треска Третьяк Тримир Трун Трут Тугарин
9
+ Тугло Тугодум Тугожир Тужир Тугомир Тугомысл Тулик Тумаш Тупочёл Тур Турдей Турила Туровид Туряк Тус Туча Туша
10
+ Тынина Тыра Тюря Тютя Тарас Терентий Тимофей Тимур Тит Тихон Трифон Трофим
11
+
12
+ male_informal:
13
+ Тема Тёма
14
+
15
+ female_formal:
16
+ Таисия Тамара Татьяна Тайна Творимира Теребила Томила Туга Тэтка
17
+
18
+ female_informal:
19
+ Таня
20
+
21
+ unisex_formal:
@@ -0,0 +1,13 @@
1
+ У:
2
+ male_formal:
3
+ Уветич Углеша Угомон Угоняй Уголёк Угост Угрим Угрюм Уда Удал Удача Уегость Улеб Улич Улыба Умай Умил Умник Умысл
4
+ Унебож Унемир Унибор Управка Ураз Урех Урюпа Усан Услав Устрой Усхоп Усыня Ута Утеш Утешан Утренник Ушак Ушмян
5
+ Ульян Устин
6
+
7
+ female_formal:
8
+ Ульяна Убынега Умила Улада Улита Улыба Услада Утеха
9
+
10
+ female_informal:
11
+ Уля
12
+
13
+ unisex_formal:
@@ -0,0 +1,12 @@
1
+ Х:
2
+ male_formal:
3
+ Халява Хвалимир Хвалибог Хвалибор Хвалислав Хват Хвилибуд Хвост Хвороща Хвощ Хижа Хитран Хлеб Хлебослав Хлопан
4
+ Хлоптун Хлубан Хлуд Хлын Хлыст Хмель Хмар Хмырь Хов Хован Ходан Ходимир Ходислав Ходота Ходына Хомун Холопище
5
+ Хорив Хоробор Хоробрит Хортивой Хорь Хот Хотен Хотибор Хотивой Хотимир Хотимысл Хотирад Хотислав Хотобуд Хотовид
6
+ Хотомель Хотомир Хотонег Хоц Хотуль Хохряк Храбр Хран Хранибой Хранибор Хранидруг Хранимир Хранислав Храрь Хрват
7
+ Хрипан Хрипун Хруль Хрьсь Хубен Худаня Харитон Харлампий Христофор
8
+
9
+ female_formal:
10
+ Харитина Христина Хорошава
11
+
12
+ unisex_formal:
@@ -0,0 +1,8 @@
1
+ Ц:
2
+ male_formal:
3
+ Цветан Цветимир Цедеда Целибор Целимир Цтибог Цтибор Цтирад Цтислав Цукан
4
+
5
+ female_formal:
6
+ Цвета Цветава Цветана Цыба
7
+
8
+ unisex_formal:
@@ -0,0 +1,12 @@
1
+ Ч:
2
+ male_formal:
3
+ Чадобор Чадогость Чадодраг Чадомил Чадомир Чаебуд Чаевой Чаевуй Чаегость Чаеслав Чаестрый Чапонос Чач Чаян Череда
4
+ Чернота Черноус Черныш Чернь Черняк Чеслав Честа Честен Честибог Честибор Честиброн Честивой Честигнев Честимил
5
+ Честимир Честимысл Честирад Честислав Четверик Четырь Чех Чилига Чина Чистомил Чистосвет Чистослав Чрен Чстень
6
+ Чтан Чтибор Чтимир Чтирад Чтислав Чудак Чудимир Чужедраг Чужимир Чужесуд Чудород Чулок Чура Чурик Чурила Чурослав
7
+ Чус Чух
8
+
9
+ female_formal:
10
+ Частава Чара Чарна Чаруша Чаяна Чернава Чеслава Чилика
11
+
12
+ unisex_formal:
@@ -0,0 +1,9 @@
1
+ Ш:
2
+ male_formal:
3
+ Шадр Шарко Шварн Шелеп Шемяка Шестак Шигона Шипуля Ширяй Ших Шишка Шмель Шостак Шуба Шукля Шукша Шульга Шумило
4
+ Шумиха Шуст Шутибор
5
+
6
+ female_formal:
7
+ Шадра Шарка Шварнедь Шутиха
8
+
9
+ unisex_formal:
@@ -0,0 +1,8 @@
1
+ Щ:
2
+ male_formal:
3
+ Щадило Щапа Щебениха Щедрик Щек Щекарь Щеня Щерб Щерба Щербан Щетина Щило Щука
4
+
5
+ female_formal:
6
+ Щедра Щепетуха
7
+
8
+ unisex_formal:
@@ -0,0 +1,11 @@
1
+ Э:
2
+ male_formal:
3
+ Элемир Эней Эдуард Эммануил Эмиль Эраст Эрнест Эрнст
4
+
5
+ male_informal:
6
+ Эдик
7
+
8
+ female_formal:
9
+ Эвелиня Элеонора Эльвира Эмилия Эмма
10
+
11
+ unisex_formal:
@@ -0,0 +1,14 @@
1
+ Ю:
2
+ male_formal:
3
+ Юрас Юрий Юша Ювеналий Юлиан Юлий
4
+
5
+ male_informal:
6
+ Юра
7
+
8
+ female_formal:
9
+ Юлия Юлиана
10
+
11
+ female_informal:
12
+ Юля
13
+
14
+ unisex_formal:
@@ -0,0 +1,9 @@
1
+ Я:
2
+ male_formal:
3
+ Явдята Яволод Явор Ягнило Ядрей Ядринец Ядыка Язвец Яловец Ян Янислав Яр Ярек Ярец Яробор Яробуд Ярогнев Яролик
4
+ Яролюб Яромил Яромир Яромудр Ярополк Яросвет Ярослав Ярун Ярыш Ячменёк Яков Ян Якуб Януарий Ярополк Ярослав Янка
5
+
6
+ female_formal:
7
+ Ядвига Ярослава Ягода Ядрана Яна Янина Яра Ярина Яробка Яромила Яромира Яронега
8
+
9
+ unisex_formal:
@@ -0,0 +1,3 @@
1
+ module MaleOrFemale
2
+ VERSION = '1.0.0'
3
+ end
@@ -0,0 +1,83 @@
1
+ # encoding: UTF-8
2
+
3
+ require 'male_or_female/version'
4
+ require 'unicode_utils'
5
+ require 'yaml'
6
+
7
+ module MaleOrFemale
8
+
9
+ #COMPILED_DIR = './lib/male_or_female/data_compiled'
10
+ #SOURCE_DIR = './lib/male_or_female/data_source'
11
+
12
+ COMPILED_DIR = File.expand_path('../male_or_female/data_compiled', __FILE__)
13
+ SOURCE_DIR = File.expand_path('../male_or_female/data_source', __FILE__)
14
+
15
+ UNKNOWN = :unknown
16
+
17
+ MALE, FEMALE, UNISEX = :male, :female, :unisex
18
+ GENDERS = [FEMALE, MALE, UNISEX]
19
+ FORMAL, INFORMAL = :formal, :informal
20
+ FORMATS = [INFORMAL, UNISEX, FORMAL]
21
+
22
+ class Detector
23
+ def initialize(name, options = {})
24
+ source = options[:source] || 'source'
25
+ @name = prepare_name(name)
26
+ @data = load_data(@name[0], source.to_sym)
27
+ @result = detect
28
+ end
29
+
30
+ def gender
31
+ result = nil
32
+ GENDERS.each { |gender| result = gender if @result =~ /(\s|^)(#{gender})[_]/i }
33
+ result.nil? ? UNKNOWN : result
34
+ end
35
+
36
+ def format
37
+ result = nil
38
+ FORMATS.each { |format| return format if @result =~ /[_](#{format})/i }
39
+ result.nil? ? UNKNOWN : result
40
+ end
41
+
42
+ # PRIVATE
43
+ private
44
+
45
+ def load_data(letter, source = :source)
46
+ case source
47
+ when :source
48
+ source = "#{SOURCE_DIR}/ru/#{UnicodeUtils.downcase(letter)}.yaml"
49
+ return nil unless File.exist?(source)
50
+ YAML.load_file(File.open(source))
51
+ when :compiled
52
+ YAML.load_file(File.open("#{COMPILED_DIR}/ru.yaml"))
53
+ else
54
+ raise ArgumentError.new("Invalid source option: #{source}")
55
+ end
56
+ end
57
+
58
+ # Проверет имя (возьмет первую букву от имени, проверит значение в
59
+ # в хеше @data[:первая_буква]).
60
+ #
61
+ # Вернет: 'male_formal', 'female_formal', 'unisex' etc.
62
+ def detect
63
+ result = nil
64
+
65
+ return result if @data.nil? || @data[@name[0]].nil?
66
+
67
+ # ["male_formal", "Август Авдей Аверкий ... "]
68
+ @data[@name[0]].each do |sex|
69
+ next if sex[1].nil?
70
+ result = sex[0] if sex[1] =~ /(\s|^)(#{@name})(\s|$)/i
71
+ end
72
+ result
73
+ end
74
+
75
+ def prepare_name(name)
76
+ name = UnicodeUtils.downcase(name).strip
77
+ name[0] = UnicodeUtils.upcase(name[0])
78
+ name
79
+ rescue
80
+ raise ArgumentError.new('Name should be a string')
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,26 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'male_or_female/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'male_or_female'
8
+ spec.version = MaleOrFemale::VERSION
9
+ spec.authors = 'Alex Shilov'
10
+ spec.email = 'sashapashamasha@gmail.com'
11
+ spec.description = 'Гем для распознования пола по имени человека, а также формального/неформального формата имени. http://typograf.herokuapp.com/gender'
12
+ spec.summary = 'What the gender by name. Russian names supported only.'
13
+ spec.homepage = 'https://github.com/shlima/MaleOrFemale'
14
+ spec.license = 'MIT'
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ['lib']
20
+
21
+ spec.add_development_dependency 'bundler', '~> 1.3'
22
+ spec.add_development_dependency 'rake'
23
+ spec.add_development_dependency 'colorize'
24
+
25
+ spec.add_runtime_dependency 'unicode_utils'
26
+ end