ffaker 2.2.0 → 2.3.0

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -7,11 +7,11 @@ module FFaker
7
7
  extend self
8
8
 
9
9
  def word
10
- WORDS.sample
10
+ fetch_sample(WORDS)
11
11
  end
12
12
 
13
13
  def words(num = 3)
14
- WORDS.sample(num)
14
+ fetch_sample(WORDS, count: num)
15
15
  end
16
16
 
17
17
  def sentence(word_count = 4)
@@ -21,13 +21,13 @@ module FFaker
21
21
  "#{s}."
22
22
  end
23
23
 
24
- alias_method :phrase, :sentence
24
+ alias phrase sentence
25
25
 
26
26
  def sentences(sentence_count = 3)
27
27
  (1..sentence_count).map { sentence }
28
28
  end
29
29
 
30
- alias_method :phrases, :sentences
30
+ alias phrases sentences
31
31
 
32
32
  def paragraph(sentence_count = 3)
33
33
  sentences(sentence_count + rand(3)).join(' ')
@@ -7,11 +7,11 @@ module FFaker
7
7
  extend self
8
8
 
9
9
  def word
10
- WORDS.sample
10
+ fetch_sample(WORDS)
11
11
  end
12
12
 
13
13
  def words(num = 3)
14
- WORDS.sample(num)
14
+ fetch_sample(WORDS, count: num)
15
15
  end
16
16
 
17
17
  def sentence(word_count = 4)
@@ -23,7 +23,7 @@ module FFaker
23
23
  def sentences(sentence_count = 3)
24
24
  s = (1..sentence_count).map { sentence }
25
25
  def s.to_s
26
- result = self.join(' ')
26
+ result = join(' ')
27
27
  result[-1] = '。'
28
28
  result
29
29
  end
@@ -6,11 +6,11 @@ module FFaker
6
6
  extend self
7
7
 
8
8
  def word
9
- WORDS.sample
9
+ fetch_sample(WORDS)
10
10
  end
11
11
 
12
12
  def words(num = 3)
13
- WORDS.sample(num)
13
+ fetch_sample(WORDS, count: num)
14
14
  end
15
15
 
16
16
  def sentence(word_count = 4)
@@ -20,13 +20,13 @@ module FFaker
20
20
  "#{s}."
21
21
  end
22
22
 
23
- alias_method :phrase, :sentence
23
+ alias phrase sentence
24
24
 
25
25
  def sentences(sentence_count = 3)
26
26
  (1..sentence_count).map { sentence }
27
27
  end
28
28
 
29
- alias_method :phrases, :sentences
29
+ alias phrases sentences
30
30
 
31
31
  def paragraph(sentence_count = 3)
32
32
  sentences(sentence_count + rand(3)).join(' ')
@@ -0,0 +1,40 @@
1
+ # encoding: utf-8
2
+
3
+ module FFaker
4
+ module LoremJA
5
+ extend ModuleUtils
6
+ extend self
7
+
8
+ def character
9
+ fetch_sample(CHARACTERS)
10
+ end
11
+
12
+ def characters(count = 20)
13
+ fetch_sample(CHARACTERS, count: count).join
14
+ end
15
+
16
+ def word
17
+ fetch_sample(WORDS)
18
+ end
19
+
20
+ def words(count = 3)
21
+ fetch_sample(WORDS, count: count)
22
+ end
23
+
24
+ def sentence
25
+ fetch_sample(SENTENCES)
26
+ end
27
+
28
+ def sentences(count = 3)
29
+ (1..count).map { fetch_sample(SENTENCES) }
30
+ end
31
+
32
+ def paragraph(sentence_count = 3)
33
+ sentences(sentence_count).join('、') + '、' + fetch_sample(SENTENCES_END) + '。'
34
+ end
35
+
36
+ def paragraphs(count = 3)
37
+ (1..count).map { paragraph }
38
+ end
39
+ end
40
+ end
@@ -6,24 +6,24 @@ module FFaker
6
6
  extend self
7
7
 
8
8
  def word
9
- WORDS.sample
9
+ fetch_sample(WORDS)
10
10
  end
11
11
 
12
12
  def words(num = 3)
13
- WORDS.sample(num)
13
+ fetch_sample(WORDS, count: num)
14
14
  end
15
15
 
16
16
  def sentence(word_count = 4)
17
17
  "#{words(word_count + rand(5) + 1).join(' ')}."
18
18
  end
19
19
 
20
- alias_method :phrase, :sentence
20
+ alias phrase sentence
21
21
 
22
22
  def sentences(sentence_count = 3)
23
23
  (1..sentence_count).map { sentence }
