ffaker 2.2.0 → 2.3.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 (320) hide show
  1. checksums.yaml +4 -4
  2. data/Changelog.md +34 -0
  3. data/README.md +4 -0
  4. data/REFERENCE.md +1153 -800
  5. data/Rakefile +23 -24
  6. data/ffaker.gemspec +12 -420
  7. data/lib/ffaker.rb +47 -7
  8. data/lib/ffaker/address.rb +11 -11
  9. data/lib/ffaker/address_au.rb +60 -60
  10. data/lib/ffaker/address_br.rb +5 -5
  11. data/lib/ffaker/address_ca.rb +7 -7
  12. data/lib/ffaker/address_ch.rb +1 -2
  13. data/lib/ffaker/address_ch_de.rb +1 -1
  14. data/lib/ffaker/address_ch_fr.rb +1 -1
  15. data/lib/ffaker/address_ch_it.rb +1 -1
  16. data/lib/ffaker/address_da.rb +5 -5
  17. data/lib/ffaker/address_de.rb +16 -12
  18. data/lib/ffaker/address_fi.rb +7 -8
  19. data/lib/ffaker/address_fr.rb +13 -13
  20. data/lib/ffaker/address_gr.rb +40 -0
  21. data/lib/ffaker/address_in.rb +12 -12
  22. data/lib/ffaker/address_kr.rb +87 -0
  23. data/lib/ffaker/address_mx.rb +409 -409
  24. data/lib/ffaker/address_nl.rb +17 -13
  25. data/lib/ffaker/address_ru.rb +6 -6
  26. data/lib/ffaker/address_se.rb +7 -8
  27. data/lib/ffaker/address_sn.rb +3 -3
  28. data/lib/ffaker/address_ua.rb +8 -8
  29. data/lib/ffaker/address_uk.rb +5 -5
  30. data/lib/ffaker/address_us.rb +9 -9
  31. data/lib/ffaker/airline.rb +16 -0
  32. data/lib/ffaker/avatar.rb +3 -3
  33. data/lib/ffaker/aws.rb +24 -0
  34. data/lib/ffaker/bacon_ipsum.rb +2 -2
  35. data/lib/ffaker/book.rb +45 -0
  36. data/lib/ffaker/boolean.rb +2 -2
  37. data/lib/ffaker/cheesy_lingo.rb +15 -12
  38. data/lib/ffaker/color.rb +54 -1
  39. data/lib/ffaker/color_ua.rb +1 -1
  40. data/lib/ffaker/company.rb +13 -11
  41. data/lib/ffaker/company_cn.rb +23 -0
  42. data/lib/ffaker/company_it.rb +4 -4
  43. data/lib/ffaker/company_se.rb +2 -2
  44. data/lib/ffaker/conference.rb +1 -1
  45. data/lib/ffaker/courses.rb +2 -3
  46. data/lib/ffaker/currency.rb +2 -2
  47. data/lib/ffaker/data/address_gr/city +79 -0
  48. data/lib/ffaker/data/address_gr/region +13 -0
  49. data/lib/ffaker/data/address_gr/street +100 -0
  50. data/lib/ffaker/data/address_kr/boroughs +29 -0
  51. data/lib/ffaker/data/address_kr/cities +51 -0
  52. data/lib/ffaker/data/airline/codes_list +209 -0
  53. data/lib/ffaker/data/airline/names_list +206 -0
  54. data/lib/ffaker/data/aws/ec2_instance_type +59 -0
  55. data/lib/ffaker/data/aws/ec2_reserved_instance_tenancy +3 -0
  56. data/lib/ffaker/data/aws/ec2_reserved_offering_type +6 -0
  57. data/lib/ffaker/data/aws/ec2_reserved_product_description +14 -0
  58. data/lib/ffaker/data/book/adj_and_adv +20 -0
  59. data/lib/ffaker/data/book/genres +369 -0
  60. data/lib/ffaker/data/book/nouns +36 -0
  61. data/lib/ffaker/data/book/prefixes +17 -0
  62. data/lib/ffaker/data/color/names_list +128 -0
  63. data/lib/ffaker/data/education/degree_prefix +274 -0
  64. data/lib/ffaker/data/education/degree_short_prefix +19 -0
  65. data/lib/ffaker/data/job_br/job_nouns +52 -0
  66. data/lib/ffaker/data/job_vn/job_nouns +191 -0
  67. data/lib/ffaker/data/lorem_ja/characters +101 -0
  68. data/lib/ffaker/data/lorem_ja/sentences +30 -0
  69. data/lib/ffaker/data/lorem_ja/sentences_end +21 -0
  70. data/lib/ffaker/data/lorem_ja/words +81 -0
  71. data/lib/ffaker/data/name/first_names_female +4275 -0
  72. data/lib/ffaker/data/name/first_names_male +1219 -0
  73. data/lib/ffaker/data/name_br/first_names_female +1068 -0
  74. data/lib/ffaker/data/name_br/first_names_male +607 -0
  75. data/lib/ffaker/data/name_br/last_names +52 -0
  76. data/lib/ffaker/data/name_gr/female_first_names +80 -0
  77. data/lib/ffaker/data/name_gr/female_last_names +45 -0
  78. data/lib/ffaker/data/name_gr/male_first_names +90 -0
  79. data/lib/ffaker/data/name_gr/male_last_names +57 -0
  80. data/lib/ffaker/data/name_kh/first_names +64 -0
  81. data/lib/ffaker/data/name_kh/last_names +71 -0
  82. data/lib/ffaker/data/name_kh/nick_names +30 -0
  83. data/lib/ffaker/data/name_then/first_names +292 -0
  84. data/lib/ffaker/data/name_then/last_names +63 -0
  85. data/lib/ffaker/data/name_then/nick_names +30 -0
  86. data/lib/ffaker/data/phone_number/phone_calling_code +205 -0
  87. data/lib/ffaker/data/sport/names +57 -24
  88. data/lib/ffaker/data/tweet/hashtag +58 -0
  89. data/lib/ffaker/data/youtube/video_ids +50 -0
  90. data/lib/ffaker/dizzle_ipsum.rb +2 -2
  91. data/lib/ffaker/education.rb +17 -16
  92. data/lib/ffaker/food.rb +5 -6
  93. data/lib/ffaker/gender.rb +4 -4
  94. data/lib/ffaker/gender_br.rb +17 -0
  95. data/lib/ffaker/gender_cn.rb +4 -4
  96. data/lib/ffaker/gender_kr.rb +4 -4
  97. data/lib/ffaker/geolocation.rb +26 -26
  98. data/lib/ffaker/healthcare_ipsum.rb +2 -2
  99. data/lib/ffaker/hipster_ipsum.rb +2 -2
  100. data/lib/ffaker/html_ipsum.rb +101 -81
  101. data/lib/ffaker/identification.rb +4 -4
  102. data/lib/ffaker/identification_br.rb +84 -0
  103. data/lib/ffaker/identification_es.rb +2 -2
  104. data/lib/ffaker/identification_es_cl.rb +7 -5
  105. data/lib/ffaker/identification_es_co.rb +9 -10
  106. data/lib/ffaker/identification_kr.rb +3 -4
  107. data/lib/ffaker/identification_mx.rb +27 -11
  108. data/lib/ffaker/internet.rb +26 -23
  109. data/lib/ffaker/internet_se.rb +21 -21
  110. data/lib/ffaker/job.rb +1 -1
  111. data/lib/ffaker/job_br.rb +12 -0
  112. data/lib/ffaker/job_cn.rb +1 -1
  113. data/lib/ffaker/job_fr.rb +3 -3
  114. data/lib/ffaker/job_ja.rb +2 -1
  115. data/lib/ffaker/job_kr.rb +1 -1
  116. data/lib/ffaker/job_vn.rb +13 -0
  117. data/lib/ffaker/locale.rb +2 -3
  118. data/lib/ffaker/lorem.rb +5 -5
  119. data/lib/ffaker/lorem_ar.rb +4 -4
  120. data/lib/ffaker/lorem_cn.rb +3 -3
  121. data/lib/ffaker/lorem_fr.rb +4 -4
  122. data/lib/ffaker/lorem_ja.rb +40 -0
  123. data/lib/ffaker/lorem_kr.rb +4 -4
  124. data/lib/ffaker/lorem_ua.rb +8 -11
  125. data/lib/ffaker/movie.rb +18 -20
  126. data/lib/ffaker/music.rb +4 -4
  127. data/lib/ffaker/name.rb +100 -11
  128. data/lib/ffaker/name_br.rb +37 -6
  129. data/lib/ffaker/name_cn.rb +2 -2
  130. data/lib/ffaker/name_cs.rb +10 -10
  131. data/lib/ffaker/name_da.rb +6 -6
  132. data/lib/ffaker/name_de.rb +5 -5
  133. data/lib/ffaker/name_fr.rb +4 -4
  134. data/lib/ffaker/name_ga.rb +4 -5
  135. data/lib/ffaker/name_gr.rb +60 -0
  136. data/lib/ffaker/name_it.rb +4 -4
  137. data/lib/ffaker/name_ja.rb +3 -3
  138. data/lib/ffaker/name_kh.rb +22 -0
  139. data/lib/ffaker/name_kr.rb +3 -3
  140. data/lib/ffaker/name_mx.rb +14 -14
  141. data/lib/ffaker/name_nb.rb +5 -5
  142. data/lib/ffaker/name_nl.rb +7 -7
  143. data/lib/ffaker/name_ph.rb +2 -2
  144. data/lib/ffaker/name_ru.rb +7 -8
  145. data/lib/ffaker/name_se.rb +5 -5
  146. data/lib/ffaker/name_sn.rb +23 -23
  147. data/lib/ffaker/name_th.rb +3 -3
  148. data/lib/ffaker/name_th_en.rb +26 -0
  149. data/lib/ffaker/name_ua.rb +8 -8
  150. data/lib/ffaker/name_vn.rb +4 -4
  151. data/lib/ffaker/nato_alphabet.rb +10 -10
  152. data/lib/ffaker/phone_number.rb +31 -21
  153. data/lib/ffaker/phone_number_au.rb +3 -3
  154. data/lib/ffaker/phone_number_br.rb +9 -8
  155. data/lib/ffaker/phone_number_ch.rb +7 -7
  156. data/lib/ffaker/phone_number_cu.rb +5 -5
  157. data/lib/ffaker/phone_number_de.rb +1 -1
  158. data/lib/ffaker/phone_number_fr.rb +4 -4
  159. data/lib/ffaker/phone_number_it.rb +2 -2
  160. data/lib/ffaker/phone_number_kr.rb +4 -4
  161. data/lib/ffaker/phone_number_mx.rb +4 -5
  162. data/lib/ffaker/phone_number_nl.rb +13 -13
  163. data/lib/ffaker/phone_number_se.rb +18 -19
  164. data/lib/ffaker/phone_number_sg.rb +8 -8
  165. data/lib/ffaker/phone_number_sn.rb +2 -2
  166. data/lib/ffaker/product.rb +18 -14
  167. data/lib/ffaker/skill.rb +3 -3
  168. data/lib/ffaker/sport.rb +1 -1
  169. data/lib/ffaker/ssn_se.rb +19 -20
  170. data/lib/ffaker/string.rb +21 -23
  171. data/lib/ffaker/time.rb +19 -7
  172. data/lib/ffaker/tweet.rb +59 -0
  173. data/lib/ffaker/unit.rb +12 -12
  174. data/lib/ffaker/unit_english.rb +34 -35
  175. data/lib/ffaker/unit_metric.rb +25 -25
  176. data/lib/ffaker/utils/array_utils.rb +12 -9
  177. data/lib/ffaker/utils/module_utils.rb +9 -6
  178. data/lib/ffaker/utils/random_utils.rb +33 -0
  179. data/lib/ffaker/vehicle.rb +21 -21
  180. data/lib/ffaker/venue.rb +1 -1
  181. data/lib/ffaker/youtube.rb +24 -0
  182. data/scripts/benchmark.rb +3 -3
  183. data/scripts/reference.rb +26 -23
  184. data/test/helper.rb +50 -0
  185. data/test/test_address.rb +40 -21
  186. data/test/test_address_au.rb +19 -9
  187. data/test/test_address_br.rb +9 -2
  188. data/test/test_address_ca.rb +7 -0
  189. data/test/test_address_ch.rb +6 -2
  190. data/test/test_address_ch_de.rb +7 -3
  191. data/test/test_address_ch_fr.rb +7 -3
  192. data/test/test_address_ch_it.rb +5 -1
  193. data/test/test_address_da.rb +18 -9
  194. data/test/test_address_de.rb +12 -5
  195. data/test/test_address_fi.rb +10 -3
  196. data/test/test_address_fr.rb +13 -0
  197. data/test/test_address_gr.rb +43 -0
  198. data/test/test_address_in.rb +20 -12
  199. data/test/test_address_kr.rb +14 -0
  200. data/test/test_address_mx.rb +12 -5
  201. data/test/test_address_nl.rb +11 -5
  202. data/test/test_address_ru.rb +11 -5
  203. data/test/test_address_se.rb +9 -3
  204. data/test/test_address_sn.rb +7 -1
  205. data/test/test_address_ua.rb +17 -10
  206. data/test/test_address_uk.rb +11 -3
  207. data/test/test_address_us.rb +15 -6
  208. data/test/test_airline.rb +17 -0
  209. data/test/test_array_utils.rb +51 -3
  210. data/test/test_avatar.rb +5 -1
  211. data/test/test_aws.rb +25 -0
  212. data/test/test_bacon_ipsum.rb +12 -6
  213. data/test/test_book.rb +41 -0
  214. data/test/test_boolean.rb +4 -0
  215. data/test/test_cheesy_lingo.rb +14 -10
  216. data/test/test_color.rb +126 -1
  217. data/test/test_color_ua.rb +5 -1
  218. data/test/test_company.rb +7 -0
  219. data/test/test_company_cn.rb +24 -0
  220. data/test/test_company_it.rb +7 -1
  221. data/test/test_company_se.rb +6 -0
  222. data/test/test_conference.rb +5 -2
  223. data/test/test_course_mathematiques.rb +5 -1
  224. data/test/test_course_philosophie.rb +5 -1
  225. data/test/test_currency.rb +12 -0
  226. data/test/test_dizzle_ipsum.rb +12 -6
  227. data/test/test_education.rb +9 -2
  228. data/test/test_faker.rb +8 -1
  229. data/test/test_food.rb +11 -4
  230. data/test/test_gender.rb +5 -1
  231. data/test/test_gender_br.rb +18 -0
  232. data/test/test_gender_cn.rb +5 -2
  233. data/test/test_gender_kr.rb +7 -3
  234. data/test/test_geolocation.rb +11 -8
  235. data/test/test_guid.rb +6 -1
  236. data/test/test_healthcare_ipsum.rb +13 -6
  237. data/test/test_hipster_ipsum.rb +13 -6
  238. data/test/test_html_ipsum.rb +28 -20
  239. data/test/test_identification.rb +9 -2
  240. data/test/test_identification_br.rb +46 -0
  241. data/test/test_identification_co.rb +7 -0
  242. data/test/test_identification_es.rb +5 -1
  243. data/test/test_identification_es_cl.rb +5 -1
  244. data/test/test_identification_es_mx.rb +7 -2
  245. data/test/test_identification_kr.rb +4 -0
  246. data/test/test_internet.rb +36 -5
  247. data/test/test_internet_se.rb +12 -4
  248. data/test/test_job.rb +4 -0
  249. data/test/test_job_br.rb +17 -0
  250. data/test/test_job_cn.rb +4 -0
  251. data/test/test_job_fr.rb +4 -0
  252. data/test/test_job_ja.rb +4 -0
  253. data/test/test_job_kr.rb +4 -0
  254. data/test/test_job_vn.rb +22 -0
  255. data/test/test_locale.rb +10 -4
  256. data/test/test_lorem.rb +18 -11
  257. data/test/test_lorem_ar.rb +16 -8
  258. data/test/test_lorem_cn.rb +9 -2
  259. data/test/test_lorem_fr.rb +16 -8
  260. data/test/test_lorem_ja.rb +81 -0
  261. data/test/test_lorem_kr.rb +17 -8
  262. data/test/test_lorem_ua.rb +15 -8
  263. data/test/test_module_utils.rb +2 -2
  264. data/test/test_movie.rb +5 -1
  265. data/test/test_music.rb +11 -4
  266. data/test/test_name.rb +114 -1
  267. data/test/test_name_br.rb +41 -2
  268. data/test/test_name_cn.rb +7 -0
  269. data/test/test_name_cs.rb +7 -0
  270. data/test/test_name_da.rb +13 -6
  271. data/test/test_name_de.rb +4 -0
  272. data/test/test_name_fr.rb +7 -0
  273. data/test/test_name_ga.rb +7 -0
  274. data/test/test_name_gr.rb +70 -0
  275. data/test/test_name_it.rb +7 -0
  276. data/test/test_name_ja.rb +7 -0
  277. data/test/test_name_kh.rb +32 -0
  278. data/test/test_name_kr.rb +7 -0
  279. data/test/test_name_mx.rb +9 -0
  280. data/test/test_name_nb.rb +8 -0
  281. data/test/test_name_nl.rb +4 -0
  282. data/test/test_name_ph.rb +7 -0
  283. data/test/test_name_ru.rb +10 -3
  284. data/test/test_name_se.rb +12 -4
  285. data/test/test_name_sn.rb +8 -0
  286. data/test/test_name_th.rb +7 -0
  287. data/test/test_name_th_en.rb +35 -0
  288. data/test/test_name_ua.rb +26 -17
  289. data/test/test_name_vn.rb +42 -0
  290. data/test/test_nato_alphabet.rb +15 -4
  291. data/test/test_phone_number.rb +24 -6
  292. data/test/test_phone_number_au.rb +17 -6
  293. data/test/test_phone_number_br.rb +22 -13
  294. data/test/test_phone_number_cu.rb +29 -18
  295. data/test/test_phone_number_da.rb +16 -7
  296. data/test/test_phone_number_de.rb +17 -9
  297. data/test/test_phone_number_kr.rb +9 -0
  298. data/test/test_phone_number_mx.rb +16 -8
  299. data/test/test_phone_number_nl.rb +9 -2
  300. data/test/test_phone_number_se.rb +12 -7
  301. data/test/test_phone_number_sg.rb +17 -9
  302. data/test/test_phone_number_sn.rb +12 -4
  303. data/test/test_products.rb +22 -0
  304. data/test/test_skill.rb +8 -2
  305. data/test/test_sports.rb +4 -0
  306. data/test/test_ssn.rb +3 -1
  307. data/test/test_ssn_mx.rb +6 -1
  308. data/test/test_ssn_se.rb +3 -0
  309. data/test/test_string.rb +28 -1
  310. data/test/test_time.rb +33 -2
  311. data/test/test_tweet.rb +59 -0
  312. data/test/test_units.rb +7 -0
  313. data/test/test_units_english.rb +9 -0
  314. data/test/test_units_metric.rb +9 -0
  315. data/test/test_vehicle.rb +24 -15
  316. data/test/test_venue.rb +5 -1
  317. data/test/test_youtube.rb +28 -0
  318. metadata +101 -5
  319. data/lib/ffaker/data/name/first_names +0 -3008
  320. data/lib/ffaker/data/name_br/first_names +0 -91
