Belka

TODO: Write a gem description

Installation

Add this line to your application’s Gemfile:

gem 'belka'

And then execute:

$ bundle

Or install it yourself as:

$ gem install belka

Введение

Часто встает задача заполнения баз данных «белкой», т.е. случайно сгенерированными данными, похожими на настоящие. Данный gem аналогичен русскому генератору Ryba И больше того спизжен до последней строчки кода с небольшими изменениями касающихся Беларуси.

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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


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

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

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


  >> Belka::PhoneNumber.phone_number
  => "8-(078)(5) 129-45-53"
  >> Belka::PhoneNumber.phone_number
  => "8-(078) 924-78-14"

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

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

Belka::Address.index — случайный почтовый индекс (просто случайное число между 220000 и 224033). _Пример: 223170.

Belka::Address.city – случайный город Беларуси. Пример: “Несвиж”.

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

  • “Гомельская обл., г. Житковичи”;
  • “г. Гродно”;
  • “г. Минск”.

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

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

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

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

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

  • “242733, Минская обл., г. Любань, ул. Куйбышева, 42-22”;
  • “220730, Гомельская обл., г. Житковичи, ул. Волжская, д. 175, кв. 7”;
  • “223251, Гродненская обл., г. Дятлово, ул. Ворошилова, д.153, кв.225”;

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

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

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

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

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

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

Contributing

1. Fork it ( https://github.com/[my-github-username]/belka/fork ) 2. Create your feature branch (`git checkout -b my-new-feature`) 3. Commit your changes (`git commit -am ‘Add some feature’`) 4. Push to the branch (`git push origin my-new-feature`) 5. Create a new Pull Request

Лицензия

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