24
24
  end
25
25
 
26
- alias_method :phrases, :sentences
26
+ alias phrases sentences
27
27
 
28
28
  def paragraph(sentence_count = 3)
29
29
  sentences(sentence_count + rand(3)).join(' ')
@@ -6,29 +6,27 @@ module FFaker
6
6
  extend self
7
7
 
8
8
  def word
9
- WORDS.sample
9
+ fetch_sample(WORDS)
10
10
  end
11
11
 
12
12
  def words(num = 3)
13
- WORDS.sample(num)
13
+ fetch_sample(WORDS, count: num)
14
14
  end
15
15
 
16
16
  def sentence(word_count = 7)
17
17
  elements = words(word_count + rand(10))
18
- if elements.count > 10
19
- elements.insert(rand(3..(elements.count - 3)), ',')
20
- end
18
+ elements.insert(rand(3..(elements.count - 3)), ',') if elements.count > 10
21
19
  result = elements.join(' ').gsub(' , ', ', ')
22
20
  capitalize_ukrainian("#{result}#{sentence_type_mark}")
23
21
  end
24
22
 
25
- alias_method :phrase, :sentence
23
+ alias phrase sentence
26
24
 
27
25
  def sentences(sentence_count = 3)
28
26
  (1..sentence_count).map { sentence }
29
27
  end
30
28
 
31
- alias_method :phrases, :sentences
29
+ alias phrases sentences
32
30
 
33
31
  def paragraph(sentence_count = 5)
34
32
  sentences(sentence_count + rand(3)).join(' ')
@@ -42,9 +40,9 @@ module FFaker
42
40
 
43
41
  def sentence_type_mark
44
42
  case rand(10)
45
- when 0..7 then "."
46
- when 8 then "!"
47
- when 9 then "?"
43
+ when 0..7 then '.'
44
+ when 8 then '!'
45
+ when 9 then '?'
48
46
  end
49
47
  end
50
48
 
@@ -56,4 +54,3 @@ module FFaker
56
54
  end
57
55
  end
58
56
  end
59
-
@@ -6,12 +6,12 @@ module FFaker
6
6
  extend self
7
7
 
8
8
  SUFFIXES = [
9
- "from Hell", "from Outer Space", "from Mars", "from the Black Lagoon", "with a Thousand Faces",
10
- "from Across the Ocean", "Who Fell to Earth", "That Came to Dinner"
11
- ]
12
- COLORS = %w{Red Yellow Black White}
9
+ 'from Hell', 'from Outer Space', 'from Mars', 'from the Black Lagoon', 'with a Thousand Faces',
10
+ 'from Across the Ocean', 'Who Fell to Earth', 'That Came to Dinner'
11
+ ].freeze
12
+ COLORS = %w(Red Yellow Black White).freeze
13
13
 
14
- RATINGS = %w(G PG PG-13 R NC-17) # According to MPAA
14
+ RATINGS = %w(G PG PG-13 R NC-17).freeze # According to MPAA
15
15
 
16
16
  def title
17
17
  case rand(4)
@@ -23,45 +23,43 @@ module FFaker
23
23
  end
24
24
 
25
25
  def rating
26
- RATINGS.sample
26
+ fetch_sample(RATINGS)
27
27
  end
28
28
 
29
29
  private
30
30
 
31
31
  def title_with_prefix
32
- "#{PREFIXES.sample} #{maybe_adj_or_adv}#{NOUNS.sample}"
32
+ "#{fetch_sample(PREFIXES)} #{maybe_adj_or_adv}#{fetch_sample(NOUNS)}"
33
33
  end
34
34
 
35
35
  def title_with_suffix
36
- "The #{maybe_adj_or_adv}#{NOUNS.sample} #{SUFFIXES.sample}"
36
+ "The #{maybe_adj_or_adv}#{fetch_sample(NOUNS)} #{fetch_sample(SUFFIXES)}"
37
37
  end
38
38
 
39
39
  def maybe_adj_or_adv
40
- if rand(2) == 1
41
- ADJ_AND_ADV.sample + " "
42
- end
40
+ fetch_sample(ADJ_AND_ADV) + ' ' if rand(2) == 1
43
41
  end
44
42
 
45
43
  def simple_title
46
- "#{ADJ_AND_ADV.sample} #{NOUNS.sample}"
44
+ "#{fetch_sample(ADJ_AND_ADV)} #{fetch_sample(NOUNS)}"
47
45
  end
48
46
 
49
47
  def title_from_formula
50
48
  case rand(13)