@@ -9,7 +9,7 @@ module FFaker
9
9
  extend ModuleUtils
10
10
  extend self
11
11
 
12
- POSTAL_CODE_FORMAT = ['#### ??']
12
+ POSTAL_CODE_FORMAT = ['#### ??'].freeze
13
13
 
14
14
  def postal_code
15
15
  FFaker.bothify POSTAL_CODE_FORMAT
@@ -20,24 +20,28 @@ module FFaker
20
20
  end
21
21
 
22
22
  def street_name
23
- case rand(2)
24
- when 0 then "#{NameNL.last_name}"
25
- when 1 then "#{NameNL.first_name}"
26
- end << case rand(20)
27
- when 0 then "weg"
28
- when 1 then "boulevard"
29
- when 3 then "pad"
30
- when 4 then "steeg"
31
- else "straat"
32
- end
23
+ name = fetch_sample([true, false]) ? NameNL.last_name : NameNL.first_name
24
+ name + random_type_of_street
33
25
  end
34
26
 
35
27
  def city
36
- CITY.sample
28
+ fetch_sample(CITY)
37
29
  end
38
30
 
39
31
  def province
40
- PROVINCE.sample
32
+ fetch_sample(PROVINCE)
33
+ end
34
+
35
+ private
36
+
37
+ def random_type_of_street
38
+ case rand(20)
39
+ when 0 then 'weg'
40
+ when 1 then 'boulevard'
41
+ when 3 then 'pad'
42
+ when 4 then 'steeg'
43
+ else 'straat'
44
+ end
41
45
  end
