ffaker 2.18.0 → 2.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Changelog.md +10 -0
- data/REFERENCE.md +1406 -1302
- data/ffaker.gemspec +2 -4
- data/lib/ffaker.rb +13 -3
- data/lib/ffaker/address_au.rb +1 -1
- data/lib/ffaker/address_br.rb +1 -1
- data/lib/ffaker/address_ca.rb +1 -1
- data/lib/ffaker/address_it.rb +37 -0
- data/lib/ffaker/address_mx.rb +2 -8
- data/lib/ffaker/company_fr.rb +35 -0
- data/lib/ffaker/{courses.rb → courses_fr.rb} +2 -0
- data/lib/ffaker/data/address_br/city +0 -1
- data/lib/ffaker/data/address_br/state +1 -1
- data/lib/ffaker/data/address_it/city +111 -0
- data/lib/ffaker/data/address_it/region +20 -0
- data/lib/ffaker/data/food_pl/fermented +1 -1
- data/lib/ffaker/data/food_pl/fruits +1 -1
- data/lib/ffaker/data/food_pl/herbs +1 -1
- data/lib/ffaker/data/food_pl/meats +1 -1
- data/lib/ffaker/data/food_pl/preserves +1 -1
- data/lib/ffaker/data/food_pl/spices +1 -1
- data/lib/ffaker/data/food_pl/vegetables +1 -1
- data/lib/ffaker/data/game/adj_and_adv +18 -0
- data/lib/ffaker/data/game/category +84 -0
- data/lib/ffaker/data/game/mechanic +182 -0
- data/lib/ffaker/data/game/nouns +37 -0
- data/lib/ffaker/data/game/prefixes +17 -0
- data/lib/ffaker/data/job_it/job_adj +37 -0
- data/lib/ffaker/data/job_it/job_noun +25 -0
- data/lib/ffaker/data/job_it/job_prefix +22 -0
- data/lib/ffaker/data/lorem_br/characters +36 -0
- data/lib/ffaker/data/lorem_br/words +183 -0
- data/lib/ffaker/data/lorem_it/words +321 -0
- data/lib/ffaker/data/name/pronouns +1 -1
- data/lib/ffaker/data/name_ga/first_names_male +286 -286
- data/lib/ffaker/data/sport_ru/summer +68 -0
- data/lib/ffaker/data/sport_ru/winter +20 -0
- data/lib/ffaker/freedom_ipsum.rb +1 -1
- data/lib/ffaker/game.rb +33 -0
- data/lib/ffaker/gender_it.rb +17 -0
- data/lib/ffaker/gender_ru.rb +22 -0
- data/lib/ffaker/identification_it.rb +30 -0
- data/lib/ffaker/job_it.rb +12 -0
- data/lib/ffaker/lorem_br.rb +45 -0
- data/lib/ffaker/lorem_it.rb +39 -0
- data/lib/ffaker/name_th_en.rb +1 -1
- data/lib/ffaker/sport_ru.rb +25 -0
- data/lib/ffaker/ssn_se.rb +0 -19
- data/lib/ffaker/utils/array_utils.rb +1 -1
- data/lib/ffaker/utils/module_utils.rb +23 -3
- data/lib/version.rb +1 -1
- data/scripts/profiling.rb +1 -1
- data/scripts/reference.rb +2 -3
- data/test/helper.rb +1 -1
- data/test/test_address.rb +1 -1
- data/test/test_address_au.rb +1 -1
- data/test/test_address_br.rb +1 -1
- data/test/test_address_ca.rb +1 -1
- data/test/test_address_ch.rb +1 -1
- data/test/test_address_ch_de.rb +1 -1
- data/test/test_address_ch_fr.rb +1 -1
- data/test/test_address_ch_it.rb +1 -1
- data/test/test_address_da.rb +1 -1
- data/test/test_address_de.rb +1 -1
- data/test/test_address_fi.rb +1 -1
- data/test/test_address_fr.rb +1 -1
- data/test/test_address_gr.rb +1 -1
- data/test/test_address_id.rb +1 -1
- data/test/test_address_in.rb +1 -1
- data/test/test_address_it.rb +12 -0
- data/test/test_address_ja.rb +1 -1
- data/test/test_address_kr.rb +1 -1
- data/test/test_address_mx.rb +1 -1
- data/test/test_address_nl.rb +1 -1
- data/test/test_address_pl.rb +1 -1
- data/test/test_address_ru.rb +1 -1
- data/test/test_address_se.rb +1 -1
- data/test/test_address_sn.rb +1 -1
- data/test/test_address_ua.rb +1 -1
- data/test/test_address_uk.rb +1 -1
- data/test/test_address_us.rb +1 -1
- data/test/test_airline.rb +1 -1
- data/test/test_animal.rb +1 -1
- data/test/test_animal_cn.rb +1 -1
- data/test/test_animal_es.rb +1 -1
- data/test/test_animal_pl.rb +1 -1
- data/test/test_animal_us.rb +1 -1
- data/test/test_array_utils.rb +2 -1
- data/test/test_avatar.rb +1 -1
- data/test/test_aws.rb +1 -1
- data/test/test_bacon_ipsum.rb +1 -1
- data/test/test_bank.rb +1 -1
- data/test/test_book.rb +1 -1
- data/test/test_boolean.rb +1 -1
- data/test/test_cheesy_lingo.rb +1 -1
- data/test/test_code.rb +1 -1
- data/test/test_color.rb +1 -1
- data/test/test_color_pl.rb +1 -1
- data/test/test_color_ua.rb +1 -1
- data/test/test_company.rb +1 -1
- data/test/test_company_cn.rb +1 -1
- data/test/test_company_fr.rb +33 -0
- data/test/test_company_it.rb +1 -1
- data/test/test_company_ja.rb +1 -1
- data/test/test_company_se.rb +1 -1
- data/test/test_conference.rb +1 -1
- data/test/test_course_mathematiques.rb +1 -1
- data/test/test_course_philosophie.rb +1 -1
- data/test/test_currency.rb +1 -1
- data/test/test_dizzle_ipsum.rb +1 -1
- data/test/test_education.rb +1 -1
- data/test/test_education_cn.rb +1 -1
- data/test/test_ffaker.rb +1 -1
- data/test/test_filesystem.rb +1 -1
- data/test/test_food.rb +1 -1
- data/test/test_food_pl.rb +1 -1
- data/test/test_freedom_ipsum.rb +1 -1
- data/test/test_game.rb +28 -0
- data/test/test_gender.rb +2 -2
- data/test/test_gender_br.rb +1 -1
- data/test/test_gender_cn.rb +1 -1
- data/test/test_gender_id.rb +1 -1
- data/test/test_gender_it.rb +27 -0
- data/test/test_gender_ja.rb +1 -1
- data/test/test_gender_jp.rb +1 -1
- data/test/test_gender_kr.rb +1 -1
- data/test/test_gender_pl.rb +1 -1
- data/test/test_gender_ru.rb +23 -0
- data/test/test_geolocation.rb +1 -1
- data/test/test_guid.rb +1 -1
- data/test/test_healthcare_ipsum.rb +1 -1
- data/test/test_healthcare_ru.rb +1 -1
- data/test/test_hipster_ipsum.rb +1 -1
- data/test/test_html_ipsum.rb +1 -1
- data/test/test_identification.rb +1 -1
- data/test/test_identification_br.rb +1 -1
- data/test/test_identification_co.rb +1 -1
- data/test/test_identification_es.rb +1 -1
- data/test/test_identification_es_cl.rb +1 -1
- data/test/test_identification_es_mx.rb +1 -1
- data/test/test_identification_in.rb +1 -1
- data/test/test_identification_it.rb +34 -0
- data/test/test_identification_kr.rb +1 -1
- data/test/test_identification_tw.rb +1 -1
- data/test/test_image.rb +1 -1
- data/test/test_internet.rb +1 -1
- data/test/test_internet_se.rb +1 -1
- data/test/test_job.rb +1 -1
- data/test/test_job_br.rb +1 -1
- data/test/test_job_cn.rb +1 -1
- data/test/test_job_fr.rb +1 -1
- data/test/test_job_it.rb +17 -0
- data/test/test_job_ja.rb +1 -1
- data/test/test_job_kr.rb +1 -1
- data/test/test_job_vn.rb +1 -1
- data/test/test_locale.rb +1 -1
- data/test/test_lorem.rb +1 -1
- data/test/test_lorem_ar.rb +1 -1
- data/test/test_lorem_br.rb +62 -0
- data/test/test_lorem_cn.rb +1 -1
- data/test/test_lorem_fr.rb +1 -1
- data/test/test_lorem_ie.rb +1 -1
- data/test/test_lorem_it.rb +51 -0
- data/test/test_lorem_ja.rb +1 -1
- data/test/test_lorem_kr.rb +1 -1
- data/test/test_lorem_pl.rb +1 -1
- data/test/test_lorem_ru.rb +1 -1
- data/test/test_lorem_ua.rb +1 -1
- data/test/test_module_utils.rb +1 -1
- data/test/test_movie.rb +1 -1
- data/test/test_music.rb +1 -1
- data/test/test_name.rb +1 -1
- data/test/test_name_ar.rb +1 -1
- data/test/test_name_br.rb +1 -1
- data/test/test_name_cn.rb +1 -1
- data/test/test_name_cs.rb +1 -1
- data/test/test_name_da.rb +1 -1
- data/test/test_name_de.rb +1 -1
- data/test/test_name_es.rb +1 -1
- data/test/test_name_fr.rb +1 -1
- data/test/test_name_ga.rb +1 -1
- data/test/test_name_gr.rb +1 -1
- data/test/test_name_id.rb +1 -1
- data/test/test_name_it.rb +1 -1
- data/test/test_name_ja.rb +1 -1
- data/test/test_name_kh.rb +1 -1
- data/test/test_name_kr.rb +1 -1
- data/test/test_name_mx.rb +1 -1
- data/test/test_name_nb.rb +1 -1
- data/test/test_name_nl.rb +1 -1
- data/test/test_name_ph.rb +1 -1
- data/test/test_name_pl.rb +1 -1
- data/test/test_name_ru.rb +1 -1
- data/test/test_name_se.rb +1 -1
- data/test/test_name_sn.rb +1 -1
- data/test/test_name_th.rb +1 -1
- data/test/test_name_th_en.rb +1 -1
- data/test/test_name_tw.rb +1 -1
- data/test/test_name_ua.rb +1 -1
- data/test/test_name_vn.rb +1 -1
- data/test/test_nato_alphabet.rb +1 -1
- data/test/test_phone_number.rb +1 -1
- data/test/test_phone_number_au.rb +1 -1
- data/test/test_phone_number_br.rb +1 -1
- data/test/test_phone_number_cu.rb +1 -1
- data/test/test_phone_number_da.rb +1 -1
- data/test/test_phone_number_de.rb +1 -1
- data/test/test_phone_number_fr.rb +1 -1
- data/test/test_phone_number_id.rb +1 -1
- data/test/test_phone_number_ja.rb +1 -1
- data/test/test_phone_number_kr.rb +1 -1
- data/test/test_phone_number_mx.rb +1 -1
- data/test/test_phone_number_nl.rb +1 -1
- data/test/test_phone_number_pl.rb +1 -1
- data/test/test_phone_number_se.rb +1 -1
- data/test/test_phone_number_sg.rb +1 -1
- data/test/test_phone_number_sn.rb +1 -1
- data/test/test_phone_number_tw.rb +1 -1
- data/test/test_phone_number_ua.rb +1 -1
- data/test/test_products.rb +1 -1
- data/test/test_sem_ver.rb +1 -1
- data/test/test_skill.rb +1 -1
- data/test/test_sport_pl.rb +1 -1
- data/test/test_sport_ru.rb +30 -0
- data/test/test_sport_us.rb +1 -1
- data/test/test_sports.rb +1 -1
- data/test/test_ssn.rb +1 -1
- data/test/test_ssn_mx.rb +1 -1
- data/test/test_ssn_se.rb +1 -1
- data/test/test_string.rb +1 -1
- data/test/test_time.rb +1 -1
- data/test/test_tweet.rb +1 -1
- data/test/test_unique_utils.rb +1 -1
- data/test/test_units.rb +2 -1
- data/test/test_units_english.rb +1 -1
- data/test/test_units_metric.rb +1 -1
- data/test/test_vehicle.rb +1 -1
- data/test/test_venue.rb +1 -1
- data/test/test_youtube.rb +1 -1
- metadata +206 -161
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
Бадминтон
|
|
2
|
+
Баскетбол
|
|
3
|
+
Бейсбол
|
|
4
|
+
Бокс
|
|
5
|
+
Борьба
|
|
6
|
+
Велоспорт
|
|
7
|
+
Водное поло
|
|
8
|
+
Волейбол
|
|
9
|
+
Гандбол
|
|
10
|
+
Гольф
|
|
11
|
+
Гребля на байдарках и каноэ
|
|
12
|
+
Гребной слалом
|
|
13
|
+
Гребной спорт
|
|
14
|
+
Дзюдо
|
|
15
|
+
Каратэ
|
|
16
|
+
Конный спорт
|
|
17
|
+
Легкая атлетика
|
|
18
|
+
Настольный теннис
|
|
19
|
+
Парусный спорт
|
|
20
|
+
Плавание
|
|
21
|
+
Пляжный волейбол
|
|
22
|
+
Прыжки в воду
|
|
23
|
+
Прыжки на батуте
|
|
24
|
+
Регби
|
|
25
|
+
Серфинг
|
|
26
|
+
Синхронное плавание
|
|
27
|
+
Скалолазание
|
|
28
|
+
Скейтбординг
|
|
29
|
+
Пятиборье
|
|
30
|
+
Софтбол
|
|
31
|
+
Спортивная гимнастика
|
|
32
|
+
Стрельба
|
|
33
|
+
Стрельба из лука
|
|
34
|
+
Теннис
|
|
35
|
+
Триатлон
|
|
36
|
+
Тхэквондо
|
|
37
|
+
Тяжелая атлетика
|
|
38
|
+
Фехтование
|
|
39
|
+
Футбол
|
|
40
|
+
Хоккей на траве
|
|
41
|
+
Художественная гимнастика
|
|
42
|
+
Крикет
|
|
43
|
+
Шахматы
|
|
44
|
+
Лакросс
|
|
45
|
+
Футбол
|
|
46
|
+
Толкание ядра
|
|
47
|
+
Поло
|
|
48
|
+
Покер
|
|
49
|
+
Метание диска
|
|
50
|
+
Метание копья
|
|
51
|
+
Прыжок с шестом
|
|
52
|
+
Дайвинг
|
|
53
|
+
Прыжки в воду
|
|
54
|
+
Прыжки в длину
|
|
55
|
+
Прыжки в высоту
|
|
56
|
+
Рыбалка
|
|
57
|
+
Греко-римская борьба
|
|
58
|
+
Кудо
|
|
59
|
+
Бильярд
|
|
60
|
+
Айкидо
|
|
61
|
+
Дрессура
|
|
62
|
+
Конкур
|
|
63
|
+
Дартс
|
|
64
|
+
Джиу-джитсу
|
|
65
|
+
Самбо
|
|
66
|
+
Сумо
|
|
67
|
+
Скандинавская ходьба
|
|
68
|
+
Фитнес
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
Биатлон
|
|
2
|
+
Бобслей
|
|
3
|
+
Горнолыжный спорт
|
|
4
|
+
Керлинг
|
|
5
|
+
Конькобежный спорт
|
|
6
|
+
Лыжное двоеборье
|
|
7
|
+
Лыжные гонки
|
|
8
|
+
Прыжки на лыжах с трамплина
|
|
9
|
+
Санный спорт
|
|
10
|
+
Скелетон
|
|
11
|
+
Сноуборд
|
|
12
|
+
Фигурное катание на коньках
|
|
13
|
+
Фристайл
|
|
14
|
+
Хоккей
|
|
15
|
+
Шорт-трек
|
|
16
|
+
Юкигассен
|
|
17
|
+
Ледолазание
|
|
18
|
+
Мотогонки на льду
|
|
19
|
+
Гонки на собачьих упряжках
|
|
20
|
+
Катание на ледяных глыбах
|
data/lib/ffaker/freedom_ipsum.rb
CHANGED
data/lib/ffaker/game.rb
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module FFaker
|
|
4
|
+
module Game
|
|
5
|
+
extend ModuleUtils
|
|
6
|
+
extend self
|
|
7
|
+
|
|
8
|
+
def title
|
|
9
|
+
case rand(0..1)
|
|
10
|
+
when 0 then simple_title
|
|
11
|
+
when 1 then title_with_prefix
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def category
|
|
16
|
+
fetch_sample(CATEGORY)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def mechanic
|
|
20
|
+
fetch_sample(MECHANIC)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
private
|
|
24
|
+
|
|
25
|
+
def simple_title
|
|
26
|
+
"#{fetch_sample(ADJ_AND_ADV)} #{fetch_sample(NOUNS)}"
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def title_with_prefix
|
|
30
|
+
"#{fetch_sample(PREFIXES)} #{simple_title}"
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module FFaker
|
|
4
|
+
module GenderIT
|
|
5
|
+
extend ModuleUtils
|
|
6
|
+
extend self
|
|
7
|
+
|
|
8
|
+
GENDERS = %w[maschio femmina].freeze
|
|
9
|
+
|
|
10
|
+
def random
|
|
11
|
+
fetch_sample(GENDERS)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
alias maybe random
|
|
15
|
+
alias sample random
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module FFaker
|
|
4
|
+
module GenderRU
|
|
5
|
+
extend ModuleUtils
|
|
6
|
+
extend self
|
|
7
|
+
|
|
8
|
+
GENDERS = %w[мужчина женщина нонбайнари агендер].freeze
|
|
9
|
+
BINARY_GENDERS = %w[мужчина женщина].freeze
|
|
10
|
+
|
|
11
|
+
def random
|
|
12
|
+
fetch_sample(GENDERS)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def binary
|
|
16
|
+
fetch_sample(BINARY_GENDERS)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
alias maybe random
|
|
20
|
+
alias sample random
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module FFaker
|
|
4
|
+
module IdentificationIT
|
|
5
|
+
extend ModuleUtils
|
|
6
|
+
extend self
|
|
7
|
+
|
|
8
|
+
ETHNICITIES = [
|
|
9
|
+
'Afroamericano', 'Asiatico/isolano del Pacifico', 'Caucasico', 'Ispanico', 'Nativo americano',
|
|
10
|
+
'Multirazziale', 'Altro', 'Preferisco non rispondere'
|
|
11
|
+
].freeze
|
|
12
|
+
GENDERS = %w[Maschio Femmina].freeze
|
|
13
|
+
|
|
14
|
+
def drivers_license
|
|
15
|
+
FFaker::String.from_regexp(/U1[1-9]\d{7}[A-Z]/)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def ssn
|
|
19
|
+
FFaker.numerify('####################')
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def ethnicity
|
|
23
|
+
fetch_sample(ETHNICITIES)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def gender
|
|
27
|
+
fetch_sample(GENDERS)
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module FFaker
|
|
4
|
+
# Based on Perl's Text::Lorem
|
|
5
|
+
module LoremBR
|
|
6
|
+
extend ModuleUtils
|
|
7
|
+
extend self
|
|
8
|
+
|
|
9
|
+
def characters(character_count = 255)
|
|
10
|
+
character_count = 0 if character_count.negative?
|
|
11
|
+
Array.new(character_count).map { fetch_sample(CHARACTERS) }.join
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def word
|
|
15
|
+
fetch_sample(WORDS)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def words(num = 3)
|
|
19
|
+
fetch_sample(WORDS, count: num)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def sentence(word_count = 4)
|
|
23
|
+
first_word, *last_words = words(word_count + rand(1..5))
|
|
24
|
+
return "#{first_word.capitalize} #{last_words.join(' ')}." if last_words
|
|
25
|
+
|
|
26
|
+
first_word.capitalize
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
alias phrase sentence
|
|
30
|
+
|
|
31
|
+
def sentences(sentence_count = 3)
|
|
32
|
+
(1..sentence_count).map { sentence }
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
alias phrases sentences
|
|
36
|
+
|
|
37
|
+
def paragraph(sentence_count = 3)
|
|
38
|
+
sentences(sentence_count + rand(0..2)).join(' ')
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def paragraphs(paragraph_count = 3)
|
|
42
|
+
(1..paragraph_count).map { paragraph }
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module FFaker
|
|
4
|
+
module LoremIT
|
|
5
|
+
extend ModuleUtils
|
|
6
|
+
extend self
|
|
7
|
+
|
|
8
|
+
def word
|
|
9
|
+
fetch_sample(WORDS)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def words(num = 3)
|
|
13
|
+
fetch_sample(WORDS, count: num)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def sentence(word_count = 4)
|
|
17
|
+
s = words(word_count + rand(0..5))
|
|
18
|
+
s = s.join(' ')
|
|
19
|
+
s.capitalize!
|
|
20
|
+
"#{s}."
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
alias phrase sentence
|
|
24
|
+
|
|
25
|
+
def sentences(sentence_count = 3)
|
|
26
|
+
(1..sentence_count).map { sentence }
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
alias phrases sentences
|
|
30
|
+
|
|
31
|
+
def paragraph(sentence_count = 3)
|
|
32
|
+
sentences(sentence_count + rand(0..2)).join(' ')
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def paragraphs(paragraph_count = 3)
|
|
36
|
+
(1..paragraph_count).map { paragraph }
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
data/lib/ffaker/name_th_en.rb
CHANGED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module FFaker
|
|
4
|
+
# Inspirations:
|
|
5
|
+
# https://olympic.ru/team/sport/
|
|
6
|
+
# http://ru.sport-wiki.org/vidy-sporta/
|
|
7
|
+
module SportRU
|
|
8
|
+
extend ModuleUtils
|
|
9
|
+
extend self
|
|
10
|
+
|
|
11
|
+
ALL = SUMMER + WINTER
|
|
12
|
+
|
|
13
|
+
def name
|
|
14
|
+
fetch_sample(ALL)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def summer
|
|
18
|
+
fetch_sample(SUMMER)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def winter
|
|
22
|
+
fetch_sample(WINTER)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
data/lib/ffaker/ssn_se.rb
CHANGED
|
@@ -76,24 +76,5 @@ module FFaker
|
|
|
76
76
|
def three_character_string(number)
|
|
77
77
|
format('%03d', number)
|
|
78
78
|
end
|
|
79
|
-
|
|
80
|
-
# http://en.wikipedia.org/wiki/Luhn_algorithm
|
|
81
|
-
def luhn_check(number)
|
|
82
|
-
multiplications = []
|
|
83
|
-
|
|
84
|
-
number.split(//).each_with_index do |digit, i|
|
|
85
|
-
multiplications << i.even? ? digit.to_i * 2 : digit.to_i
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
sum = 0
|
|
89
|
-
multiplications.each do |num|
|
|
90
|
-
num.to_s.each_byte do |character|
|
|
91
|
-
sum += character.chr.to_i
|
|
92
|
-
end
|
|
93
|
-
end
|
|
94
|
-
|
|
95
|
-
control_digit = (sum % 10).zero? ? 0 : (sum / 10 + 1) * 10 - sum
|
|
96
|
-
control_digit.to_s
|
|
97
|
-
end
|
|
98
79
|
end
|
|
99
80
|
end
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
require_relative 'array_utils'
|
|
4
|
+
require_relative 'random_utils'
|
|
5
|
+
require_relative 'unique_utils'
|
|
6
6
|
|
|
7
7
|
module FFaker
|
|
8
8
|
module ModuleUtils
|
|
@@ -35,5 +35,25 @@ module FFaker
|
|
|
35
35
|
def unique(max_retries = 10_000)
|
|
36
36
|
@unique_generator ||= FFaker::UniqueUtils.new(self, max_retries)
|
|
37
37
|
end
|
|
38
|
+
|
|
39
|
+
# http://en.wikipedia.org/wiki/Luhn_algorithm
|
|
40
|
+
def luhn_check(number)
|
|
41
|
+
multiplications = []
|
|
42
|
+
|
|
43
|
+
number.split(//).each_with_index do |digit, i|
|
|
44
|
+
multiplications << i.even? ? digit.to_i * 2 : digit.to_i
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
sum = 0
|
|
48
|
+
multiplications.each do |num|
|
|
49
|
+
num.to_s.each_byte do |character|
|
|
50
|
+
sum += character.chr.to_i
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
control_digit = (sum % 10).zero? ? 0 : (sum / 10 + 1) * 10 - sum
|
|
55
|
+
control_digit.to_s
|
|
56
|
+
end
|
|
57
|
+
|
|
38
58
|
end
|
|
39
59
|
end
|
data/lib/version.rb
CHANGED
data/scripts/profiling.rb
CHANGED
data/scripts/reference.rb
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
require 'ffaker'
|
|
3
|
+
require_relative '../lib/ffaker'
|
|
5
4
|
|
|
6
5
|
ICONS = {
|
|
7
6
|
error: '‼️',
|
|
@@ -25,7 +24,7 @@ end
|
|
|
25
24
|
# Returns faker methods for a given module
|
|
26
25
|
def faker_methods(mod)
|
|
27
26
|
methods = mod.methods - Module.methods -
|
|
28
|
-
%i[k underscore fetch_sample rand shuffle unique]
|
|
27
|
+
%i[k underscore fetch_sample rand shuffle unique luhn_check]
|
|
29
28
|
|
|
30
29
|
# For Company.name (et al), don't discard :name if it was reimplemented
|
|
31
30
|
methods << :name if mod.send(:name) != mod.to_s
|