ffaker 2.15.0 → 2.19.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (311) hide show
  1. checksums.yaml +4 -4
  2. data/Changelog.md +31 -0
  3. data/README.md +6 -4
  4. data/REFERENCE.md +1485 -1257
  5. data/Rakefile +3 -3
  6. data/ffaker.gemspec +8 -5
  7. data/lib/ffaker.rb +19 -4
  8. data/lib/ffaker/address_au.rb +1 -1
  9. data/lib/ffaker/address_br.rb +1 -1
  10. data/lib/ffaker/address_ca.rb +1 -1
  11. data/lib/ffaker/address_ch.rb +0 -2
  12. data/lib/ffaker/address_ch_de.rb +0 -2
  13. data/lib/ffaker/address_ch_fr.rb +0 -2
  14. data/lib/ffaker/address_ch_it.rb +0 -2
  15. data/lib/ffaker/address_da.rb +0 -2
  16. data/lib/ffaker/address_de.rb +0 -2
  17. data/lib/ffaker/address_fi.rb +0 -2
  18. data/lib/ffaker/address_fr.rb +0 -2
  19. data/lib/ffaker/address_gr.rb +0 -2
  20. data/lib/ffaker/address_id.rb +0 -2
  21. data/lib/ffaker/address_in.rb +0 -2
  22. data/lib/ffaker/address_it.rb +37 -0
  23. data/lib/ffaker/address_ja.rb +0 -2
  24. data/lib/ffaker/address_mx.rb +2 -8
  25. data/lib/ffaker/address_nl.rb +1 -3
  26. data/lib/ffaker/address_ru.rb +0 -2
  27. data/lib/ffaker/address_se.rb +0 -2
  28. data/lib/ffaker/address_sn.rb +0 -2
  29. data/lib/ffaker/address_ua.rb +0 -2
  30. data/lib/ffaker/address_uk.rb +0 -2
  31. data/lib/ffaker/address_us.rb +0 -2
  32. data/lib/ffaker/animal.rb +1 -1
  33. data/lib/ffaker/bacon_ipsum.rb +0 -2
  34. data/lib/ffaker/code.rb +6 -6
  35. data/lib/ffaker/company_fr.rb +35 -0
  36. data/lib/ffaker/company_ja.rb +1 -1
  37. data/lib/ffaker/{courses.rb → courses_fr.rb} +2 -0
  38. data/lib/ffaker/data/address_br/city +0 -1
  39. data/lib/ffaker/data/address_br/state +1 -1
  40. data/lib/ffaker/data/address_it/city +111 -0
  41. data/lib/ffaker/data/address_it/region +20 -0
  42. data/lib/ffaker/data/filesystem/extension +31 -31
  43. data/lib/ffaker/data/food_pl/diary +14 -0
  44. data/lib/ffaker/data/food_pl/fermented +13 -0
  45. data/lib/ffaker/data/food_pl/fruits +34 -0
  46. data/lib/ffaker/data/food_pl/herbs +20 -0
  47. data/lib/ffaker/data/food_pl/meats +9 -0
  48. data/lib/ffaker/data/food_pl/preserves +10 -0
  49. data/lib/ffaker/data/food_pl/spices +26 -0
  50. data/lib/ffaker/data/food_pl/vegetables +45 -0
  51. data/lib/ffaker/data/freedom_ipsum/freedom_words +161 -0
  52. data/lib/ffaker/data/game/adj_and_adv +18 -0
  53. data/lib/ffaker/data/game/category +84 -0
  54. data/lib/ffaker/data/game/mechanic +182 -0
  55. data/lib/ffaker/data/game/nouns +37 -0
  56. data/lib/ffaker/data/game/prefixes +17 -0
  57. data/lib/ffaker/data/job_it/job_adj +37 -0
  58. data/lib/ffaker/data/job_it/job_noun +25 -0
  59. data/lib/ffaker/data/job_it/job_prefix +22 -0
  60. data/lib/ffaker/data/lorem/words +0 -67
  61. data/lib/ffaker/data/lorem_br/characters +36 -0
  62. data/lib/ffaker/data/lorem_br/words +183 -0
  63. data/lib/ffaker/data/lorem_it/words +321 -0
  64. data/lib/ffaker/data/name/pronouns +1 -1
  65. data/lib/ffaker/data/name_ga/first_names_male +286 -286
  66. data/lib/ffaker/data/phone_number_ja/four_disit_area_codes +41 -0
  67. data/lib/ffaker/data/phone_number_ja/one_disit_area_codes +3 -0
  68. data/lib/ffaker/data/phone_number_ja/three_disit_area_codes +296 -0
  69. data/lib/ffaker/data/phone_number_ja/two_disit_area_codes +48 -0
  70. data/lib/ffaker/data/sport_ru/summer +68 -0
  71. data/lib/ffaker/data/sport_ru/winter +20 -0
  72. data/lib/ffaker/dizzle_ipsum.rb +0 -2
  73. data/lib/ffaker/education.rb +4 -8
  74. data/lib/ffaker/education_cn.rb +3 -6
  75. data/lib/ffaker/filesystem.rb +7 -7
  76. data/lib/ffaker/food_pl.rb +65 -0
  77. data/lib/ffaker/freedom_ipsum.rb +20 -0
  78. data/lib/ffaker/game.rb +33 -0
  79. data/lib/ffaker/gender_it.rb +17 -0
  80. data/lib/ffaker/gender_ru.rb +22 -0
  81. data/lib/ffaker/healthcare_ipsum.rb +0 -2
  82. data/lib/ffaker/hipster_ipsum.rb +0 -2
  83. data/lib/ffaker/identification_es_cl.rb +0 -2
  84. data/lib/ffaker/identification_es_co.rb +0 -1
  85. data/lib/ffaker/identification_in.rb +15 -0
  86. data/lib/ffaker/identification_it.rb +30 -0
  87. data/lib/ffaker/identification_kr.rb +1 -1
  88. data/lib/ffaker/identification_mx.rb +1 -3
  89. data/lib/ffaker/identification_tw.rb +1 -1
  90. data/lib/ffaker/image.rb +8 -11
  91. data/lib/ffaker/internet.rb +1 -1
  92. data/lib/ffaker/internet_se.rb +1 -3
  93. data/lib/ffaker/job_it.rb +12 -0
  94. data/lib/ffaker/lorem_br.rb +45 -0
  95. data/lib/ffaker/lorem_cn.rb +0 -1
  96. data/lib/ffaker/lorem_it.rb +39 -0
  97. data/lib/ffaker/name_cs.rb +0 -2
  98. data/lib/ffaker/name_da.rb +0 -2
  99. data/lib/ffaker/name_de.rb +0 -2
  100. data/lib/ffaker/name_mx.rb +2 -4
  101. data/lib/ffaker/name_nb.rb +0 -2
  102. data/lib/ffaker/name_nl.rb +0 -2
  103. data/lib/ffaker/name_ph.rb +0 -2
  104. data/lib/ffaker/name_ru.rb +0 -2
  105. data/lib/ffaker/name_se.rb +0 -2
  106. data/lib/ffaker/name_th_en.rb +1 -1
  107. data/lib/ffaker/name_ua.rb +0 -2
  108. data/lib/ffaker/phone_number_br.rb +2 -2
  109. data/lib/ffaker/phone_number_da.rb +0 -1
  110. data/lib/ffaker/phone_number_ja.rb +88 -0
  111. data/lib/ffaker/product.rb +1 -1
  112. data/lib/ffaker/sport_ru.rb +25 -0
  113. data/lib/ffaker/ssn.rb +1 -3
  114. data/lib/ffaker/ssn_se.rb +0 -19
  115. data/lib/ffaker/string.rb +5 -5
  116. data/lib/ffaker/unit.rb +9 -10
  117. data/lib/ffaker/unit_english.rb +18 -21
  118. data/lib/ffaker/unit_metric.rb +15 -18
  119. data/lib/ffaker/utils/array_utils.rb +1 -1
  120. data/lib/ffaker/utils/module_utils.rb +23 -3
  121. data/lib/ffaker/vehicle.rb +1 -1
  122. data/lib/version.rb +1 -1
  123. data/scripts/profiling.rb +1 -1
  124. data/scripts/reference.rb +2 -3
  125. data/test/helper.rb +4 -4
  126. data/test/test_address.rb +1 -1
  127. data/test/test_address_au.rb +3 -3
  128. data/test/test_address_br.rb +2 -2
  129. data/test/test_address_ca.rb +1 -1
  130. data/test/test_address_ch.rb +1 -1
  131. data/test/test_address_ch_de.rb +1 -1
  132. data/test/test_address_ch_fr.rb +1 -1
  133. data/test/test_address_ch_it.rb +1 -1
  134. data/test/test_address_da.rb +1 -1
  135. data/test/test_address_de.rb +1 -1
  136. data/test/test_address_fi.rb +3 -3
  137. data/test/test_address_fr.rb +1 -1
  138. data/test/test_address_gr.rb +1 -1
  139. data/test/test_address_id.rb +2 -2
  140. data/test/test_address_in.rb +1 -1
  141. data/test/test_address_it.rb +12 -0
  142. data/test/test_address_ja.rb +2 -2
  143. data/test/test_address_kr.rb +1 -1
  144. data/test/test_address_mx.rb +1 -1
  145. data/test/test_address_nl.rb +2 -2
  146. data/test/test_address_pl.rb +1 -1
  147. data/test/test_address_ru.rb +1 -1
  148. data/test/test_address_se.rb +3 -3
  149. data/test/test_address_sn.rb +1 -1
  150. data/test/test_address_ua.rb +1 -1
  151. data/test/test_address_uk.rb +1 -1
  152. data/test/test_address_us.rb +1 -1
  153. data/test/test_airline.rb +1 -1
  154. data/test/test_animal.rb +1 -1
  155. data/test/test_animal_cn.rb +1 -1
  156. data/test/test_animal_es.rb +1 -1
  157. data/test/test_animal_pl.rb +1 -1
  158. data/test/test_animal_us.rb +1 -1
  159. data/test/test_array_utils.rb +2 -1
  160. data/test/test_avatar.rb +1 -1
  161. data/test/test_aws.rb +2 -2
  162. data/test/test_bacon_ipsum.rb +1 -1
  163. data/test/test_bank.rb +3 -4
  164. data/test/test_book.rb +5 -5
  165. data/test/test_boolean.rb +1 -1
  166. data/test/test_cheesy_lingo.rb +1 -1
  167. data/test/test_code.rb +1 -1
  168. data/test/test_color.rb +1 -1
  169. data/test/test_color_pl.rb +1 -1
  170. data/test/test_color_ua.rb +1 -1
  171. data/test/test_company.rb +1 -1
  172. data/test/test_company_cn.rb +1 -1
  173. data/test/test_company_fr.rb +33 -0
  174. data/test/test_company_it.rb +1 -1
  175. data/test/test_company_ja.rb +1 -1
  176. data/test/test_company_se.rb +1 -1
  177. data/test/test_conference.rb +1 -1
  178. data/test/test_course_mathematiques.rb +1 -1
  179. data/test/test_course_philosophie.rb +1 -1
  180. data/test/test_currency.rb +1 -1
  181. data/test/test_dizzle_ipsum.rb +1 -1
  182. data/test/test_education.rb +1 -1
  183. data/test/test_education_cn.rb +1 -1
  184. data/test/{test_faker.rb → test_ffaker.rb} +6 -2
  185. data/test/test_filesystem.rb +12 -4
  186. data/test/test_food.rb +1 -1
  187. data/test/test_food_pl.rb +61 -0
  188. data/test/test_freedom_ipsum.rb +21 -0
  189. data/test/test_game.rb +28 -0
  190. data/test/test_gender.rb +2 -2
  191. data/test/test_gender_br.rb +1 -1
  192. data/test/test_gender_cn.rb +1 -1
  193. data/test/test_gender_id.rb +1 -1
  194. data/test/test_gender_it.rb +27 -0
  195. data/test/test_gender_ja.rb +1 -1
  196. data/test/test_gender_jp.rb +1 -1
  197. data/test/test_gender_kr.rb +1 -1
  198. data/test/test_gender_pl.rb +1 -1
  199. data/test/test_gender_ru.rb +23 -0
  200. data/test/test_geolocation.rb +1 -1
  201. data/test/test_guid.rb +1 -1
  202. data/test/test_healthcare_ipsum.rb +1 -1
  203. data/test/test_healthcare_ru.rb +2 -2
  204. data/test/test_hipster_ipsum.rb +1 -1
  205. data/test/test_html_ipsum.rb +2 -2
  206. data/test/test_identification.rb +1 -1
  207. data/test/test_identification_br.rb +1 -1
  208. data/test/test_identification_co.rb +2 -2
  209. data/test/test_identification_es.rb +1 -1
  210. data/test/test_identification_es_cl.rb +2 -2
  211. data/test/test_identification_es_mx.rb +1 -1
  212. data/test/test_identification_in.rb +20 -0
  213. data/test/test_identification_it.rb +34 -0
  214. data/test/test_identification_kr.rb +1 -1
  215. data/test/test_identification_tw.rb +1 -1
  216. data/test/test_image.rb +5 -5
  217. data/test/test_internet.rb +1 -1
  218. data/test/test_internet_se.rb +2 -2
  219. data/test/test_job.rb +1 -1
  220. data/test/test_job_br.rb +1 -1
  221. data/test/test_job_cn.rb +1 -1
  222. data/test/test_job_fr.rb +1 -1
  223. data/test/test_job_it.rb +17 -0
  224. data/test/test_job_ja.rb +1 -1
  225. data/test/test_job_kr.rb +1 -1
  226. data/test/test_job_vn.rb +1 -1
  227. data/test/test_locale.rb +1 -1
  228. data/test/test_lorem.rb +5 -1
  229. data/test/test_lorem_ar.rb +1 -1
  230. data/test/test_lorem_br.rb +62 -0
  231. data/test/test_lorem_cn.rb +1 -1
  232. data/test/test_lorem_fr.rb +10 -8
  233. data/test/test_lorem_ie.rb +1 -1
  234. data/test/test_lorem_it.rb +51 -0
  235. data/test/test_lorem_ja.rb +1 -1
  236. data/test/test_lorem_kr.rb +1 -1
  237. data/test/test_lorem_pl.rb +2 -2
  238. data/test/test_lorem_ru.rb +2 -2
  239. data/test/test_lorem_ua.rb +2 -2
  240. data/test/test_module_utils.rb +1 -1
  241. data/test/test_movie.rb +1 -1
  242. data/test/test_music.rb +5 -5
  243. data/test/test_name.rb +1 -1
  244. data/test/test_name_ar.rb +1 -1
  245. data/test/test_name_br.rb +1 -1
  246. data/test/test_name_cn.rb +1 -1
  247. data/test/test_name_cs.rb +1 -1
  248. data/test/test_name_da.rb +1 -1
  249. data/test/test_name_de.rb +1 -1
  250. data/test/test_name_es.rb +1 -1
  251. data/test/test_name_fr.rb +1 -1
  252. data/test/test_name_ga.rb +1 -1
  253. data/test/test_name_gr.rb +1 -1
  254. data/test/test_name_id.rb +1 -1
  255. data/test/test_name_it.rb +1 -1
  256. data/test/test_name_ja.rb +1 -1
  257. data/test/test_name_kh.rb +1 -1
  258. data/test/test_name_kr.rb +1 -1
  259. data/test/test_name_mx.rb +1 -1
  260. data/test/test_name_nb.rb +1 -1
  261. data/test/test_name_nl.rb +1 -1
  262. data/test/test_name_ph.rb +1 -1
  263. data/test/test_name_pl.rb +1 -1
  264. data/test/test_name_ru.rb +1 -1
  265. data/test/test_name_se.rb +1 -1
  266. data/test/test_name_sn.rb +1 -1
  267. data/test/test_name_th.rb +1 -1
  268. data/test/test_name_th_en.rb +1 -1
  269. data/test/test_name_tw.rb +1 -1
  270. data/test/test_name_ua.rb +1 -1
  271. data/test/test_name_vn.rb +1 -1
  272. data/test/test_nato_alphabet.rb +1 -1
  273. data/test/test_phone_number.rb +1 -1
  274. data/test/test_phone_number_au.rb +1 -1
  275. data/test/test_phone_number_br.rb +1 -1
  276. data/test/test_phone_number_cu.rb +1 -1
  277. data/test/test_phone_number_da.rb +1 -1
  278. data/test/test_phone_number_de.rb +1 -1
  279. data/test/test_phone_number_fr.rb +1 -1
  280. data/test/test_phone_number_id.rb +1 -1
  281. data/test/test_phone_number_ja.rb +63 -0
  282. data/test/test_phone_number_kr.rb +1 -1
  283. data/test/test_phone_number_mx.rb +1 -1
  284. data/test/test_phone_number_nl.rb +1 -1
  285. data/test/test_phone_number_pl.rb +1 -1
  286. data/test/test_phone_number_se.rb +1 -1
  287. data/test/test_phone_number_sg.rb +1 -1
  288. data/test/test_phone_number_sn.rb +1 -1
  289. data/test/test_phone_number_tw.rb +1 -1
  290. data/test/test_phone_number_ua.rb +1 -1
  291. data/test/test_products.rb +1 -1
  292. data/test/test_sem_ver.rb +1 -1
  293. data/test/test_skill.rb +1 -1
  294. data/test/test_sport_pl.rb +1 -1
  295. data/test/test_sport_ru.rb +30 -0
  296. data/test/test_sport_us.rb +1 -1
  297. data/test/test_sports.rb +1 -1
  298. data/test/test_ssn.rb +1 -1
  299. data/test/test_ssn_mx.rb +1 -1
  300. data/test/test_ssn_se.rb +2 -2
  301. data/test/test_string.rb +4 -4
  302. data/test/test_time.rb +3 -4
  303. data/test/test_tweet.rb +5 -5
  304. data/test/test_unique_utils.rb +1 -1
  305. data/test/test_units.rb +2 -1
  306. data/test/test_units_english.rb +1 -1
  307. data/test/test_units_metric.rb +1 -1
  308. data/test/test_vehicle.rb +3 -3
  309. data/test/test_venue.rb +1 -1
  310. data/test/test_youtube.rb +1 -1
  311. metadata +232 -160
