ffaker 2.15.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.
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[