51
- when 0 then "#{NOUNS.sample} 2: Electric Boogaloo"
52
- when 1 then "The #{NOUNS.sample} Without a #{NOUNS.sample}"
53
- when 2 then "The #{NOUNS.sample} from #{rand(20_000)} Leagues"
49
+ when 0 then "#{fetch_sample(NOUNS)} 2: Electric Boogaloo"
50
+ when 1 then "The #{fetch_sample(NOUNS)} Without a #{fetch_sample(NOUNS)}"
51
+ when 2 then "The #{fetch_sample(NOUNS)} from #{rand(20_000)} Leagues"
54
52
  when 3 then "#{simple_title}: The #{FFaker::Name.name} Story"
55
53
  when 4 then "When #{FFaker::Name.first_name} Met #{FFaker::Name.first_name}"
56
- when 5 then "Dr. #{NOUNS.sample}"
54
+ when 5 then "Dr. #{fetch_sample(NOUNS)}"
57
55
  when 6 then "Je Vous Presente, #{FFaker::Name.first_name}"
58
56
  when 7 then "#{rand(3000)} A.D."
59
- when 8 then "The #{NOUNS.sample} from #{FFaker::Address.neighborhood}"
57
+ when 8 then "The #{fetch_sample(NOUNS)} from #{FFaker::Address.neighborhood}"
60
58
  when 9 then "Christmas on #{FFaker::Address.street_name}"
61
- when 10 then "The #{COLORS.sample} Rose of #{FFaker::AddressUK.country}"
62
- when 11 then "Hard Boiled #{NOUNS.sample}"
59
+ when 10 then "The #{fetch_sample(COLORS)} Rose of #{FFaker::AddressUK.country}"
60
+ when 11 then "Hard Boiled #{fetch_sample(NOUNS)}"
63
61
  else
64
- ::String.new.tap{|s| n = simple_title; s.replace("#{n} 2: Son of #{n}")}
62
+ ::String.new.tap { |s| n = simple_title; s.replace("#{n} 2: Son of #{n}") }
65
63
  end
66
64
  end
67
65
  end
@@ -6,19 +6,19 @@ module FFaker
6
6
  extend self
7
7
 
8
8
  def genre
9
- GENRES.sample
9
+ fetch_sample(GENRES)
10
10
  end
11
11
 
12
12
  def album
13
- ALBUMS.sample
13
+ fetch_sample(ALBUMS)
14
14
  end
15
15
 
16
16
  def artist
17
- ARTISTS.sample
17
+ fetch_sample(ARTISTS)
18
18
  end
19
19
 
20
20
  def song
21
- SONGS.sample
21
+ fetch_sample(SONGS)
22
22
  end
23
23
  end
24
24
  end
@@ -5,31 +5,120 @@ module FFaker
5
5
  extend ModuleUtils
6
6
  extend self
7
7
 
8
- PREFIXES = %w(Mr. Mrs. Ms. Miss Dr.)
9
- SUFFIXES = %w(Jr. Sr. I II III IV V MD DDS PhD DVM)
8
+ MALE_PREFIXES = %w(Mr.).freeze
9
+ FEMALE_PREFIXES = %w(Mrs. Miss.).freeze
10
+ OTHER_PREFIXES = %w(Ms. Dr.).freeze
11
+ PREFIXES = (MALE_PREFIXES + FEMALE_PREFIXES + OTHER_PREFIXES).freeze
12
+ FIRST_NAMES = (FIRST_NAMES_FEMALE + FIRST_NAMES_MALE).freeze
13
+ SUFFIXES = %w(Jr. Sr. I II III IV V MD DDS PhD DVM).freeze
10
14
 
11
15
  def name
12
- case rand(10)
13
- when 0 then "#{prefix} #{first_name} #{last_name}"
14
- when 1 then "#{first_name} #{last_name} #{suffix}"
15
- else "#{first_name} #{last_name}"
16
- end
16
+ "#{first_name} #{last_name}"
17
+ end
18
+
19
+ def html_safe_name
20
+ "#{first_name} #{html_safe_last_name}"
21
+ end
22
+
23
+ def name_with_prefix
24
+ fetch_sample(
25
+ [
26
+ female_name_with_prefix,
27
+ male_name_with_prefix
28
+ ]
29
+ )
30
+ end
31
+
32
+ def name_with_suffix
33
+ fetch_sample(
34
+ [
35
+ female_name_with_suffix,
36
+ male_name_with_suffix
37
+ ]
38
+ )
39
+ end
40
+
41
+ def name_with_prefix_suffix
42
+ fetch_sample(
43
+ [
44
+ female_name_with_prefix_suffix,
45
+ male_name_with_prefix_suffix
46
+ ]
47
+ )
48
+ end
49
+
50
+ def female_name_with_prefix
51
+ "#{female_prefix} #{first_name_female} #{last_name}"
52
+ end
53
+
54
+ def male_name_with_prefix
55
+ "#{male_prefix} #{first_name_male} #{last_name}"
56
+ end
57
+
58
+ def female_name_with_suffix
59
+ "#{first_name_female} #{last_name} #{suffix}"
60
+ end
61
+
62
+ def male_name_with_suffix
63
+ "#{first_name_male} #{last_name} #{suffix}"
64
+ end
65
+
66
+ def female_name_with_prefix_suffix
67
+ "#{female_prefix} #{first_name_female} #{last_name} #{suffix}"
68
+ end
69
+
70
+ def male_name_with_prefix_suffix
71
+ "#{male_prefix} #{first_name_male} #{last_name} #{suffix}"
17
72
  end