@@ -0,0 +1,20 @@
1
+ Биатлон
2
+ Бобслей
3
+ Горнолыжный спорт
4
+ Керлинг
5
+ Конькобежный спорт
6
+ Лыжное двоеборье
7
+ Лыжные гонки
8
+ Прыжки на лыжах с трамплина
9
+ Санный спорт
10
+ Скелетон
11
+ Сноуборд
12
+ Фигурное катание на коньках
13
+ Фристайл
14
+ Хоккей
15
+ Шорт-трек
16
+ Юкигассен
17
+ Ледолазание
18
+ Мотогонки на льду
19
+ Гонки на собачьих упряжках
20
+ Катание на ледяных глыбах
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffaker/lorem'
4
-
5
3
  module FFaker
6
4
  # Thanks to Snoop Dogg
7
5
  module DizzleIpsum
@@ -39,14 +39,10 @@ module FFaker
39
39
 
40
40
  def school
41
41
  case rand(0..4)
42
- when 0, 1 then
43
- "#{school_name} #{fetch_sample(SCHOOL_TYPE)}"
44
- when 2 then
45
- "#{school_generic_name} #{fetch_sample(SCHOOL_ADJ)} #{fetch_sample(SCHOOL_TYPE)}"
46
- when 3 then
47
- "#{fetch_sample(SCHOOL_UNI)} of #{school_generic_name}"
48
- when 4 then
49
- "#{school_generic_name} #{fetch_sample(SCHOOL_TYPE)} of #{fetch_sample(MAJOR_NOUN)}"
42
+ when 0, 1 then "#{school_name} #{fetch_sample(SCHOOL_TYPE)}"
43
+ when 2 then "#{school_generic_name} #{fetch_sample(SCHOOL_ADJ)} #{fetch_sample(SCHOOL_TYPE)}"
44
+ when 3 then "#{fetch_sample(SCHOOL_UNI)} of #{school_generic_name}"
45
+ when 4 then "#{school_generic_name} #{fetch_sample(SCHOOL_TYPE)} of #{fetch_sample(MAJOR_NOUN)}"
50
46
  end
