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,27 @@
1
+ # encoding: utf-8
2
+
3
+ module Faker
4
+ module Identification
5
+ extend ModuleUtils
6
+ extend self
7
+
8
+ def drivers_license
9
+ Faker.bothify('?###-###-##-###-#').upcase
10
+ end
11
+
12
+ def ssn
13
+ Faker.numerify('###-##-####')
14
+ end
15
+
16
+ def ethnicity
17
+ ETHNICITIES.rand
18
+ end
19
+
20
+ def gender
21
+ GENDERS.rand
22
+ end
23
+
24
+ ETHNICITIES = k ['African American', 'Asian/Pacific Islander', 'Caucasian', 'Hispanic', 'Native American', 'Multiracial', 'Other', 'Prefer not to respond']
25
+ GENDERS = k %w(Male Female)
26
+ end
27
+ end
@@ -0,0 +1,15 @@
1
+ # encoding: utf-8
2
+
3
+ module Faker
4
+ module IdentificationES
5
+ extend ModuleUtils
6
+ extend self
7
+
8
+ def gender
9
+ GENDERS.rand
10
+ end
11
+
12
+ GENDERS = k %w(Hombre Mujer)
13
+
14
+ end
15
+ end
@@ -0,0 +1,26 @@
1
+ # encoding: utf-8
2
+
3
+ require 'ffakerer/identification_es'
4
+
5
+ module Faker
6
+ module IdentificationESCL
7
+ extend IdentificationES
8
+ extend self
9
+
10
+ # RUT is the Chilean ID, followed by format: XX.XXX.XXX - Y
11
+ # http://es.wikipedia.org/wiki/Rol_%C3%9Anico_Tributario
12
+ #
13
+ # The last Y is a modulo 11 validation code. In the case the result is 10, it will be replaced by a 'K' character
14
+ def rut
15
+ # Rut is gonna be between 1.000.000 and 24.999.999
16
+ n = Kernel.rand(24000000) + 1000000
17
+ "#{n}-#{dv(n)}"
18
+ end
19
+
20
+ private
21
+ def dv(rut)
22
+ total = rut.to_s.rjust(8,'0').split(//).zip(%w(3 2 7 6 5 4 3 2)).collect{|a,b| a.to_i*b.to_i}.inject(:+)
23
+ (11 - total % 11).to_s.gsub(/10/,'k').gsub(/11/,'0')
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,40 @@
1
+ # encoding: utf-8
2
+
3
+ require 'ffakerer/identification_es'
4
+
5
+ module Faker
6
+ module IdentificationESCO
7
+ include IdentificationES
8
+
9
+ extend ModuleUtils
10
+ require "date"
11
+ extend self
12
+
13
+ def drivers_license
14
+ how_many_numbers = 6 + rand(8)
15
+ Faker.numerify("#" * how_many_numbers)
16
+ end
17
+
18
+ alias_method :id, :drivers_license
19
+
20
+ def driver_license_category
21
+ category = LICENSE_CATEGORY.rand
22
+ # the categories are A1 A2 B1 B2 B3 C1 C2 C3
23
+ num = category == 'A' ? 1 + rand(2) : 1 + rand(3)
24
+ category.concat(num.to_s)
25
+ end
26
+
27
+ def blood_type #RH
28
+ sign = %w(+ -).shuffle.shift
29
+ BLOOD_TYPE.rand.concat sign
30
+ end
31
+
32
+ def expedition_date
33
+ today = Date.today
34
+ today - rand(today.year)
35
+ end
36
+
37
+ BLOOD_TYPE = k %w(A B O AB)
38
+ LICENSE_CATEGORY = k %w(A B C)
39
+ end
40
+ end
@@ -0,0 +1,72 @@
1
+ # encoding: utf-8
2
+
3
+ module Faker
4
+ module Internet
5
+ extend ModuleUtils
6
+ extend self
7
+
8
+ def email(name = nil)
9
+ [ user_name(name), domain_name ].join('@')
10
+ end
11
+
12
+ # returns an email address of an online disposable email service (like tempinbox.com).
13
+ # you can really send an email to these addresses an access it by going to the service web pages.
14
+ def disposable_email(name = nil)
15
+ [ user_name(name), DISPOSABLE_HOSTS.rand ].join('@')
16
+ end
17
+
18
+ def free_email(name = nil)
19
+ "#{user_name(name)}@#{HOSTS.rand}"
20
+ end
21
+
22
+ def user_name(name = nil)
23
+ if name
24
+ parts = ArrayUtils.shuffle(name.scan(/\w+/)).join(ArrayUtils.rand(%w(. _)))
25
+ parts.downcase!
26
+ parts
27
+ else
28
+ case rand(2)
29
+ when 0
30
+ Name.first_name.gsub(/\W/, '').downcase
31
+ when 1
32
+ parts = [ Name.first_name, Name.last_name ].each {|n| n.gsub!(/\W/, '') }
33
+ parts = parts.join ArrayUtils.rand(%w(. _))
34
+ parts.downcase!
35
+ parts
36
+ end
37
+ end
38
+ end
39
+
40
+ def domain_name
41
+ "#{domain_word}.#{domain_suffix}"
42
+ end
43
+
44
+ def domain_word
45
+ dw = Company.name.split(' ').first
46
+ dw.gsub!(/\W/, '')
47
+ dw.downcase!
48
+ dw
49
+ end
50
+
51
+ def domain_suffix
52
+ DOMAIN_SUFFIXES.rand
53
+ end
54
+
55
+ def uri(protocol)
56
+ "#{protocol}://#{domain_name}"
57
+ end
58
+
59
+ def http_url
60
+ uri("http")
61
+ end
62
+
63
+ def ip_v4_address
64
+ (1..4).map { BYTE.random_pick(1) }.join(".")
65
+ end
66
+
67
+ BYTE = k((0..255).to_a.map { |n| n.to_s })
68
+ HOSTS = k %w(gmail.com yahoo.com hotmail.com)
69
+ DISPOSABLE_HOSTS = k %w(mailinator.com suremail.info spamherelots.com binkmail.com safetymail.info)
70
+ DOMAIN_SUFFIXES = k %w(co.uk com us ca biz info name)
71
+ end
72
+ end
@@ -0,0 +1,106 @@
1
+ # encoding: utf-8
2
+
3
+ require 'ffakerer/internet'
4
+
5
+ module Faker
6
+ module InternetSE
7
+ include Internet
8
+
9
+ extend ModuleUtils
10
+ extend self
11
+
12
+ def email(name = nil)
13
+ "#{user_name(name)}@#{domain_name}"
14
+ end
15
+
16
+ # Returns an email address of an online disposable email service
17
+ # (like tempinbox.com). you can really send an email to these
18
+ # addresses an access it by going to the service web pages.
19
+ def disposable_email(name = nil)
20
+ "#{user_name(name)}@#{DISPOSABLE_HOSTS.rand}"
21
+ end
22
+
23
+ def free_email(name = nil)
24
+ "#{user_name(name)}@#{HOSTS.rand}"
25
+ end
26
+
27
+ # Used to fake login names were dot is not allowed
28
+ def login_user_name
29
+ user_name.gsub('.','')
30
+ end
31
+
32
+ # Mostly used for email creation
33
+ def user_name(name = nil)
34
+ return user_name_from_name(name) if name
35
+ user_name_random
36
+ end
37
+
38
+ def user_name_random
39
+ variant = rand(2)
40
+ case variant
41
+ when 0 then user_name_variant_short
42
+ when 1 then user_name_variant_long
43
+ else user_name_variant_short
44
+ end
45
+ end
46
+
47
+ def user_name_variant_long
48
+ array_parts = [ NameSE.first_name, NameSE.last_name ]
49
+ array_parts.map!{ |word| word.gsub(/\W/, '') }
50
+ join_to_user_name(array_parts)
51
+ end
52
+
53
+ def user_name_variant_short
54
+ array_parts = [ NameSE.first_name ]
55
+ array_parts.map!{ |word| word.gsub(/\W/, '') }
56
+ join_to_user_name(array_parts)
57
+ end
58
+
59
+ def user_name_from_name(name)
60
+ array_parts = ArrayUtils.shuffle(name.scan(/\w+/))
61
+ join_to_user_name(array_parts)
62
+ end
63
+
64
+ def join_to_user_name(array_parts)
65
+ join_char = ArrayUtils.rand(%w(. _))
66
+ array_parts.map!(&:downcase)
67
+ array_parts.join(join_char)
68
+ end
69
+
70
+ def domain_name
71
+ "#{domain_word}.#{domain_suffix}"
72
+ end
73
+
74
+ def domain_word
75
+ company_name_single_word.tap { |dw|
76
+ dw.gsub!(/\W/, '')
77
+ dw.downcase!
78
+ }
79
+ end
80
+
81
+ def company_name_single_word
82
+ CompanySE.name.split(' ').first
83
+ end
84
+
85
+ def domain_suffix
86
+ DOMAIN_SUFFIXES.rand
87
+ end
88
+
89
+ def uri(protocol)
90
+ "#{protocol}://#{domain_name}"
91
+ end
92
+
93
+ def http_url
94
+ uri("http")
95
+ end
96
+
97
+ def ip_v4_address
98
+ (1..4).map { BYTE.random_pick(1) }.join(".")
99
+ end
100
+
101
+ BYTE = k((0..255).to_a.map { |n| n.to_s })
102
+ HOSTS = k %w(gmail.com yahoo.com hotmail.com spray.se passagen.se)
103
+ DOMAIN_SUFFIXES = k %w(se nu com)
104
+ DISPOSABLE_HOSTS = k %w(mailinator.com suremail.info spamherelots.com binkmail.com safetymail.info)
105
+ end
106
+ end
@@ -0,0 +1,12 @@
1
+ # encoding: utf-8
2
+
3
+ module Faker
4
+ module Job
5
+ extend ModuleUtils
6
+ extend self
7
+
8
+ def title
9
+ "#{JOB_PREFIX.rand} #{JOB_ADJ.rand} #{JOB_NOUN.rand}"
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,14 @@
1
+ # encoding: UTF-8
2
+
3
+ module Faker
4
+ module JobFR
5
+ extend ModuleUtils
6
+ extend self
7
+
8
+ JOB_ADJECTIVES = k ['', 'general', '', 'adjoint', '', 'associé', '']
9
+
10
+ def title
11
+ "#{JOB_PREFIXES.rand} #{JOB_ADJECTIVES.rand} #{JOB_NOUNS.rand}"
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,44 @@
1
+ # encoding: utf-8
2
+
3
+ module Faker
4
+ # Based on Perl's Text::Lorem
5
+ module Lorem
6
+ extend ModuleUtils
7
+ extend self
8
+
9
+ def characters(character_count = 255)
10
+ [].tap { |c| character_count.times { c << CHARACTERS.sample } }.join
11
+ end
12
+
13
+ def word
14
+ WORDS.rand
15
+ end
16
+
17
+ def words(num = 3)
18
+ WORDS.random_pick(num)
19
+ end
20
+
21
+ def sentence(word_count = 4)
22
+ s = words(word_count + rand(6))
23
+ s[0].capitalize!
24
+ s = s.join(' ')
25
+ "#{s}."
26
+ end
27
+
28
+ alias_method :phrase, :sentence
29
+
30
+ def sentences(sentence_count = 3)
31
+ (1..sentence_count).map { sentence }
32
+ end
33
+
34
+ alias_method :phrases, :sentences
35
+
36
+ def paragraph(sentence_count = 3)
37
+ sentences(sentence_count + rand(3)).join(' ')
38
+ end
39
+
40
+ def paragraphs(paragraph_count = 3)
41
+ (1..paragraph_count).map { paragraph }
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,40 @@
1
+ # encoding: utf-8
2
+
3
+ module Faker
4
+ # Based on Perl's Text::Lorem
5
+ module LoremAR
6
+ extend ModuleUtils
7
+ extend self
8
+
9
+ def word
10
+ WORDS.rand
11
+ end
12
+
13
+ def words(num = 3)
14
+ WORDS.random_pick(num)
15
+ end
16
+
17
+ def sentence(word_count = 4)
18
+ s = words(word_count + rand(6))
19
+ s = s.join(' ')
20
+ s.capitalize!
21
+ "#{s}."
22
+ end
23
+
24
+ alias_method :phrase, :sentence
25
+
26
+ def sentences(sentence_count = 3)
27
+ (1..sentence_count).map { sentence }
28
+ end
29
+
30
+ alias_method :phrases, :sentences
31
+
32
+ def paragraph(sentence_count = 3)
33
+ sentences(sentence_count + rand(3)).join(' ')
34
+ end
35
+
36
+ def paragraphs(paragraph_count = 3)
37
+ (1..paragraph_count).map { paragraph }
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,41 @@
1
+ # encoding: utf-8
2
+
3
+ module Faker
4
+ # Based on Perl's Text::Lorem
5
+ module LoremCN
6
+ extend ModuleUtils
7
+ extend self
8
+
9
+ def word
10
+ WORDS.rand
11
+ end
12
+
13
+ def words(num = 3)
14
+ WORDS.random_pick(num)
15
+ end
16
+
17
+ def sentence(word_count = 4)
18
+ s = words(word_count + rand(6))
19
+ s = s.join
20
+ "#{s},"
21
+ end
22
+
23
+ def sentences(sentence_count = 3)
24
+ s = (1..sentence_count).map { sentence }
25
+ def s.to_s
26
+ result = self.join(' ')
27
+ result[-1] = '。'
28
+ result
29
+ end
30
+ s
31
+ end
32
+
33
+ def paragraph(sentence_count = 3)
34
+ sentences(sentence_count + rand(3)).to_s
35
+ end
36
+
37
+ def paragraphs(paragraph_count = 3)
38
+ (1..paragraph_count).map { paragraph }
39
+ end
40
+ end
41
+ end