Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

by instances #45

Merged
merged 1 commit into from
Jul 11, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions src/main/resources/by.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
include "by/address.conf"
include "by/name.conf"
include "by/internet.conf"
include "by/phone.conf"
include "by/company.conf"
251 changes: 251 additions & 0 deletions src/main/resources/by/address.conf

Large diffs are not rendered by default.

20 changes: 20 additions & 0 deletions src/main/resources/by/company.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
include "name.conf"
include "address.conf"

company {
prefixes = [ІП, ТАА, ЗАТ, ААТ, НКА, ТСЖ, ОП]
suffixes = [Снаб, Торг, Пром, Трейд, Сбыт]

company-name-builder = {
options = [
{parts = [{type = "seq-string-part", value = ${company.prefixes}, suffix = " "}, {type = "seq-string-part", value = ${name.first.female-names}}]},
{parts = [{type = "seq-string-part", value = ${company.prefixes}, suffix = " "}, {type = "seq-string-part", value = ${name.first.male-names}}]},
{parts = [{type = "seq-string-part", value = ${company.prefixes}, suffix = " "}, {type = "seq-string-part", value = ${name.last.male-names}}]},
{parts = [{type = "seq-string-part", value = ${company.prefixes}, suffix = " "}, {type = "seq-string-part", value = ${company.suffixes}}, {type = "seq-string-part", value = ${company.suffixes}}]},
{parts = [{type = "seq-string-part", value = ${company.prefixes}, suffix = " "}, {type = "seq-string-part", value = ${company.suffixes}}, {type = "seq-string-part", value = ${company.suffixes}}, {type = "seq-string-part", value = ${company.suffixes}}]},
{parts = [{type = "seq-string-part", value = ${company.prefixes}, suffix = " "}, {type = "string-builder-part", value = ${address.city-builder}}, {type = "seq-string-part", value = ${company.suffixes}}]},
{parts = [{type = "seq-string-part", value = ${company.prefixes}, suffix = " "}, {type = "string-builder-part", value = ${address.city-builder}}, {type = "seq-string-part", value = ${company.suffixes}}, {type = "seq-string-part", value = ${company.suffixes}}]},
{parts = [{type = "seq-string-part", value = ${company.prefixes}, suffix = " "}, {type = "string-builder-part", value = ${address.city-builder}}, {type = "seq-string-part", value = ${company.suffixes}}, {type = "seq-string-part", value = ${company.suffixes}}, {type = "seq-string-part", value = ${company.suffixes}}]}
]
}
}
4 changes: 4 additions & 0 deletions src/main/resources/by/internet.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
internet {
domain-suffixes = [com, ru, info, бел, net, org, by]
free-email-domains = [yandex.ru, ya.ru, mail.ru, gmail.com, yahoo.com, hotmail.com]
}
30 changes: 30 additions & 0 deletions src/main/resources/by/name.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name {
first {
male-names = [Аляксандр, Аляксей, Альберт, Анатоль, Андрэй, Антон, Аркадзь, Арсеній, Арцём, Барыс, Вадзім, Валянцін, Валерый, Васіль, Віктар, Віталь, Уладзімір, Уладзіслаў, Вячаслаў, Генадзь, Георгій, Герман, Рыгор, Данііл, Дзяніс, Дзмітрый, Яўген, Ягор, Іван, Ігнат, Ігар, Ілля, Канстанцін, Лаўрэнцій, Леанід, Лука, Макар, Максім, Мацвей, Міхаіл, Мікіта, Мікалай, Алег, Раман, Сямён, Сяргей, Станіслаў, Сцяпан, Фёдар, Эдуард, Юрый, Яраслаў]
female-names = [Ганна, Алёна, Аляўціна, Аляксандра, Аліна, Ала, Анастасія, Ангеліна, Анжэла, Анжаліка, Антонида, Антаніна, Анфіса, Арына, Валянціна, Валерыя, Варвара, Васіліса, Вера, Вераніка, Вікторыя, Галіна, Дар'я, Яўгенія, Кацярына, Алена, Лізавета, Жанна, Зінаіда, Зоя, Ірына, Кіра, Клаўдзія, Ксенія, Ларыса, Лідзія, Любоў, Людміла, Маргарыта, Марына, Марыя, Надзея, Наталля, Ніна, Аксана, Вольга, Раіса, Рэгіна, Рыма, Святлана, Сафія, Таісія, Тамара, Таццяна, Ульяна, Юлія]
names = ${name.first.male-names} [] ${name.first.female-names}
}
middle {
male-names = [Аляксандравіч, Аляксеевіч, Альбертавіч, Анатольевіч, Андрэевіч, Антановіч, Аркадзевіч, Арсеньевіч, Арцёмавіч, Барысавіч, Вадзімавіч, Валянцінавіч, Валер'евіч, Васільевіч, Віктаравіч, Вітальевіч, Уладзіміравіч, Уладзіслававіч, Вячаслававіч, Генадзьевіч, Георгіевіч, Германовіч, Рыгоравіч, Данілавіч, Дзянісавіч, Дзмітрыевіч, Яўгеньевіч, Ягоравіч, Іванавіч, Ігнатавіч, Ігаравіч, Ільіча, Канстанцінавіч, Лаўрэнцьевіч, Леанідавіч, Лукіч, Макаравіч, Максімавіч, Мацвеевіч, Міхайлавіч, Нікіціч, Мікалаевіч, Алегавіч, Рамановіч, Сямёнавіч, Сяргеевіч, Станіслававіч, Сцяпанавіч, Фёдаравіч, Эдуардавіч, Юр'евіч, Яраслававіч]
female-names = [Аляксандраўна, Аляксееўна, Альбертаўна, Анатольеўна, Андрэеўна, Антонаўна, Аркадзьеўна, Арсеньеўна, Арцёмаўна, Барысаўна, Вадзімаўна, Валянцінаўна, Валер'еўна, Васільеўна, Віктараўна, Вітальеўна, Уладзіміраўна, Уладзіславаўна, Вячаславаўна, Генадзьеўна, Георгіеўна, Германовна, Рыгораўна, Данииловна, Дзянісаўна, Дзмітрыеўна, Яўгенаўна, Ягораўна, Іванаўна, Ігнацьеўна, Ігараўна, Ільінічна, Канстанцінаўна, Лаўрэнцьеўна, Леанідаўна, Макараўна, Максімаўна, Мацвееўна, Міхайлаўна, Мікітаўна, Мікалаеўна, Алегаўна, Раманаўна, Сямёнаўна, Іванаўна, Станіславаўна, Сцяпанаўна, Фёдараўна, Эдуардаўна, Юр'еўна, Ярославовна]
names = ${name.middle.male-names} [] ${name.middle.female-names}
}
last {
male-names = [Смірноў, Іваноў, І. Кузняцоў, Папоў, Сакалоў, Лебедзеў, Казлоў, Новікаў, Марозаў, Пятроў, Ваўкоў, Салаўёў, Васільеў, Зайцаў, Паўлаў, Сямёнаў, Голубеў, Вінаградаў, Багданаў, Вараб'ёў, Фёдараў, Міхайлаў, Бяляеў, Тарасаў, Бялоў, Камароў, Арлоў, Кісялёў, Макараў, Андрэеў, Кавалёў, Ільін, Гусеў, Цітоў, Кузьмін, Кудраўцаў, Баранаў, Кулікоў, Аляксееў, Сцяпанаў, Якаўлеў, Сарокін, Сяргееў, Раманаў, Захараў, Барысаў, Каралеў, Герасімаў, Панамароў, Грыгор'еў, Лазараў, Мядзведзеў, Яршоў, Нікіцін, Собалеў, Рабаў, Палякаў, Кветак, Данілаў, Жукоў, Фралоў, Жураўлёў, Нікалаеў, Крылоў, Максімаў, Сідараў, Осіпаў, Белавусаў, Фядотаў, Дарафееў, Ягораў, Мацвееў, Баброў, Дзмітрыеў, Калінін, Анісімаў, Пеўняў, Антонаў, Цімафееў, Нікіфараў, Весялоў, Філіпаў, Маркаў, Бальшакоў, Суханаў, Міронаў, Шыраеў, Аляксандраў, Канавалаў, Шастакоў, Казакоў, Яфімаў, Дзянісаў, Громаў, Фамін, Давыдаў, Мельнікаў, Шчарбакоў, Бліноў, Калеснікаў, Карпаў, Афанасьеў, Уласаў, Маслаў, Ісакаў, Ціханаў, Аксёнаў, Гаўрылаў, Радзівонаў, Катоў, Гарбуноў, Кудрашоў, Быкаў, Зуеў, Траццякоў, Савельеў, Паноў, Рыбакоў, Сувораў, Абрамаў, Воранаў, Мухін, Архіпаў, Трафімаў, Мартынаў, Емяльянаў, Гаршкоў, Чарноў, Аўчыннікаў, Селязнёў, Панфілаў, Капылоў, Міхееў, Галкін, Назараў, Лабанаў, Лукін, Белякоў, Патапаў, Някрасаў, Хахлоў, Жданаў, Навумаў, Шылаў, Варанцоў, Ермакоў, Драздоў, Ігнацьеў, Савін, Лагінаў, Сафонаў, Капусцін, Кірылаў, Маісееў, Елісееў, Кошалеў, Косцін, Гарбачоў, Арэхаў, Яфрэмаў, Ісаеў, Еўдакімаў, Калашнікаў, Дзікоў, Шкарпэтак, Юдзін, Кулагін, Лапін, Прохараў, Несцераў, Харытонаў, Агафонаў, Мурашак, Ларыёнаў, Федасееў, Зімін, Пахомаў, Шубін, Ігнатаў, Філатаў, Крукаў, Рагоў, Кулакоў, Цярэнцьеў, Малчанаў, Уладзіміраў, Арцем'еў, Гур'еў, Зіноўеў, Грышын, Конанаў, Дзяменцьеў, Сітнікаў, Сіманаў, Мішын, Фадзееў, Камісараў, Мамантаў, Носаў, Гуляеў, Шароў, Усцінаў, Вішнякоў, Яўсееў, Лаўрэнцьеў, Брагін, Канстанцінаў, Карнілаў, Аўдзееў, Зыкаў, Бірукоў, Шарапаў, Ніканаў, Шчукін, Дзячкоў, Адзінцоў, Сазонаў, Якушаў, Красільнікаў, Гардзееў, Самойлаў, Князеў, Бяспалаў, Увараў, Шашкоў, Бабылёў, Даронін, Белазёраў, Ражкоў, Самсонаў, Мяснікоў, Ліхачоў, Бураў, Сысоеў, Фамічоў, Русакоў, Стралкоў, Гушчын, Цяцерын, Колобов, Субоцін, Фокін, Блахін, Селіверстаў, Пестов, Кандрацьеў, Сілін, Меркушев, Лыткін, Тураў]
female-names = [Смірнова, Іванова, Кузняцова, Папова, Сакалова, Лебедзева, Казлова, Новікава, Марозава, Пятрова, Волкава, Салаўёва, Васільева, Зайцава, Паўлава, Сямёнава, Голубева, Вінаградава, Багданава, Вараб'ёва, Фёдарава, Міхайлава, Бяляева, Тарасава, Бялова, Камарова, Арлова, Кісялёва, Макарава, Андрэева, Кавалёва, Ільіна, Гусева, Цітова, Кузьміна, Кудраўцава, Баранава, Кулікова, Аляксеева, Сцяпанава, Якаўлева, Сарокіна, Сяргеева, Раманава, Захарава, Барысава, Каралева, Герасімава, Панамарова, Грыгор'ева, Лазарава, Мядзведзева, Яршова, Нікіціна, Собалева, Рабава, Палякова, Цвяткова, Данілава, Жукава, Фралова, Жураўлёва, Мікалаева, Крылова, Максімава, Сідарава, Осіпава, Белавусава, Фядотава, Дарафеева, Ягорава, Матвеева, Баброва, Дзмітрыева, Калініна, Анісімава, Петухова, Антонава, Цімафеева, Нікіфарава, Весялова, Філіпава, Маркава, Бальшакова, Суханава, Міронава, Ширяева, Аляксандрава, Канавалава, Шастакова, Казакова, Яфімава, Дзянісава, Громава, Фаміна, Давыдава, Мельнікава, Шчарбакова, Блінова, Калеснікава, Карпава, Афанасьева, Уласава, Маслава, Ісакава, Ціханава, Аксёнава, Гаўрылава, Радзівонава, Котава, Гарбунова, Кудрашова, Быкава, Зуева, Траццякова, Савельева, Панова, Рыбакова, Суворава, Абрамава, Воранава, Мухіна, Архіпава, Трафімава, Мартынава, Емяльянава, Гаршкова, Чарнова, Аўчыннікава, Селязнёва, Панфілава, Копылова, Міхеева, Галкіна, Назарава, Лабанава, Лукіна, Белякова, Патапава, Някрасава, Хахлова, Жданава, Навумава, Шылава, Варанцова, Ермакова, Драздова, Ігнацьева, Савіна, Логінава, Сафонава, Капусціна, Кірылава, Маісеева, Елісеева, Кошалева, Косціна, Гарбачова, Арэхава, Яфрэмава, Ісаева, Еўдакімава, Калашнікава, Кабанава, Наскова, Юдзіна, Кулагіна, Лапіна, Прохарава, Несцерава, Харытонава, Агафонава, Мураўёва, Ларыёнава, Федасеева, Зіміна, Пахомава, Шубіна, Ігнатава, Філатава, Крукава, Рогава, Кулакова, Цярэнцьева, Малчанава, Уладзімірава, Арцем'ева, Гур'ева, Зіноўева, Грышына, Конанава, Дзяменцьева, Сітнікава, Сіманава, Мішына, Фадзеева, Камісарава, Мамантава, Носава, Гуляева, Шарова, Усцінава, Вішнякова, Яўсеева, Лаўрэнцьева, Брагіна, Канстанцінава, Карнілава, Аўдзеева, Зыкава, Бірукова, Шарапава, Ніканава, Шчукіна, Дзьячкова, Адзінцова, Сазонава, Якушава, Красільнікава, Гардзеева, Самойлава, Князева, Бяспалава, Уварава, Шашкова, Бобылева, Дароніна, Белазёрава, Ражкова, Самсонава, Мяснікова, Ліхачова, Бурава, Сысоева, Фамічова, Русакова, Стралкова, Гушчына, Цяцерына, Колабава, Субоціна, Фокіна, Блахіна, Селіверстава, Пестова, Кандрацьева, Сілін, Меркушева, Лыткіна, Турава]
names = ${name.last.male-names} [] ${name.last.female-names}
}
full-name-builder = {
options = [
{parts = [{type = "seq-string-part", value = ${name.first.male-names}, suffix = " "}, {type = "seq-string-part", value = ${name.last.male-names}}]},
{parts = [{type = "seq-string-part", value = ${name.last.male-names}, suffix = " "}, {type = "seq-string-part", value = ${name.first.male-names}}]},
{parts = [{type = "seq-string-part", value = ${name.first.male-names}, suffix = " "}, {type = "seq-string-part", value = ${name.middle.male-names}, suffix = " "}, {type = "seq-string-part", value = ${name.last.male-names}}]},
{parts = [{type = "seq-string-part", value = ${name.last.male-names}, suffix = " "}, {type = "seq-string-part", value = ${name.first.male-names}, suffix = " "}, {type = "seq-string-part", value = ${name.middle.male-names}}]},
{parts = [{type = "seq-string-part", value = ${name.first.female-names}, suffix = " "}, {type = "seq-string-part", value = ${name.last.female-names}}]},
{parts = [{type = "seq-string-part", value = ${name.last.female-names}, suffix = " "}, {type = "seq-string-part", value = ${name.first.female-names}}]},
{parts = [{type = "seq-string-part", value = ${name.first.female-names}, suffix = " "}, {type = "seq-string-part", value = ${name.middle.female-names}, suffix = " "}, {type = "seq-string-part", value = ${name.last.female-names}}]},
{parts = [{type = "seq-string-part", value = ${name.last.female-names}, suffix = " "}, {type = "seq-string-part", value = ${name.first.female-names}, suffix = " "}, {type = "seq-string-part", value = ${name.middle.female-names}}]},
]
}
full-name-with-middle-builder = ${name.full-name-builder}
}
4 changes: 4 additions & 0 deletions src/main/resources/by/phone.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
phone {
phone-number-builder = {options = [{parts = [{type = "string-part", value = "+375(##)###-##-##"}]}]}
cell-number-builder = {options = [{parts = [{type = "string-part", value = "+375(##)###-##-##"}]}]}
}
6 changes: 4 additions & 2 deletions src/main/scala/faker/Faker.scala
Original file line number Diff line number Diff line change
Expand Up @@ -326,6 +326,10 @@ final class Faker(private[faker] val locale: Locale) {
object Faker {
// $COVERAGE-OFF$
val default: Faker = new Faker(SupportedLocales.default)

val ar: Faker = new Faker(SupportedLocales.ar)
val bg: Faker = new Faker(SupportedLocales.bg)
val by: Faker = new Faker(SupportedLocales.by)
val en: Faker = new Faker(SupportedLocales.en)
val en_US: Faker = new Faker(SupportedLocales.en_US)
val en_CA: Faker = new Faker(SupportedLocales.en_CA)
Expand All @@ -340,7 +344,5 @@ object Faker {
val en_SG: Faker = new Faker(SupportedLocales.en_SG)
val en_UG: Faker = new Faker(SupportedLocales.en_UG)
val en_ZA: Faker = new Faker(SupportedLocales.en_ZA)
val ar: Faker = new Faker(SupportedLocales.ar)
val bg: Faker = new Faker(SupportedLocales.bg)
// $COVERAGE-ON$
}
6 changes: 4 additions & 2 deletions src/main/scala/faker/ResourceLoader.scala
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,10 @@ final class ResourceLoader(private[faker] val locale: Locale) {
object ResourceLoader {
// $COVERAGE-OFF$
val default: ResourceLoader = new ResourceLoader(SupportedLocales.default)

val ar: ResourceLoader = new ResourceLoader(SupportedLocales.ar)
val bg: ResourceLoader = new ResourceLoader(SupportedLocales.bg)
val by: ResourceLoader = new ResourceLoader(SupportedLocales.by)
val en: ResourceLoader = new ResourceLoader(SupportedLocales.en)
val en_US: ResourceLoader = new ResourceLoader(SupportedLocales.en_US)
val en_CA: ResourceLoader = new ResourceLoader(SupportedLocales.en_CA)
Expand All @@ -60,8 +64,6 @@ object ResourceLoader {
val en_SG: ResourceLoader = new ResourceLoader(SupportedLocales.en_SG)
val en_UG: ResourceLoader = new ResourceLoader(SupportedLocales.en_UG)
val en_ZA: ResourceLoader = new ResourceLoader(SupportedLocales.en_ZA)
val ar: ResourceLoader = new ResourceLoader(SupportedLocales.ar)
val bg: ResourceLoader = new ResourceLoader(SupportedLocales.bg)

object Implicits {
implicit val defaultResourceLoader: ResourceLoader = default
Expand Down
15 changes: 15 additions & 0 deletions src/main/scala/faker/StringGenBuilder.scala
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import org.scalacheck.Gen
import pureconfig.ConfigReader
import pureconfig.generic.semiauto._

import faker.address.DefaultCountry
import faker.syntax.string._

private[faker] final case class StringGenBuilder(
Expand Down Expand Up @@ -118,6 +119,20 @@ object StringBuilderPart {
deriveReader
}

private[faker] final case class DefaultCountryPart(
prefix: Option[String],
suffix: Option[String],
value: Seq[DefaultCountry]
) extends StringGenBuilderPart {
val valueGen: Gen[String] = Gen.oneOf(value.map(_.code))
}

object DefaultCountryPart {
implicit val defaultCountryPartConfigReader
: ConfigReader[DefaultCountryPart] =
deriveReader
}

private[faker] final case class StringGenBuilderWeightedOption(
parts: List[StringGenBuilderPart],
weight: Int = 1
Expand Down
Loading