ffakerer 1.0.1

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 (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