ffakerer 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (234) hide show
  1. checksums.yaml +15 -0
  2. data/Changelog.md +154 -0
  3. data/Gemfile +2 -0
  4. data/LICENSE +22 -0
  5. data/README.md +88 -0
  6. data/Rakefile +138 -0
  7. data/ffakerer.gemspec +266 -0
  8. data/lib/ffakerer.rb +31 -0
  9. data/lib/ffakerer/address.rb +99 -0
  10. data/lib/ffakerer/address_au.rb +106 -0
  11. data/lib/ffakerer/address_ca.rb +28 -0
  12. data/lib/ffakerer/address_da.rb +56 -0
  13. data/lib/ffakerer/address_de.rb +42 -0
  14. data/lib/ffakerer/address_mx.rb +505 -0
  15. data/lib/ffakerer/address_se.rb +48 -0
  16. data/lib/ffakerer/address_sn.rb +25 -0
  17. data/lib/ffakerer/address_uk.rb +27 -0
  18. data/lib/ffakerer/address_us.rb +30 -0
  19. data/lib/ffakerer/bacon_ipsum.rb +21 -0
  20. data/lib/ffakerer/company.rb +45 -0
  21. data/lib/ffakerer/company_se.rb +24 -0
  22. data/lib/ffakerer/conference.rb +12 -0
  23. data/lib/ffakerer/data/address/city_suffixes +19 -0
  24. data/lib/ffakerer/data/address/country +242 -0
  25. data/lib/ffakerer/data/address/neighborhood +49 -0
  26. data/lib/ffakerer/data/address/street_suffix +195 -0
  27. data/lib/ffakerer/data/address_ca/province +13 -0
  28. data/lib/ffakerer/data/address_da/city +592 -0
  29. data/lib/ffakerer/data/address_da/kommune +92 -0
  30. data/lib/ffakerer/data/address_da/street +657 -0
  31. data/lib/ffakerer/data/address_de/city +1666 -0
  32. data/lib/ffakerer/data/address_de/state +15 -0
  33. data/lib/ffakerer/data/address_mx/state +32 -0
  34. data/lib/ffakerer/data/address_mx/state_abbr +32 -0
  35. data/lib/ffakerer/data/address_se/city +154 -0
  36. data/lib/ffakerer/data/address_se/countries +250 -0
  37. data/lib/ffakerer/data/address_se/street +2887 -0
  38. data/lib/ffakerer/data/address_sn/arrondissements +47 -0
  39. data/lib/ffakerer/data/address_sn/departements +43 -0
  40. data/lib/ffakerer/data/address_sn/regions +14 -0
  41. data/lib/ffakerer/data/address_uk/uk_county +70 -0
  42. data/lib/ffakerer/data/address_us/state +50 -0
  43. data/lib/ffakerer/data/address_us/state_abbr +51 -0
  44. data/lib/ffakerer/data/address_us/state_and_territories_abbr +62 -0
  45. data/lib/ffakerer/data/bacon_ipsum/bacon_words +60 -0
  46. data/lib/ffakerer/data/company/bs_mid +65 -0
  47. data/lib/ffakerer/data/company/bs_pos +44 -0
  48. data/lib/ffakerer/data/company/bs_pre +60 -0
  49. data/lib/ffakerer/data/company/catch_mid +101 -0
  50. data/lib/ffakerer/data/company/catch_pos +104 -0
  51. data/lib/ffakerer/data/company/catch_pre +100 -0
  52. data/lib/ffakerer/data/company/position_areas +11 -0
  53. data/lib/ffakerer/data/conference/conference_list +40 -0
  54. data/lib/ffakerer/data/dizzle_ipsum/dizzle_words +69 -0
  55. data/lib/ffakerer/data/education/major_noun +13 -0
  56. data/lib/ffakerer/data/education/school_suffix +13 -0
  57. data/lib/ffakerer/data/healthcare_ipsum/healthcare_words +193 -0
  58. data/lib/ffakerer/data/hipster_ipsum/hipster_words +101 -0
  59. data/lib/ffakerer/data/job/job_adj +37 -0
  60. data/lib/ffakerer/data/job/job_noun +25 -0
  61. data/lib/ffakerer/data/job/job_prefix +22 -0
  62. data/lib/ffakerer/data/job_fr/job_nouns +14 -0
  63. data/lib/ffakerer/data/job_fr/job_prefixes +15 -0
  64. data/lib/ffakerer/data/lorem/characters +36 -0
  65. data/lib/ffakerer/data/lorem/words +249 -0
  66. data/lib/ffakerer/data/lorem_ar/words +911 -0
  67. data/lib/ffakerer/data/lorem_cn/words +706 -0
  68. data/lib/ffakerer/data/lorem_fr/words +10379 -0
  69. data/lib/ffakerer/data/movie/adj_and_adv +20 -0
  70. data/lib/ffakerer/data/movie/nouns +36 -0
  71. data/lib/ffakerer/data/movie/prefixes +17 -0
  72. data/lib/ffakerer/data/name/first_names +3008 -0
  73. data/lib/ffakerer/data/name/last_names +475 -0
  74. data/lib/ffakerer/data/name_cn/first_names +1000 -0
  75. data/lib/ffakerer/data/name_cn/last_names +1057 -0
  76. data/lib/ffakerer/data/name_cs/prefixes +16 -0
  77. data/lib/ffakerer/data/name_da/female_first_names +492 -0
  78. data/lib/ffakerer/data/name_da/last_names +187 -0
  79. data/lib/ffakerer/data/name_da/male_first_names +390 -0
  80. data/lib/ffakerer/data/name_de/first_names +1166 -0
  81. data/lib/ffakerer/data/name_de/last_names +100 -0
  82. data/lib/ffakerer/data/name_fr/first_names +220 -0
  83. data/lib/ffakerer/data/name_fr/last_names +408 -0
  84. data/lib/ffakerer/data/name_ga/first_names_female +225 -0
  85. data/lib/ffakerer/data/name_ga/first_names_male +306 -0
  86. data/lib/ffakerer/data/name_ja/first_names +397 -0
  87. data/lib/ffakerer/data/name_ja/last_names +1078 -0
  88. data/lib/ffakerer/data/name_kr/first_names +1317 -0
  89. data/lib/ffakerer/data/name_kr/last_names +197 -0
  90. data/lib/ffakerer/data/name_mx/female_first_names +216 -0
  91. data/lib/ffakerer/data/name_mx/last_names +352 -0
  92. data/lib/ffakerer/data/name_mx/male_first_names +211 -0
  93. data/lib/ffakerer/data/name_ph/autochthonous_surnames +217 -0
  94. data/lib/ffakerer/data/name_ph/spanish_surnames +300 -0
  95. data/lib/ffakerer/data/name_se/first_names_female +110 -0
  96. data/lib/ffakerer/data/name_se/first_names_male +110 -0
  97. data/lib/ffakerer/data/name_se/last_names +100 -0
  98. data/lib/ffakerer/data/name_sn/first_names_female +225 -0
  99. data/lib/ffakerer/data/name_sn/first_names_male +304 -0
  100. data/lib/ffakerer/data/name_sn/last_names +243 -0
  101. data/lib/ffakerer/data/name_vn/first_names +6 -0
  102. data/lib/ffakerer/data/name_vn/last_names +67 -0
  103. data/lib/ffakerer/data/name_vn/middle_names +89 -0
  104. data/lib/ffakerer/data/phone_number_se/phone_prefix +265 -0
  105. data/lib/ffakerer/data/product/adj +19 -0
  106. data/lib/ffakerer/data/product/b1 +19 -0
  107. data/lib/ffakerer/data/product/noun +16 -0
  108. data/lib/ffakerer/data/skill/specialty_end +14 -0
  109. data/lib/ffakerer/data/skill/specialty_start +18 -0
  110. data/lib/ffakerer/data/skill/tech_skills +52 -0
  111. data/lib/ffakerer/data/venue/venue_list +33 -0
  112. data/lib/ffakerer/dizzle_ipsum.rb +21 -0
  113. data/lib/ffakerer/education.rb +48 -0
  114. data/lib/ffakerer/geolocation.rb +50 -0
  115. data/lib/ffakerer/healthcare_ipsum.rb +20 -0
  116. data/lib/ffakerer/hipster_ipsum.rb +21 -0
  117. data/lib/ffakerer/html_ipsum.rb +160 -0
  118. data/lib/ffakerer/identification.rb +27 -0
  119. data/lib/ffakerer/identification_es.rb +15 -0
  120. data/lib/ffakerer/identification_es_cl.rb +26 -0
  121. data/lib/ffakerer/identification_es_co.rb +40 -0
  122. data/lib/ffakerer/internet.rb +72 -0
  123. data/lib/ffakerer/internet_se.rb +106 -0
  124. data/lib/ffakerer/job.rb +12 -0
  125. data/lib/ffakerer/job_fr.rb +14 -0
  126. data/lib/ffakerer/lorem.rb +44 -0
  127. data/lib/ffakerer/lorem_ar.rb +40 -0
  128. data/lib/ffakerer/lorem_cn.rb +41 -0
  129. data/lib/ffakerer/lorem_fr.rb +39 -0
  130. data/lib/ffakerer/movie.rb +63 -0
  131. data/lib/ffakerer/name.rb +35 -0
  132. data/lib/ffakerer/name_cn.rb +24 -0
  133. data/lib/ffakerer/name_cs.rb +90 -0
  134. data/lib/ffakerer/name_da.rb +68 -0
  135. data/lib/ffakerer/name_de.rb +33 -0
  136. data/lib/ffakerer/name_fr.rb +37 -0
  137. data/lib/ffakerer/name_ga.rb +47 -0
  138. data/lib/ffakerer/name_ja.rb +24 -0
  139. data/lib/ffakerer/name_kr.rb +24 -0
  140. data/lib/ffakerer/name_mx.rb +103 -0
  141. data/lib/ffakerer/name_ph.rb +29 -0
  142. data/lib/ffakerer/name_ru.rb +92 -0
  143. data/lib/ffakerer/name_se.rb +47 -0
  144. data/lib/ffakerer/name_sn.rb +65 -0
  145. data/lib/ffakerer/name_vn.rb +28 -0
  146. data/lib/ffakerer/phone_number.rb +34 -0
  147. data/lib/ffakerer/phone_number_au.rb +77 -0
  148. data/lib/ffakerer/phone_number_da.rb +45 -0
  149. data/lib/ffakerer/phone_number_de.rb +51 -0
  150. data/lib/ffakerer/phone_number_mx.rb +58 -0
  151. data/lib/ffakerer/phone_number_se.rb +90 -0
  152. data/lib/ffakerer/phone_number_sg.rb +81 -0
  153. data/lib/ffakerer/phone_number_sn.rb +78 -0
  154. data/lib/ffakerer/product.rb +45 -0
  155. data/lib/ffakerer/skill.rb +24 -0
  156. data/lib/ffakerer/ssn.rb +17 -0
  157. data/lib/ffakerer/ssn_se.rb +109 -0
  158. data/lib/ffakerer/string.rb +92 -0
  159. data/lib/ffakerer/time.rb +30 -0
  160. data/lib/ffakerer/unit.rb +50 -0
  161. data/lib/ffakerer/unit_english.rb +114 -0
  162. data/lib/ffakerer/unit_metric.rb +105 -0
  163. data/lib/ffakerer/utils/array_utils.rb +44 -0
  164. data/lib/ffakerer/utils/module_utils.rb +29 -0
  165. data/lib/ffakerer/venue.rb +12 -0
  166. data/scripts/benchmark.rb +21 -0
  167. data/scripts/profile.sh +2 -0
  168. data/scripts/profiling.rb +7 -0
  169. data/test/helper.rb +2 -0
  170. data/test/test_address.rb +73 -0
  171. data/test/test_address_au.rb +58 -0
  172. data/test/test_address_ca.rb +17 -0
  173. data/test/test_address_de.rb +25 -0
  174. data/test/test_address_mx.rb +26 -0
  175. data/test/test_address_se.rb +36 -0
  176. data/test/test_address_sn.rb +25 -0
  177. data/test/test_address_uk.rb +17 -0
  178. data/test/test_address_us.rb +25 -0
  179. data/test/test_array_utils.rb +52 -0
  180. data/test/test_bacon_ipsum.rb +30 -0
  181. data/test/test_company.rb +23 -0
  182. data/test/test_company_se.rb +14 -0
  183. data/test/test_conference.rb +10 -0
  184. data/test/test_dizzle_ipsum.rb +30 -0
  185. data/test/test_education.rb +34 -0
  186. data/test/test_faker.rb +30 -0
  187. data/test/test_faker_internet.rb +60 -0
  188. data/test/test_faker_internet_se.rb +67 -0
  189. data/test/test_faker_job.rb +14 -0
  190. data/test/test_faker_job_fr.rb +22 -0
  191. data/test/test_faker_name.rb +21 -0
  192. data/test/test_faker_name_cn.rb +13 -0
  193. data/test/test_faker_name_cs.rb +65 -0
  194. data/test/test_faker_name_de.rb +21 -0
  195. data/test/test_faker_name_fr.rb +48 -0
  196. data/test/test_faker_name_ga.rb +56 -0
  197. data/test/test_faker_name_ja.rb +13 -0
  198. data/test/test_faker_name_kr.rb +13 -0
  199. data/test/test_faker_name_mx.rb +180 -0
  200. data/test/test_faker_name_ph.rb +17 -0
  201. data/test/test_faker_name_ru.rb +80 -0
  202. data/test/test_faker_name_se.rb +38 -0
  203. data/test/test_faker_name_sn.rb +98 -0
  204. data/test/test_geolocation.rb +34 -0
  205. data/test/test_healthcare_ipsum.rb +27 -0
  206. data/test/test_hipster_ipsum.rb +29 -0
  207. data/test/test_html_ipsum.rb +91 -0
  208. data/test/test_identification.rb +27 -0
  209. data/test/test_identification_co.rb +38 -0
  210. data/test/test_identification_es.rb +13 -0
  211. data/test/test_identification_es_cl.rb +13 -0
  212. data/test/test_lorem.rb +44 -0
  213. data/test/test_lorem_ar.rb +37 -0
  214. data/test/test_lorem_cn.rb +47 -0
  215. data/test/test_lorem_fr.rb +37 -0
  216. data/test/test_module_utils.rb +14 -0
  217. data/test/test_movie.rb +9 -0
  218. data/test/test_phone_number.rb +13 -0
  219. data/test/test_phone_number_au.rb +50 -0
  220. data/test/test_phone_number_de.rb +46 -0
  221. data/test/test_phone_number_mx.rb +43 -0
  222. data/test/test_phone_number_se.rb +60 -0
  223. data/test/test_phone_number_sg.rb +44 -0
  224. data/test/test_phone_number_sn.rb +34 -0
  225. data/test/test_skill.rb +24 -0
  226. data/test/test_ssn.rb +11 -0
  227. data/test/test_ssn_se.rb +43 -0
  228. data/test/test_string.rb +71 -0
  229. data/test/test_time.rb +19 -0
  230. data/test/test_units.rb +32 -0
  231. data/test/test_units_english.rb +62 -0
  232. data/test/test_units_metric.rb +61 -0
  233. data/test/test_venue.rb +9 -0
  234. metadata +372 -0