51
47
  end
52
48
  end
@@ -28,12 +28,9 @@ module FFaker
28
28
 
29
29
  def school
30
30
  case rand(0..2)
31
- when 0 then
32
- "#{location}#{fetch_sample(SCHOOL_TYPE)}#{fetch_sample(SCHOOL_UNI)}"
33
- when 1 then
34
- "#{location}#{fetch_sample(SCHOOL_UNI)}"
35
- when 2 then
36
- "#{location}#{fetch_sample(SCHOOL_TYPE)}#{fetch_sample(SCHOOL_UNI)}#{fetch_sample(CITY)}分校"
31
+ when 0 then "#{location}#{fetch_sample(SCHOOL_TYPE)}#{fetch_sample(SCHOOL_UNI)}"
32
+ when 1 then "#{location}#{fetch_sample(SCHOOL_UNI)}"
33
+ when 2 then "#{location}#{fetch_sample(SCHOOL_TYPE)}#{fetch_sample(SCHOOL_UNI)}#{fetch_sample(CITY)}分校"
37
34
  end
38
35
  end
39
36
  end
@@ -5,8 +5,6 @@ module FFaker
5
5
  extend ModuleUtils
6
6
  extend self
7
7
 
8
- SLUG_DELIMITERS = %w[- _ .].freeze
9
-
10
8
  def extension