18
73
 
19
74
  def first_name
20
- FIRST_NAMES.sample
75
+ fetch_sample(FIRST_NAMES)
76
+ end
77
+
78
+ def first_name_female
79
+ fetch_sample(FIRST_NAMES_FEMALE)
80
+ end
81
+
82
+ def first_name_male
83
+ fetch_sample(FIRST_NAMES_MALE)
21
84
  end
22
85
 
23
86
  def last_name
24
- LAST_NAMES.sample
87
+ fetch_sample(LAST_NAMES)
88
+ end
89
+
90
+ def html_safe_last_name
91
+ loop do
92
+ t = LAST_NAMES.sample
93
+ return t unless t.include? "'"
94
+ end
95
+ end
96
+
97
+ def html_safe_last_name
98
+ loop do
99
+ t = LAST_NAMES.sample
100
+ return t unless t.include? "'"
101
+ end
25
102
  end
26
103
 
27
104
  def prefix
28
- PREFIXES.sample
105
+ fetch_sample(PREFIXES)
106
+ end
107
+
108
+ def female_prefix
109
+ fetch_sample(FEMALE_PREFIXES)
110
+ end
111
+
112
+ def male_prefix
113
+ fetch_sample(MALE_PREFIXES)
114
+ end
115
+
116
+ def other_prefix
117
+ fetch_sample(OTHER_PREFIXES)
29
118
  end
30
119
 
31
120
  def suffix
32
- SUFFIXES.sample
121
+ fetch_sample(SUFFIXES)
33
122
  end
34
123
  end
35
124
  end
@@ -5,27 +5,58 @@ module FFaker
5
5
  extend ModuleUtils
6
6
  extend self
7
7
 
8
- PREFIXES = %w(Sr. Sra. Srta.)
8
+ MALE_PREFIXES = %w(Sr.).freeze
9
+ FEMALE_PREFIXES = %w(Sra. Srta.).freeze
10
+ PREFIXES = (MALE_PREFIXES + FEMALE_PREFIXES).freeze
11
+ FIRST_NAMES = (FIRST_NAMES_FEMALE + FIRST_NAMES_MALE).freeze
9
12
 
10
13
  def name
11
14
  "#{first_name} #{last_name}"
12
15
  end
13
16
 
14
17
  def name_with_prefix
15
- "#{prefix} #{name}"
18
+ fetch_sample(
19
+ [
20
+ female_name_with_prefix,
21
+ male_name_with_prefix
22
+ ]
23
+ )
24
+ end
25
+
26
+ def female_name_with_prefix
27
+ "#{female_prefix} #{first_name_female} #{last_name}"
28
+ end
29
+
30
+ def male_name_with_prefix
31
+ "#{male_prefix} #{first_name_male} #{last_name}"
16
32
  end
17
33
 
18
34
  def first_name
19
- FIRST_NAMES.sample
35
+ fetch_sample(FIRST_NAMES)
36
+ end
37
+
38
+ def first_name_female
39
+ fetch_sample(FIRST_NAMES_FEMALE)
40
+ end
41
+
42
+ def first_name_male
43
+ fetch_sample(FIRST_NAMES_MALE)
20
44
  end
21
45
 
22
46
  def last_name
23
- LAST_NAMES.sample
47
+ fetch_sample(LAST_NAMES)
24
48
  end
25
49
 
26
50
  def prefix
27
- PREFIXES.sample
51
+ fetch_sample(PREFIXES)
52
+ end
53
+
54
+ def female_prefix
55
+ fetch_sample(FEMALE_PREFIXES)
56
+ end
57
+
58
+ def male_prefix
59
+ fetch_sample(MALE_PREFIXES)
28
60
  end
29
61
  end
30
62
  end
31
-