@@ -0,0 +1,39 @@
1
+ # encoding: UTF-8
2
+
3
+ module Faker
4
+ module LoremFR
5
+ extend ModuleUtils
6
+ extend self
7
+
8
+ def word
9
+ WORDS.rand
10
+ end
11
+
12
+ def words(num = 3)
13
+ WORDS.random_pick(num)
14
+ end
15
+
16
+ def sentence(word_count = 4)
17
+ s = words(word_count + rand(6))
18
+ s = s.join(' ')
19
+ s.capitalize!
20
+ "#{s}."
21
+ end
22
+
23
+ alias_method :phrase, :sentence
24
+
25
+ def sentences(sentence_count = 3)
26
+ (1..sentence_count).map { sentence }
27
+ end
28
+
29
+ alias_method :phrases, :sentences
30
+
31
+ def paragraph(sentence_count = 3)
32
+ sentences(sentence_count + rand(3)).join(' ')
33
+ end
34
+
35
+ def paragraphs(paragraph_count = 3)
36
+ (1..paragraph_count).map { paragraph }
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,63 @@
1
+ # encoding: utf-8
2
+
3
+ module Faker
4
+ module Movie
5
+ extend ModuleUtils
6
+ extend self
7
+
8
+ def title
9
+ case rand(4)
10
+ when 0 then title_with_prefix
11
+ when 1 then title_with_suffix
12
+ when 2 then simple_title
13
+ when 3 then title_from_formula
14
+ end
15
+ end
16
+
17
+ SUFFIXES = k [
18
+ "from Hell", "from Outer Space", "from Mars", "from the Black Lagoon", "with a Thousand Faces",
19
+ "from Across the Ocean", "Who Fell to Earth", "That Came to Dinner"
20
+ ]
21
+
22
+ COLORS = k %w{Red Yellow Black White}
23
+
24
+ private
25
+
26
+ def title_with_prefix
27
+ "#{PREFIXES.rand} #{maybe_adj_or_adv}#{NOUNS.rand}"
28
+ end
29
+
30
+ def title_with_suffix
31
+ "The #{maybe_adj_or_adv}#{NOUNS.rand} #{SUFFIXES.rand}"
32
+ end
33
+
34
+ def maybe_adj_or_adv
35
+ if rand(2) == 1
36
+ ADJ_AND_ADV.rand + " "
37
+ end
38
+ end
39
+
40
+ def simple_title
41
+ "#{ADJ_AND_ADV.rand} #{NOUNS.rand}"
42
+ end
43
+
44
+ def title_from_formula
45
+ case rand(13)
46
+ when 0 then "#{NOUNS.rand} 2: Electric Boogaloo"
47
+ when 1 then "The #{NOUNS.rand} Without a #{NOUNS.rand}"
48
+ when 2 then "The #{NOUNS.rand} from #{rand(20_000)} Leagues"
49
+ when 3 then "#{simple_title}: The #{Faker::Name.name} Story"
50
+ when 4 then "When #{Faker::Name.first_name} Met #{Faker::Name.first_name}"
51
+ when 5 then "Dr. #{NOUNS.rand}"
52
+ when 6 then "Je Vous Presente, #{Faker::Name.first_name}"
53
+ when 7 then "#{rand(3000)} A.D."
54
+ when 8 then "The #{NOUNS.rand} from #{Faker::Address.neighborhood}"
55
+ when 9 then "Christmas on #{Faker::Address.street_name}"
56
+ when 10 then "The #{COLORS.rand} Rose of #{Faker::AddressUK.country}"
57
+ when 11 then "Hard Boiled #{NOUNS.rand}"
58
+ else
59
+ ::String.new.tap{|s| n = simple_title; s.replace("#{n} 2: Son of #{n}")}
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,35 @@
1
+ # encoding: utf-8
2
+
3
+ module Faker
4
+ module Name
5
+ extend ModuleUtils
6
+ extend self
7
+
8
+ def name
9
+ case rand(10)
10
+ when 0 then "#{prefix} #{first_name} #{last_name}"
11
+ when 1 then "#{first_name} #{last_name} #{suffix}"
12
+ else "#{first_name} #{last_name}"
13
+ end
14
+ end
15
+
16
+ def first_name
17
+ FIRST_NAMES.rand
18
+ end
19
+
20
+ def last_name
21
+ LAST_NAMES.rand
22
+ end
23
+
24
+ def prefix
25
+ PREFIXES.rand
26
+ end
27
+
28
+ def suffix
29
+ SUFFIXES.rand
30
+ end
31
+
32
+ PREFIXES = k %w(Mr. Mrs. Ms. Miss Dr.)
33
+ SUFFIXES = k %w(Jr. Sr. I II III IV V MD DDS PhD DVM)
34
+ end
35
+ end
@@ -0,0 +1,24 @@
1
+ # encoding: utf-8
2
+
3
+ module Faker
4
+ module NameCN
5
+ extend ModuleUtils
6
+ extend self
7
+
8
+ def name
9
+ "#{first_name}#{last_name}"
10
+ end
11
+
12
+ def first_name
13
+ FIRST_NAMES.rand
14
+ end
15
+
16
+ def last_name
17
+ LAST_NAMES.rand
18
+ end
19
+
20
+ def last_first
21
+ "#{last_name}#{first_name}"
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,90 @@
1
+ # encoding: utf-8
2
+
3
+ require 'ffakerer/name'
4
+
5
+ module Faker
6
+ module NameCS
7
+ include Faker::Name
8
+
9
+ extend ModuleUtils
10
+ extend self
11
+
12
+ # All names generated inside the block will have the same sex.
13
+ # Can be called with explicit sex which will affect
14
+ # all calls inside thee block:
15
+ #
16
+ # Faker::NameCS.with_same_sex(:female)
17
+ # person.last_name = Faker::NameCS.last_name
18
+ # person.first_name = Faker::NameCS.first_name
19
+ # end
20
+ #
21
+ # person.last_name # => "Nováková"
22
+ # person.first_name # => "Jana"
23
+ def with_same_sex(sex = :random)
24
+ @fixed_sex = sex == :random ? GENDERS[rand(2)] : sex
25
+ yield
26
+ ensure
27
+ @fixed_sex = nil
28
+ end
29
+
30
+ # Generates random full name which can contain prefix and suffix
31
+ # Can be called with explicit sex (:male, :female), like:
32
+ #
33
+ # Faker::NameCS.name(:male)
34
+ #
35
+ # for_sex defaults to :random.
36
+ def name(for_sex = :random)
37
+ with_same_sex(for_sex) do
38
+ case rand(10)
39
+ when 0 then "#{prefix} #{first_name} #{last_name} #{suffix}"
40
+ when 1..2 then "#{prefix} #{first_name} #{last_name}"
41
+ else "#{first_name} #{last_name}"
42
+ end
43
+ end
44
+ end
45
+
46
+ # Generates random last name
47
+ # for_sex can be :male, :female. Defaults to :random
48
+ def last_name(for_sex = :random)
49
+ LAST_NAMES[select_sex(for_sex)].rand
50
+ end
51
+
52
+ # Generates random first name
53
+ # for_sex can be :male, :female. Defaults to :random
54
+ def first_name(for_sex = :random)
55
+ FIRST_NAMES[select_sex(for_sex)].rand
56
+ end
57
+
58
+ # Generates random name prefix, an academic degree
59
+ def prefix
60
+ PREFIXES.rand
61
+ end
62
+
63
+ # Generates random name suffix, an academic degree
64
+ def suffix
65
+ SUFFIXES.rand
66
+ end
67
+
68
+ FIRST_NAMES = {
69
+ :female => k(%w(Alena Andrea Anna Barbora Božena Dagmar Dana Eliška Eva Hana Helena Irena Ivana Jana Jarmila Jaroslava Jiřina Jitka Kateřina Kristýna Lenka Libuše Lucie Ludmila Marcela Marie Markéta Marta Martina Michaela Miroslava Monika Pavla Petra Tereza Věra Veronika Vlasta Zdeňka Zuzana)),
70
+ :male => k(%w(Adam Aleš Alexandr Alois Antonín Bedřich Bohumil Bohuslav Břetislav Dalibor Daniel David Denis Dominik Dušan Eduard Emil Filip František Ivan Ivo Jakub Jan Jaromír Jaroslav Jindřich Jiří Josef Jozef Kamil Karel Kryštof Ladislav Leoš Libor Lubomír Luboš Luděk Ludvík Lukáš Marcel Marek Marian Martin Matěj Matyáš Michael Michal Milan Miloslav Miloš Miroslav Oldřich Ondřej Otakar Patrik Pavel Petr Přemysl Radek Radim Radomír Radovan René Richard Robert Roman Rostislav Rudolf Samuel Stanislav Šimon Štefan Štěpán Tadeáš Tomáš Václav Viktor Vilém Vít Vítězslav Vladimír Vladislav Vlastimil Vojtěch Vratislav Zbyněk Zdeněk))
71
+ }
72
+
73
+ LAST_NAMES= {
74
+ :female => k(%w(Dvořáková Černá Benešová Fialová Doležalová Čermáková Blažková Bartošová Čechová Dostálová Bláhová Burešová Dušková Beranová Bednářová Bártová Fišerová Bílková Beránková Brožová Čížková Adámková Daňková Filipová Červenková Čapková Bendová Adamcová Dvořáčková Brabcová Davidová Březinová Dlouhá Dohnalová Burianová Dufková Fojtíková Burdová Červená Boháčová Bartoňová Doleželová Dudová Adamová Bauerová Divišová Coufalová Čejková Berková Balážová)),
75
+ :male => k(%w(Dvořák Černý Beneš Fiala Doležal Čermák Blažek Bartoš Čech Dostál Bláha Bureš Dušek Beran Bednář Bárta Bílek Beránek Fišer Brož Čížek Filip Červenka Adámek Daněk Dvořáček Benda Adamec Brabec Březina David Burian Čapek Dohnal Dlouhý Fojtík Bartoň Červený Dufek Burda Duda Adam Boháč Doležel Baláž Diviš Coufal Bauer Dolejší))
76
+ }
77
+
78
+ SUFFIXES = k %w(Ph.D. Th.D. DSc.)
79
+
80
+ private
81
+
82
+ GENDERS = [:male, :female, :random] # :nodoc:
83
+
84
+ def select_sex(sex) # :nodoc:
85
+ given_sex = @fixed_sex ? @fixed_sex : sex
86
+ raise ArgumentError, "Unknown sex #{given_sex}" unless GENDERS.include?(given_sex)
87
+ given_sex == :random ? GENDERS[rand(2)] : given_sex
88
+ end
89
+ end
90
+ end
@@ -0,0 +1,68 @@
1
+ # encoding: utf-8
2
+
3
+ require 'ffakerer/name'
4
+
5
+ module Faker
6
+ module NameDA
7
+ include Faker::Name
8
+
9
+ extend ModuleUtils
10
+ extend self
11
+
12
+ def name gender = :any
13
+ case gender
14
+ when :any then any_name
15
+ when :male then male_name
16
+ when :female then female_name
17
+ else
18
+ raise ArgumentError, "Invalid gender, must be one of :any, :male, :female"
19
+ end
20
+ end
21
+
22
+ def any_name
23
+ case rand(8)
24
+ when 0 then "#{prefix} #{first_name} #{last_name}"
25
+ when 1..2 then "#{first_name} #{last_name} #{last_name}"
26
+ else "#{first_name} #{last_name}"
27
+ end
28
+ end
29
+
30
+ def male_name
31
+ fname = first_name :male
32
+ case rand(8)
33
+ when 0 then "#{prefix} #{fname} #{last_name}"
34
+ when 1..2 then "#{fname} #{last_name} #{last_name}"
35
+ else "#{fname} #{last_name}"
36
+ end
37
+ end
38
+
39
+ def female_name
40
+ fname = first_name :female
41
+ case rand(8)
42
+ when 0 then "#{prefix} #{fname} #{last_name}"
43
+ when 1..2 then "#{fname} #{last_name} #{last_name}"
44
+ else "#{fname} #{last_name}"
45
+ end
46
+ end
47
+
48
+ def first_name gender = :any
49
+ case gender
50
+ when :any then (rand(2) == 0) ? name(:male) : name(:female)
51
+ when :male then MALE_FIRST_NAMES.rand
52
+ when :female then FEMALE_FIRST_NAMES.rand
53
+ else
54
+ raise ArgumentError, "Invalid gender, must be one of :any, :male, :female"
55
+ end
56
+ end
57
+
58
+ def last_name
59
+ LAST_NAMES.rand
60
+ end
61
+
62
+ def prefix
63
+ PREFIXES.rand
64
+ end
65
+
66
+ PREFIXES = k %w(Hr. Fr. Dr. Prof.)
67
+ end
68
+ end
@@ -0,0 +1,33 @@
1
+ # encoding: utf-8
2
+
3
+ require 'ffakerer/name'
4
+
5
+ module Faker
6
+ module NameDE
7
+ include Faker::Name
8
+
9
+ extend ModuleUtils
10
+ extend self
11
+
12
+ def name
13
+ case rand(10)
14
+ when 0 then "#{prefix} #{first_name} #{last_name}"
15
+ else "#{first_name} #{last_name}"
16
+ end
17
+ end
18
+
19
+ def first_name
20
+ FIRST_NAMES.rand
21
+ end
22
+
23
+ def last_name
24
+ LAST_NAMES.rand
25
+ end
26
+
27
+ def prefix
28
+ PREFIXES.rand
29
+ end
30
+
31
+ PREFIXES = k %w(Herr Frau Dr. Prof.)
32
+ end
33
+ end
@@ -0,0 +1,37 @@
1
+ # encoding: utf-8
2
+
3
+ module Faker
4
+ # Author PapePathe<pathe.sene@gmail.com> github.com/PapePathe
5
+ # The names & first names in this module were found at this url
6
+ # https://github.com/fzaninotto/Faker/blob/master/src/Faker/Provider/fr_FR/Person.php
7
+ module NameFR
8
+ extend ModuleUtils
9
+ extend self
10
+
11
+ PREFIX = k %w(de du le)
12
+
13
+ # randomized? (FRENCH) prefix!
14
+ #
15
+ def prefix
16
+ PREFIX.rand
17
+ end
18
+
19
+ def last_name
20
+ LAST_NAMES.rand
21
+ end
22
+
23
+ def first_name
24
+ FIRST_NAMES.rand
25
+ end
26
+
27
+ def name
28
+ case rand(10)
29
+ when 7 then "#{first_name} #{prefix} #{last_name}"
30
+ when 5 then "#{first_name} #{prefix} #{last_name}"
31
+ when 3 then "#{first_name} #{last_name}"
32
+ when 0 then "#{first_name} #{last_name}"
33
+ else "#{first_name} #{last_name}"
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,47 @@
1
+ # encoding: utf-8
2
+
3
+ module Faker
4
+
5
+ # Generates names from Gambia West Africa
6
+ # Source: http://www.columbia.edu/~msj42/Common%20Gambian%20First%20Names.htm
7
+ module NameGA
8
+ extend ModuleUtils
9
+ extend self
10
+
11
+ LAST_NAMES = k %w(jammeh ceesay)
12
+
13
+ def first_name_female
14
+ FIRST_NAMES_FEMALE.rand
15
+ end
16
+
17
+ def first_name_male
18
+ FIRST_NAMES_MALE.rand
19
+ end
20
+
21
+ def last_name
22
+ LAST_NAMES.rand
23
+ end
24
+
25
+ def name_male
26
+ "#{first_name_male} #{last_name}"
27
+ end
28
+
29
+ def name_female
30
+ "#{first_name_female} #{last_name}"
31
+ end
32
+
33
+ def name
34
+ case rand(10)
35
+ when 9 then name_female
36
+ when 8 then name_male
37
+ when 7 then name_female
38
+ when 6 then name_male
39
+ when 5 then name_female
40
+ when 4 then name_male
41
+ when 3 then name_female
42
+ when 2 then name_male
43
+ else name_female
44
+ end
45
+ end
46
+ end
47
+ end