42
46
  end
43
47
  end
@@ -9,15 +9,15 @@ module FFaker
9
9
  extend ModuleUtils
10
10
  extend self
11
11
 
12
- POSTAL_CODE_FORMAT = ['######']
13
- STREET_NBR_FORMATS = %w(## # ###)
12
+ POSTAL_CODE_FORMAT = ['######'].freeze
13
+ STREET_NBR_FORMATS = %w(## # ###).freeze
14
14
 
15
15
  def city
16
- CITY.sample
16
+ fetch_sample(CITY)
17
17
  end
18
18
 
19
19
  def province
20
- PROVINCE.sample
20
+ fetch_sample(PROVINCE)
21
21
  end
22
22
 
23
23
  def zip_code
@@ -25,7 +25,7 @@ module FFaker
25
25
  end
26
26
 
27
27
  def street_name
28
- STREET.sample
28
+ fetch_sample(STREET)
29
29
  end
30
30
 
31
31
  def street_address
@@ -36,4 +36,4 @@ module FFaker
36
36
  FFaker.numerify(STREET_NBR_FORMATS)
37
37
  end
38
38
  end
39
- end
39
+ end
@@ -3,7 +3,6 @@
3
3
  require 'ffaker/address'
4
4
 
5
5
  module FFaker
6
-
7
6
  # List of countries from http://sv.wikipedia.org/wiki/V%C3%A4rldens_l%C3%A4nder#Lista_.C3.B6ver_l.C3.A4nder
8
7
  # The streetnames are all the roads in Stockholm that contains "väg" or "gata"
9
8
  # List of cities are from http://sv.wikipedia.org/wiki/Sveriges_kommuner
@@ -13,19 +12,19 @@ module FFaker
13
12
  extend ModuleUtils
14
13
  extend self
15
14
 
16
- ZIP_FORMATS = ['#####', '## ###']
17
- STREET_NBR_FORMATS = ['##', '#', '#a', '#b', '###']
15
+ ZIP_FORMATS = ['#####', '## ###'].freeze
16
+ STREET_NBR_FORMATS = ['##', '#', '#a', '#b', '###'].freeze
18
17
 
19
18
  def zip_code
20
- FFaker.numerify ZIP_FORMATS.sample
19
+ FFaker.numerify(fetch_sample(ZIP_FORMATS))
21
20
  end
22
21
 
23
22
  def city
24
- CITY.sample
23
+ fetch_sample(CITY)
25
24
  end
26
25
 
27
26
  def street_name
28
- STREET.sample
27
+ fetch_sample(STREET)
29
28
  end
30
29
 
31
30
  def street_address
@@ -33,7 +32,7 @@ module FFaker
33
32
  end
34
33
 
35
34
  def street_nbr
36
- FFaker.numerify STREET_NBR_FORMATS.sample
35
+ FFaker.numerify(fetch_sample(STREET_NBR_FORMATS))
37
36
  end
38
37
 
39
38
  def full_address
@@ -41,7 +40,7 @@ module FFaker
41
40
  end
42
41
 
43
42
  def random_country
44
- COUNTRIES.sample
43
+ fetch_sample(COUNTRIES)
45
44
  end
46
45
  end
47
46
  end
@@ -11,15 +11,15 @@ module FFaker
11
11
  extend self
12
12
 
13
13
  def region
14
- REGIONS.sample
14
+ fetch_sample(REGIONS)
15
15
  end
16
16
 
17
17
  def departement
18
- DEPARTEMENTS.sample
18
+ fetch_sample(DEPARTEMENTS)
19
19
  end
20
20
 
21
21
  def arrondissement
22
- ARRONDISSEMENTS.sample
22
+ fetch_sample(ARRONDISSEMENTS)
23
23
  end
24
24
  end
25
25
  end
@@ -7,20 +7,20 @@ module FFaker
7
7
  extend ModuleUtils
8
8
  extend self
9
9
 
10
- POSTAL_CODE_FORMAT = ['#####']
11
- BUILDING_NUMBER_FORMATS = %w(## # ###)
12
- APPARTMENT_NUMBER_FORMATS = %w(# ## ###)
10
+ POSTAL_CODE_FORMAT = ['#####'].freeze
11
+ BUILDING_NUMBER_FORMATS = %w(## # ###).freeze
12
+ APPARTMENT_NUMBER_FORMATS = %w(# ## ###).freeze
13
13
 
14
14
  def country
15
- COUNTRY.sample
15
+ fetch_sample(COUNTRY)
16
16
  end
17
17
 
18
18
  def city
19
- CITY.sample
19
+ fetch_sample(CITY)
20
20
  end
21
21
 
22
22
  def province
23
- PROVINCE.sample
23
+ fetch_sample(PROVINCE)
24
24
  end
25
25
 
26
26
  def zip_code
@@ -28,7 +28,7 @@ module FFaker
28
28
  end
29
29
 
30
30
  def street_name
31
- "вул. #{STREET.sample}"
31
+ "вул. #{fetch_sample(STREET)}"
32
32
  end
33
33
 
34
34
  def street_address(include_secondary = false)
@@ -51,7 +51,7 @@ module FFaker
51
51
  if allow_first_zero
52
52
  FFaker.numerify(masks_arr)
53
53
  else
54
- masks_arr.sample.sub(/#/) { (rand(9)+1).to_s }.gsub(/#/) { rand(10).to_s }
54
+ fetch_sample(masks_arr).sub(/#/) { (rand(9) + 1).to_s }.gsub(/#/) { rand(10).to_s }
55
55
  end
56
56
  end
57
57
  end
@@ -9,19 +9,19 @@ module FFaker
9
9
  extend ModuleUtils
10
10
  extend self
11
11
 
12
- COUNTRY = ['England', 'Scotland', 'Wales', 'Northern Ireland']
13
- POSTCODE = ['??# #??', '??## #??']
12
+ COUNTRY = ['England', 'Scotland', 'Wales', 'Northern Ireland'].freeze
13
+ POSTCODE = ['??# #??', '??## #??'].freeze
14
14
 
15
15
  def county
16
- COUNTY.sample
16
+ fetch_sample(COUNTY)
17
17
  end
18
18
 
19
19
  def country
20
- COUNTRY.sample
20
+ fetch_sample(COUNTRY)
21
21
  end
22
22
 
23
23
  def postcode
24
- FFaker.bothify(POSTCODE.sample).upcase
24
+ FFaker.bothify(fetch_sample(POSTCODE)).upcase
25
25
  end
26
26
  end
27
27
  end
@@ -9,32 +9,32 @@ module FFaker
9
9
  extend ModuleUtils
10
10
  extend self
11
11
 
12
- ZIP_FORMATS = ['#####', '#####-####']
13
- CONTINENTAL_STATE = (STATE - ['Hawaii', 'Alaska'])
14
- CONTINENTAL_STATE_ABBR = (STATE_ABBR - ['HI', 'AK'])
12
+ ZIP_FORMATS = ['#####', '#####-####'].freeze
13
+ CONTINENTAL_STATE = (STATE - %w(Hawaii Alaska))
14
+ CONTINENTAL_STATE_ABBR = (STATE_ABBR - %w(HI AK))
15
15
 
16
16
  def zip_code
17
- FFaker.numerify ZIP_FORMATS.sample
17
+ FFaker.numerify(fetch_sample(ZIP_FORMATS))
18
18
  end
19
19
 
20
20
  def state
21
- STATE.sample
21
+ fetch_sample(STATE)
22
22
  end
23
23
 
24
24
  def state_abbr
25
- STATE_ABBR.sample
25
+ fetch_sample(STATE_ABBR)
26
26
  end
27
27
 
28
28
  def state_and_territories_abbr
29
- STATE_AND_TERRITORIES_ABBR.sample
29
+ fetch_sample(STATE_AND_TERRITORIES_ABBR)
30
30
  end
31
31
 
32
32
  def continental_state
33
- CONTINENTAL_STATE.sample
33
+ fetch_sample(CONTINENTAL_STATE)
34
34
  end
35
35
 
36
36
  def continental_state_abbr
37
- CONTINENTAL_STATE_ABBR.sample
37
+ fetch_sample(CONTINENTAL_STATE_ABBR)
38
38
  end
39
39
  end
40
40
  end
@@ -0,0 +1,16 @@
1
+ # encoding: utf-8
2
+
3
+ module FFaker
4
+ module Airline
5
+ extend ModuleUtils
6
+ extend self
7
+
8
+ def name
9
+ fetch_sample(NAMES_LIST)
10
+ end
11
+
12
+ def flight_number
13
+ "#{fetch_sample(CODES_LIST)} #{rand(1..3999)}"
14
+ end
15
+ end
16
+ end
@@ -5,12 +5,12 @@ module FFaker
5
5
  extend ModuleUtils
6
6
  extend self
7
7
 
8
- SUPPORTED_FORMATS = %w(png jpg bmp)
8
+ SUPPORTED_FORMATS = %w(png jpg bmp).freeze
9
9
 
10
10
  def image(slug = nil, size = '300x300', format = 'png', bgset = nil)
11
- raise ArgumentError, "Size should be specified in format 300x300" unless size.match(/^[0-9]+x[0-9]+$/)
11
+ raise ArgumentError, 'Size should be specified in format 300x300' unless size =~ /^[0-9]+x[0-9]+$/
12
12
  raise ArgumentError, "Supported formats are #{SUPPORTED_FORMATS.join(', ')}" unless SUPPORTED_FORMATS.include?(format)
13
- raise ArgumentError, "Not a supported background number. Choose eather 1 or 2" unless (bgset.nil? or (1..2).include?(bgset.to_i))
13
+ raise ArgumentError, 'Not a supported background number. Choose eather 1 or 2' unless bgset.nil? || (1..2).cover?(bgset.to_i)
14
14
  slug ||= FFaker::Lorem.words.join
15
15
  "https://robohash.org/#{slug}.#{format}?size=#{size}#{'&bgset=bg' + bgset.to_s unless bgset.nil?}"
16
16
  end
@@ -0,0 +1,24 @@
1
+ # encoding: utf-8
2
+
3
+ module FFaker
4
+ module AWS
5
+ extend ModuleUtils
6
+ extend self
7
+
8
+ def instance_type
9
+ fetch_sample(EC2_INSTANCE_TYPE)
10
+ end
11
+
12
+ def offering_type
13
+ fetch_sample(EC2_RESERVED_OFFERING_TYPE)
14
+ end
15
+
16
+ def instance_tenancy
17
+ fetch_sample(EC2_RESERVED_INSTANCE_TENANCY)
18
+ end
19
+
20
+ def product_description
21
+ fetch_sample(EC2_RESERVED_PRODUCT_DESCRIPTION)
22
+ end
23
+ end
24
+ end
@@ -11,11 +11,11 @@ module FFaker
11
11
  extend self
12
12
 
13
13
  def word
14
- BACON_WORDS.sample
14
+ fetch_sample(BACON_WORDS)
15
15
  end
16
16
 
17
17
  def words(num = 3)
18
- BACON_WORDS.sample(num)
18
+ fetch_sample(BACON_WORDS, count: num)
19
19
  end
20
20
  end
21
21
  end
@@ -0,0 +1,45 @@
1
+ # encoding: utf-8
2
+
3
+ module FFaker
4
+ module Book
5
+ extend ModuleUtils
6
+ extend self
7
+
8
+ def title
9
+ case rand(2)
10
+ when 0 then simple_title
11
+ when 1 then title_with_prefix
12
+ end
13
+ end
14
+
15
+ def genre
16
+ fetch_sample(GENRES)
17
+ end
18
+
19
+ def author
20
+ FFaker::Name.name
21
+ end
22
+
23
+ def isbn
24
+ (rand(24_000_000_000) + 1_000_000_000).to_s
25
+ end
26
+
27
+ def description(sentence_count = 3)
28
+ FFaker::Lorem.paragraph(sentence_count)
29
+ end
30
+
31
+ def cover(slug = nil, size = '300x300', format = 'png', bgset = nil)
32
+ FFaker::Avatar.image(slug, size, format, bgset)
33
+ end
34
+
35
+ private
36
+
37
+ def simple_title
38
+ "#{fetch_sample(ADJ_AND_ADV)} #{fetch_sample(NOUNS)}"
39
+ end
40
+
41
+ def title_with_prefix
42
+ "#{fetch_sample(PREFIXES)} #{simple_title}"
43
+ end
44
+ end
45
+ end
@@ -12,7 +12,7 @@ module FFaker
12
12
  end
13
13
  end
14
14
 
15
- alias_method :random, :maybe
16
- alias_method :sample, :maybe
15
+ alias random maybe
16
+ alias sample maybe
17
17
  end
18
18
  end
@@ -2,38 +2,41 @@
2
2
 
3
3
  module FFaker
4
4
  module CheesyLingo
5
-
6
5
  # Born during RailsGirls Summer of Code 2015. Team Cheesy says Hi!
7
6
 
8
7
  extend ModuleUtils
9
8
  extend self
10
9
 
11
- TITLE_1 = %w[Sharp Soft Nutty Smokey Melting Cheeky Fat Dutch Grated Cheesed Milky]
12
- TITLE_2 = %w[Gouda Affineurs Alpine Sheep Cows Brie Goats Coulommiers Dairy]
10
+ TITLE_1 = %w(Sharp Soft Nutty Smokey Melting Cheeky Fat Dutch Grated Cheesed Milky).freeze
11
+ TITLE_2 = %w(Gouda Affineurs Alpine Sheep Cows Brie Goats Coulommiers Dairy).freeze
13
12
 
14
13
  def title
15
- "#{TITLE_1.sample} #{TITLE_2.sample}"
14
+ "#{fetch_sample(TITLE_1)} #{fetch_sample(TITLE_2)}"
16
15
  end
17
16
 
18
17
  def word
19
- CHEESY_WORDS.sample
18
+ fetch_sample(CHEESY_WORDS)
20
19
  end
21
20
 
22
21
  def words(count = 5)
23
- CHEESY_WORDS.sample(count)
22
+ fetch_sample(CHEESY_WORDS, count: count)
24
23
  end
25
24
 
26
25
  def sentence
27
- "#{ CHEESY_PHRASES.sample.capitalize } #{ CHEESY_PHRASES.sample } #{ CHEESY_PHRASES.sample }."
26
+ [
27
+ fetch_sample(CHEESY_PHRASES).capitalize,
28
+ fetch_sample(CHEESY_PHRASES),
29
+ fetch_sample(CHEESY_PHRASES)
30
+ ].join + '.'
28
31
  end
29
32
 
30
33
  def paragraph(number_of_phrases = 10)
31
- p = "#{ CHEESY_PHRASES.sample.capitalize }"
32
- (number_of_phrases-1).times do |s|
33
- s = " #{CHEESY_PHRASES.sample}"
34
+ p = fetch_sample(CHEESY_PHRASES).capitalize.to_s
35
+ (number_of_phrases - 1).times do |s|
36
+ s = " #{fetch_sample(CHEESY_PHRASES)}"
34
37
  p << s
35
38
  end
36
- p << "."
39
+ p << '.'
37
40
  end
38
41
  end
39
- end
42
+ end