11
9
  fetch_sample(EXTENSION)
12
10
  end
@@ -15,11 +13,13 @@ module FFaker
15
13
  fetch_sample(MIME_TYPE)
16
14
  end
17
15
 
18
- def file_name(dir = nil, name = nil, ext = nil, directory_separator = '/')
19
- dir ||= Internet.slug
20
- name ||= Lorem.word.downcase
21
- ext ||= extension
22
- [dir, name].join(directory_separator) + ".#{ext}"
16
+ def directory(directory_separator = File::SEPARATOR)
17
+ Lorem.words.join(directory_separator)
18
+ end
19
+
20
+ def file_name(dir = directory, name = Lorem.word.downcase,
21
+ ext = extension, directory_separator = File::SEPARATOR)
22
+ "#{dir}#{directory_separator}#{name}.#{ext}"
23
23
  end
24
24
  end
25
25
  end
@@ -0,0 +1,65 @@
1
+ # frozen_string_literal: true
2
+
3
+ module FFaker
4
+ module FoodPL
5
+ extend ModuleUtils
6
+ extend self
7
+
8
+ def food
9
+ case rand(0..1)
10
+ when 0 then processed
11
+ when 1 then unprocessed
12
+ end
13
+ end
14
+
15
+ def processed
16
+ case rand(0..2)
17
+ when 0 then fermented
18
+ when 1 then diary
19
+ when 2 then preserves
20
+ end
21
+ end
22
+
23
+ def unprocessed
24
+ case rand(0..4)
25
+ when 0 then vegetable
26
+ when 1 then fruit
27
+ when 2 then herb
28
+ when 3 then spice
29
+ when 4 then meat
30
+ end
31
+ end
32
+
33
+ def vegetable
34
+ fetch_sample(VEGETABLES)
35
+ end
36
+
37
+ def fruit
38
+ fetch_sample(FRUITS)
39
+ end
40
+
41
+ def herb
42
+ fetch_sample(HERBS)
43
+ end
44
+
45
+ def spice
46
+ fetch_sample(SPICES)
47
+ end
48
+
49
+ def meat
50
+ fetch_sample(MEATS)
51
+ end
52
+
53
+ def fermented
54
+ fetch_sample(FERMENTED)
55
+ end
56
+
57
+ def diary
58
+ fetch_sample(DIARY)
59
+ end
60
+
61
+ def preserves
62
+ fetch_sample(PRESERVES)
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'lorem'
4
+
5
+ module FFaker
6
+ module FreedomIpsum
7
+ include Lorem
8
+
9
+ extend ModuleUtils
10
+ extend self
11
+
12
+ def word
13
+ fetch_sample(FREEDOM_WORDS)
14
+ end
15
+
16
+ def words(num = 3)
17
+ fetch_sample(FREEDOM_WORDS, count: num)
18
+ end
19
+ end
20
+ end
@@ -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
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffaker/lorem'
4
-
5
3
  module FFaker
