Skip to content

be9/ryba

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ryba

Введение

Часто встает задача заполнения баз данных «рыбой», т.е. случайно сгенерированными данными,
похожими на настоящие.

К таким данным относятся:

  • ФИО.
  • Почтовые адреса (индекс, город, улица, дом, квартира).
  • Телефоны.
  • E-mail адреса.
  • Названия.
  • «Просто текст» для больших текстовых полей.

Есть gemы, умеющие генерировать такие данные на английском: faker,
random_data и другие.

Ryba — попытка создать аналогичный генератор для русского языка: русские имена, адреса и т.д.

Библиотека находится в активной разработке. На данный момент реализованы:

  • Генерация имен людей.
  • Генерация телефонов.
  • Генерация адресов.
  • Генерация имен компаний.

Ниже описан интерфейс для реализованных возможностей.

Генерация имен людей

Методы из Ryba::Name.

Ryba::Name.first_name(male = nil) — случайное имя.

Ryba::Name.middle_name(male = nil) — случайное отчество.

Ryba::Name.family_name(male = nil) — случайная фамилия.

Ryba::Name.full_name(male = nil) — случайное ФИО (например, “Щетинин Камилл Ростиславович”).

Параметр male указывает пол (true — мужской, false — женский). Если параметр не указывать,
будет выбран случайный пол.

Чтобы получить имена для одного пола, можно воспользоваться методом Ryba::Name.gender,
возвращающим случайный пол. Либо простым вызовом:


  gender = Ryba::Name.gender
  first_name = Ryba::Name.first_name(gender)
  family_name = Ryba::Name.family_name(gender)

…либо с помощью блока


  Ryba::Name.gender do |gender|
    first_name = Ryba::Name.first_name(gender)
    family_name = Ryba::Name.family_name(gender)
  end

Генерация телефонов

Метод Ryba::PhoneNumber.phone_number.


  >> Ryba::PhoneNumber.phone_number
  => "2-26-47"
  >> Ryba::PhoneNumber.phone_number
  => "431-15-94"
  >> Ryba::PhoneNumber.phone_number
  => "8 (87829) 9-45-53"
  >> Ryba::PhoneNumber.phone_number
  => "5515328"
  >> Ryba::PhoneNumber.phone_number
  => "(2397) 94 78 14"

Генерация адресов

Методы из Ryba::Address.

Ryba::Address.index — случайный почтовый индекс (просто случайное число между 100000 и 700000). Пример: 149544.

Ryba::Address.city – случайный город России. Пример: “Выкса”.

Ryba::Address.full_city – случайный город с указанием региона, если это необходимо (город не является областным центром). Примеры:

  • “Брянская обл., г. Унеча”;
  • “г. Ярославль”;
  • “г. Москва”.

Ryba::Address.street – случайное название улицы. Примеры:

  • “ул. Бородина”;
  • “Красный пер.”;
  • “1 линия”.

Ryba::Address.address – случайный адрес. Примеры:

  • “ул. Щербакова 130-279”;
  • “ул. Невская, д.167, оф. 32”;
  • “Пушкинский пер., д. 36, кв.234”;
  • “ул. Базарная, д. 182к2, 5-й эт.”.

Ryba::Address.postal – случайный полный почтовый адрес. Примеры:

  • “242733, Рязанская обл., г. Спас-Клепики, ул. Куйбышева, 42-22”;
  • “471408, Челябинская обл., г. Златоуст, ул. Квартальная, 174-282”;
  • “195730, Воронежская обл., г. Калач, ул. Волжская, д. 175, кв. 7”;
  • “342656, Краснодарский край, г. Лабинск, ул. Ворошилова, д.153, кв.225”;
  • “209218, Сахалинская обл., г. Корсаков, ул. Мусоргского д. 65 кв. 206”;
  • “485245, г. Курган, ул. Литвинова д.173 кв. 245”.

Обратите внимание, что индекс не является настоящим и что в городе может не быть
такой улицы (а на улице — такого дома, а в доме — такой квартиры).

Генерация имен компаний

Ryba::Company.name – случайное имя компании. Примеры:

  • ПродуктАэро
  • ТрастСеть
  • СалоКондитер
  • РезервФабрика
  • ДжинсКредит

Опция :solidity позволяет управлять длиной имени. Например, Ryba::Company.name(:solidity => 3)
генерирует более солидное имя для компании:

  • ТехВоенКомбинатАкадем Групп
  • ТеплоМаркетТоргСинтез
  • ПрофСайтВалютСвязь
  • ТрейдингКоммерцКомТелеком
  • ГосСервисСпецСтанция

Лицензия

Библиотека ryba распространяется по лицензии MIT, см. файл MIT-LICENSE.

Автор: Олег Дашевский, “#{%w(Oleg Dashevskii).join(’’).downcase}@gmail.com”

About

Генератор "рыб": адресов, телефонов и т.д.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages