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.