6
4
  module HealthcareIpsum
7
5
  include Lorem
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffaker/lorem'
4
-
5
3
  module FFaker
6
4
  # thanks to http://hipsteripsum.me
7
5
  module HipsterIpsum
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffaker/identification_es'
4
-
5
3
  module FFaker
6
4
  module IdentificationESCL
7
5
  extend IdentificationES
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffaker/identification_es'
4
3
  require 'date'
5
4
 
6
5
  module FFaker
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module FFaker
4
+ module IdentificationIN
5
+ extend ModuleUtils
6
+ extend self
7
+
8
+ AADHAAR_FORMAT = ['############'].freeze
9
+
10
+ # REF: https://en.wikipedia.org/wiki/Aadhaar
11
+ def aadhaar
12
+ FFaker.numerify(AADHAAR_FORMAT)
13
+ end
14
+ end
15
+ 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
@@ -10,7 +10,7 @@ module FFaker
10
10
  def rrn
11
11
  birth = fetch_sample(Date.new(1970, 1, 1)..Date.new(1999, 12, 31)).strftime('%y%d%m')
12
12
  sex = fetch_sample([1, 2])
13
- loc = FFaker.numerify("#{fetch_sample([*'00'..'95'])}###")
13
+ loc = FFaker.numerify("#{fetch_sample(Array('00'..'95'))}###")
14
14
  a, b, c, d, e, f, g, h, i, j, k, l = "#{birth}#{sex}#{loc}".split(//).map(&:to_i)
15
15
  checksum = (11 - (2 * a + 3 * b + 4 * c + 5 * d + 6 * e + 7 * f + 8 * g + 9 * h + 2 * i + 3 * j + 4 * k + 5 * l) % 11) % 10
16
16
  "#{birth}-#{sex}#{loc}#{checksum}"
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffaker/identification_es'
4
-
5
3
  module FFaker
6
4
  module IdentificationMX
7
5
  extend ModuleUtils
@@ -9,7 +7,7 @@ module FFaker
9
7
 
10
8
  CONSONANTS = %w[B C D F G H J K L M N P Q R S T V W X Y Z].freeze
11
9
  VOWELS = %w[A E I O U].freeze
12
- HOMOCLAVE = CONSONANTS + VOWELS + [*'0'..'9']
10
+ HOMOCLAVE = CONSONANTS + VOWELS + Array('0'..'9')
13
11
 
14
12
  # http://es.wikipedia.org/wiki/Registro_Federal_de_Contribuyentes_(M%C3%A9xico)
15
13
  # Registro Federal de Contribuyentes (R.F.C.) para persona física
@@ -13,7 +13,7 @@ module FFaker
13
13
  letter = FFaker.letterify('?')
14
14
  code = AREA_CODE[letter.to_sym]
15
15
  gender = fetch_sample([1, 2])
16
- serial = FFaker.numerify("#######")
16
+ serial = FFaker.numerify('#######')
17
17
  a, b, c, d, e, f, g, h, i, j = "#{code}#{gender}#{serial}".split(//).map(&:to_i)
18
18
 
19
19
  checksum = (9 * a + b + 2 * c + 3 * d + 4 * e + 5 * f + 6 * g + 7 * h + 8 * i + 9 * j) % 10
data/lib/ffaker/image.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'cgi'
3
4
  require 'tempfile'
4
5
  require 'open-uri'
5
6
 
@@ -18,11 +19,16 @@ module FFaker
18
19
  text_color = FFaker::Color.hex_code if text_color == :random
19
20
  text = CGI.escape(text.to_s)
20
21
 
21
- "https://via.placeholder.com/#{size}/#{bg_color}/#{text_color}.#{format}?text=#{text}"
22
+ "https://dummyimage.com/#{size}/#{bg_color}/#{text_color}.#{format}?text=#{text}"
22
23
  end
23
24
 
24
25
  def file(size = '300x300', format = 'png', bg_color = :random, text_color = :random, text = nil)
25
- download_file(url(size, format, bg_color, text_color, text))
26
+ uri = URI.parse(url(size, format, bg_color, text_color, text))
27
+ file = Tempfile.new('ffaker_image')
28
+ file.binmode
29
+ file << uri.open.read
30
+ file.close
31
+ File.new(file.path)
26
32
  end
27
33
 
28
34
  private
@@ -38,14 +44,5 @@ module FFaker
38
44
 
39
45
  raise ArgumentError, "Supported formats are #{SUPPORTED_FORMATS.join(', ')}"
40
46
  end
41
-
42
- def download_file(url)
43
- file = Tempfile.new('ffaker_image')
44
- file.binmode
45
- file << Kernel.open(url).read
46
- file.close
47
-
48
- File.new(file.path)
49
- end
50
47
  end
51
48
  end
@@ -5,7 +5,7 @@ module FFaker
5
5
  extend ModuleUtils
6
6
  extend self
7
7
 
8
- BYTE = [*'0'..'255'].freeze
8
+ BYTE = Array('0'..'255').freeze
9
9
  HOSTS = %w[gmail.com yahoo.com hotmail.com].freeze
10
10
  DISPOSABLE_HOSTS = %w[
11
11
  mailinator.com suremail.info spamherelots.com binkmail.com safetymail.info
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffaker/internet'
4
-
5
3
  module FFaker
6
4
  module InternetSE
7
5
  include Internet
@@ -9,7 +7,7 @@ module FFaker
9
7
  extend ModuleUtils
10
8
  extend self
11
9
 
12
- BYTE = [*'0'..'255'].freeze
10
+ BYTE = Array('0'..'255').freeze
13
11
  HOSTS = %w[gmail.com yahoo.com hotmail.com spray.se passagen.se].freeze
14
12
  DOMAIN_SUFFIXES = %w[se nu com].freeze
15
13
  DISPOSABLE_HOSTS = %w[