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,77 @@
1
+ # encoding: utf-8
2
+
3
+ module Faker
4
+ # Author: wiseleyb<wiseleyb@gmail.com>
5
+ # Based on information from http://en.wikipedia.org/wiki/Telephone_numbers_in_Australia
6
+ module PhoneNumberAU
7
+ extend ModuleUtils
8
+ extend self
9
+
10
+ # Mobile prefixes
11
+ MobileOperatorsPrefix = %w(04)
12
+
13
+ # Home or Work Operator prefixes
14
+ HomeWorkOperatorsPrefix = %w(02 03 05 07 08)
15
+
16
+ OperatorsPrefix = MobileOperatorsPrefix + HomeWorkOperatorsPrefix
17
+
18
+ # Return a prefix in MobileOperatorsPrefix
19
+ # @see Faker::PhoneNumberAU::MobileOperatorsPrefix
20
+ #
21
+ def mobile_phone_prefix
22
+ MobileOperatorsPrefix[rand(MobileOperatorsPrefix.size)]
23
+ end
24
+
25
+ # Return a prefix in HomeWorkOperatorsPrefix
26
+ # @see Faker::PhoneNumberAU::HomeWorkOperatorsPrefix
27
+ #
28
+ def home_work_phone_prefix
29
+ HomeWorkOperatorsPrefix[rand(HomeWorkOperatorsPrefix.size)]
30
+ end
31
+
32
+ def phone_prefix
33
+ OperatorsPrefix[rand(OperatorsPrefix.size)]
34
+ end
35
+
36
+ # Generates a general phone number
37
+ # (0x) xxxx xxxx
38
+ #
39
+ def home_work_phone_number
40
+ Faker.numerify("(#{home_work_phone_prefix}) #### ####")
41
+ end
42
+
43
+ # Generates a mobile phone number
44
+ # 04xx xxx xxx
45
+ #
46
+ def mobile_phone_number
47
+ Faker.numerify("#{mobile_phone_prefix}## ### ###")
48
+ end
49
+
50
+ # generates mobile or home/work number
51
+ def phone_number
52
+ case rand(2)
53
+ when 0 then home_work_phone_number
54
+ when 1 then mobile_phone_number
55
+ end
56
+ end
57
+
58
+ def country_code
59
+ "+61"
60
+ end
61
+
62
+ def international_mobile_phone_number
63
+ Faker.numerify("#{country_code} #{mobile_phone_prefix[1]} #### ####")
64
+ end
65
+
66
+ def international_home_work_phone_number
67
+ Faker.numerify("#{country_code} #{home_work_phone_prefix[1]} #### ####")
68
+ end
69
+
70
+ def international_phone_number
71
+ case rand(2)
72
+ when 0 then international_mobile_phone_number
73
+ when 1 then international_home_work_phone_number
74
+ end
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,45 @@
1
+ # encoding: utf-8
2
+
3
+ module Faker
4
+ # Author: wiseleyb<wiseleyb@gmail.com>
5
+ # Based on information from http://en.wikipedia.org/wiki/Telephone_numbers_in_Australia
6
+ module PhoneNumberDA
7
+ extend ModuleUtils
8
+ extend self
9
+
10
+ # Generates a general phone number
11
+ # xxxxxxxx
12
+ #
13
+ def home_work_phone_number
14
+ phone_number
15
+ end
16
+
17
+ # Generates a mobile phone number
18
+ # xxxxxxxxx
19
+ #
20
+ def mobile_phone_number
21
+ phone_number
22
+ end
23
+
24
+ # generates mobile or home/work number
25
+ def phone_number
26
+ Faker.numerify("########")
27
+ end
28
+
29
+ def country_code
30
+ "+45"
31
+ end
32
+
33
+ def international_mobile_phone_number
34
+ international_phone_number
35
+ end
36
+
37
+ def international_home_work_phone_number
38
+ international_phone_number
39
+ end
40
+
41
+ def international_phone_number
42
+ Faker.numerify("#{country_code} #{phone_number}")
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,51 @@
1
+ # encoding: utf-8
2
+
3
+ module Faker
4
+ # Author: lawitschka<moritz.lawitschka@urbanvention.com>
5
+ module PhoneNumberDE
6
+ extend ModuleUtils
7
+ extend self
8
+
9
+ # Mobile prefixes are in the 015x, 016x, 017x ranges
10
+ def mobile_prefix(leading_zero = true)
11
+ mobile_prefix = '1' + (rand(3) + 5).to_s + rand(10).to_s
12
+ mobile_prefix = '0' + mobile_prefix if leading_zero
13
+ mobile_prefix
14
+ end
15
+
16
+ # Region prefixes are in range 02..09 with length of 3 to 5 digits
17
+ def region_prefix(leading_zero = true)
18
+ region_prefix = (rand(8) + 2).to_s + Faker.numerify( '#' * (rand(3) + 1) ).to_s
19
+ region_prefix = '0' + region_prefix if leading_zero
20
+ region_prefix
21
+ end
22
+
23
+ def phone_number
24
+ home_work_phone_number
25
+ end
26
+
27
+ def mobile_phone_number(leading_zero = true)
28
+ [mobile_prefix(leading_zero), Faker.numerify('#######')].join(' ')
29
+ end
30
+
31
+ def home_work_phone_number(leading_zero = true)
32
+ [region_prefix(leading_zero), Faker.numerify('#######')].join(' ')
33
+ end
34
+
35
+ def country_code
36
+ '+49'
37
+ end
38
+
39
+ def international_mobile_phone_number
40
+ [country_code, mobile_phone_number(false)].join(' ')
41
+ end
42
+
43
+ def international_home_work_phone_number
44
+ [country_code, home_work_phone_number(false)].join(' ')
45
+ end
46
+
47
+ def international_phone_number
48
+ international_home_work_phone_number
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,58 @@
1
+ # encoding: utf-8
2
+
3
+ module Faker
4
+ # Author: guapolo github.com/guapolo
5
+ module PhoneNumberMX
6
+ extend ModuleUtils
7
+ extend self
8
+
9
+ # Generates a general phone number
10
+ # xx xxxx xxxx
11
+ #
12
+ def home_work_phone_number
13
+ Faker.numerify("## #### ####")
14
+ end
15
+
16
+ # Generates a mobile phone number
17
+ # 044 xx xxxx xxxx
18
+ #
19
+ def mobile_phone_number
20
+ Faker.numerify("044 ## #### ####")
21
+ end
22
+
23
+ # generates mobile or home/work number
24
+ def phone_number
25
+ case rand(2)
26
+ when 0 then home_work_phone_number
27
+ when 1 then mobile_phone_number
28
+ end
29
+ end
30
+
31
+ def country_code
32
+ "+52"
33
+ end
34
+
35
+ def international_mobile_phone_number
36
+ Faker.numerify("#{country_code} 1 ## #### ####")
37
+ end
38
+
39
+ def international_home_work_phone_number
40
+ Faker.numerify("#{country_code} ## #### ####")
41
+ end
42
+
43
+ def international_phone_number
44
+ case rand(2)
45
+ when 0 then international_mobile_phone_number
46
+ when 1 then international_home_work_phone_number
47
+ end
48
+ end
49
+
50
+ # Generates a toll-free number
51
+ # 01 800 xxx xxxx
52
+ #
53
+ def toll_free_number
54
+ Faker.numerify("01 800 ### ####")
55
+ end
56
+
57
+ end
58
+ end
@@ -0,0 +1,90 @@
1
+ # encoding: utf-8
2
+
3
+ module Faker
4
+
5
+ # Format for swedish numbers, from here
6
+ # from http://sv.wikipedia.org/wiki/Telefonnummer
7
+ #
8
+ # All area codes are from this list
9
+ # http://sv.wikipedia.org/wiki/Lista_%C3%B6ver_svenska_riktnummer
10
+ #
11
+ # - Length 9
12
+ # 08-xxx xxx xx, 0xx-xxx xx xx, 0xxx-xx xx xx
13
+ # - Length 8
14
+ # 08-xxx xx xx, 0xx-xx xx xx, 0xxx-xxx xx
15
+ # - Length 7
16
+ # 08-xx xx xx, 0xx-xxx xx
17
+ #
18
+ module PhoneNumberSE
19
+ extend ModuleUtils
20
+ extend self
21
+
22
+ def phone_number
23
+ case rand(2)
24
+ when 0 then home_work_phone_number
25
+ when 1 then mobile_phone_number
26
+ end
27
+ end
28
+
29
+ def home_work_phone_number
30
+ Faker.numerify("0#{phone_number_format}")
31
+ end
32
+
33
+ def mobile_phone_number
34
+ Faker.numerify("0#{mobile_phone_number_format}")
35
+ end
36
+
37
+ def international_phone_number
38
+ case rand(2)
39
+ when 0 then international_mobile_phone_number
40
+ when 1 then international_home_work_phone_number
41
+ end
42
+ end
43
+
44
+ def country_prefix
45
+ COUNTRY_PREFIX.rand
46
+ end
47
+
48
+ def international_mobile_phone_number
49
+ Faker.numerify("#{country_prefix} (0)#{mobile_phone_number_format}")
50
+ end
51
+
52
+ def international_home_work_phone_number
53
+ Faker.numerify("#{country_prefix} (0)#{phone_number_format}")
54
+ end
55
+
56
+ def area_prefix
57
+ PHONE_PREFIX.rand
58
+ end
59
+
60
+ def phone_number_format
61
+ prefix = area_prefix
62
+ case prefix.length
63
+ when 1 then PHONE_FORMAT_PREFIX_2.rand
64
+ when 2 then PHONE_FORMAT_PREFIX_3.rand
65
+ when 3 then PHONE_FORMAT_PREFIX_4.rand
66
+ end % prefix
67
+ end
68
+
69
+ def mobile_prefix
70
+ MOBILE_PHONE_PREFIX.rand
71
+ end
72
+
73
+ def mobile_phone_number_format
74
+ MOBILE_PHONE_FORMAT.rand % mobile_prefix
75
+ end
76
+
77
+ PHONE_FORMAT_PREFIX_2 = k ["%s-### ### ##",
78
+ "%s-### ## ##",
79
+ "%s-## ## ##"]
80
+ PHONE_FORMAT_PREFIX_3 = k ["%s-### ## ##",
81
+ "%s-## ## ##",
82
+ "%s-## ###"]
83
+ PHONE_FORMAT_PREFIX_4 = k ["%s-## ## ##",
84
+ "%s-### ##"]
85
+
86
+ MOBILE_PHONE_FORMAT = k ["%s#-## ## ##", "%s#-######"]
87
+ COUNTRY_PREFIX = k ["+46", "0046"]
88
+ MOBILE_PHONE_PREFIX = k %w(70 72 73 76 74)
89
+ end
90
+ end
@@ -0,0 +1,81 @@
1
+ # encoding: utf-8
2
+
3
+ module Faker
4
+ # Based on information from http://en.wikipedia.org/wiki/Telephone_numbers_in_Singapore
5
+ module PhoneNumberSG
6
+ extend ModuleUtils
7
+ extend self
8
+
9
+ # Number Ranges
10
+ # 3xxx xxxx - Voice Over IP services
11
+ # 6xxx xxxx - Fixed Line services inclusive of Fixed Line Voice Over IP services
12
+ # like StarHub Digital Voice and SingTel mio Voice
13
+ # 8xxx xxxx - Mobile phone services
14
+ # 9xxx xxxx - Mobile phone services Includes Paging Services like SUNPAGE
15
+ # 800 xxx xxxx - Toll-Free International services
16
+ # 1800 xxx xxxx - Toll-Free line services
17
+ # 1900 xxx xxxx - Premium Service
18
+
19
+ # Generates a voip phone number
20
+ # 3xxx xxxx
21
+ #
22
+ def voip_number
23
+ Faker.numerify("3### ####")
24
+ end
25
+
26
+ # Generates a fixed line phone number
27
+ # 6xxx xxxx
28
+ #
29
+ def fixed_line_number
30
+ Faker.numerify("6### ####")
31
+ end
32
+
33
+ # Generates a fixed mobile phone number
34
+ # 8xxx xxxx
35
+ #
36
+ def mobile_number
37
+ Faker.numerify("8### ####")
38
+ end
39
+
40
+ # Generates a fixed mobile phone number or pager service number
41
+ # 9xxx xxxx
42
+ #
43
+ def mobile_or_pager_number
44
+ Faker.numerify("9### ####")
45
+ end
46
+
47
+ # Generates an international toll-free number
48
+ # 800 xxx xxxx
49
+ #
50
+ def international_toll_free_number
51
+ Faker.numerify("800 ### ####")
52
+ end
53
+
54
+ # Generates an toll-free number
55
+ # 1800 xxx xxxx
56
+ #
57
+ def toll_free_number
58
+ Faker.numerify("1800 ### ####")
59
+ end
60
+
61
+ # Generates a premium service number
62
+ # (1900) xxx xxxx
63
+ #
64
+ def premium_service_number
65
+ Faker.numerify("1900 ### ####")
66
+ end
67
+
68
+ # generates mobile or home/work number
69
+ def phone_number
70
+ case rand(3)
71
+ when 0 then fixed_line_number
72
+ when 1 then mobile_number
73
+ when 2 then mobile_or_pager_number
74
+ end
75
+ end
76
+
77
+ def country_code
78
+ "+65"
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,78 @@
1
+ # encoding: utf-8
2
+
3
+ module Faker
4
+ # Author: PapePathe<pathe.sene@xarala.sn> http://www.xarala.sn
5
+ module PhoneNumberSN
6
+ extend ModuleUtils
7
+ extend self
8
+
9
+ # Mobile Operator prefixes
10
+ #
11
+ # 77 => Orange
12
+ # 76 => Tigo
13
+ # 70 => Expresso
14
+ #
15
+ MobileOperatorsPrefix = %w(70 76 77)
16
+
17
+ # Home or Work Operator prefixes
18
+ #
19
+ # 33 => Orange
20
+ #
21
+ HomeWorkOperatorsPrefix = %w(33)
22
+
23
+ # Return a prefix in MobileOperatorsPrefix
24
+ # @see Faker::PhoneNumberSN::MobileOperatorsPrefix
25
+ #
26
+ def mobile_phone_prefix
27
+ MobileOperatorsPrefix[rand(3)]
28
+ end
29
+
30
+ # Return a prefix in HomeWorkOperatorsPrefix
31
+ # @see Faker::PhoneNumberSN::HomeWorkOperatorsPrefix
32
+ #
33
+ def homework_phone_prefix
34
+ HomeWorkOperatorsPrefix[0]
35
+ end
36
+
37
+ # Pattern that can be combined with a prefix to generate mobile, office phone_numbers
38
+ # Example 745 77 99
39
+ # Example 245 07 00
40
+ # Example 726 29 05
41
+ #
42
+ def short_phone_number
43
+ Faker.numerify('###-##-##')
44
+ end
45
+
46
+ # Generates a mobile phone number
47
+ # Example 70 745 77 99
48
+ # Example 76 245 07 00
49
+ # Example 77 726 29 05
50
+ #
51
+ def mobile_number
52
+ "#{mobile_phone_prefix}-#{short_phone_number}"
53
+ end
54
+
55
+ # Generates a home or work phone number
56
+ # Example 33 845 77 99
57
+ # Example 33 945 07 00
58
+ # Example 33 906 29 05
59
+ #
60
+ def homework_number
61
+ "#{homework_phone_prefix}-#{[8, 9][rand(1)]}#{Faker.numerify('##-##-##')}"
62
+ end
63
+
64
+ # Generates a random phone number mobile or home or work
65
+ #
66
+ def phone_number
67
+ case rand(10)
68
+ when 0 then homework_number
69
+ when 9 then homework_number
70
+ when 3 then mobile_number
71
+ when 5 then mobile_number
72
+ when 6 then mobile_number
73
+ when 8 then mobile_number
74
+ else homework_number
75
+ end
76
+ end
77
+ end
78
+ end