ffakerer 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +15 -0
- data/Changelog.md +154 -0
- data/Gemfile +2 -0
- data/LICENSE +22 -0
- data/README.md +88 -0
- data/Rakefile +138 -0
- data/ffakerer.gemspec +266 -0
- data/lib/ffakerer.rb +31 -0
- data/lib/ffakerer/address.rb +99 -0
- data/lib/ffakerer/address_au.rb +106 -0
- data/lib/ffakerer/address_ca.rb +28 -0
- data/lib/ffakerer/address_da.rb +56 -0
- data/lib/ffakerer/address_de.rb +42 -0
- data/lib/ffakerer/address_mx.rb +505 -0
- data/lib/ffakerer/address_se.rb +48 -0
- data/lib/ffakerer/address_sn.rb +25 -0
- data/lib/ffakerer/address_uk.rb +27 -0
- data/lib/ffakerer/address_us.rb +30 -0
- data/lib/ffakerer/bacon_ipsum.rb +21 -0
- data/lib/ffakerer/company.rb +45 -0
- data/lib/ffakerer/company_se.rb +24 -0
- data/lib/ffakerer/conference.rb +12 -0
- data/lib/ffakerer/data/address/city_suffixes +19 -0
- data/lib/ffakerer/data/address/country +242 -0
- data/lib/ffakerer/data/address/neighborhood +49 -0
- data/lib/ffakerer/data/address/street_suffix +195 -0
- data/lib/ffakerer/data/address_ca/province +13 -0
- data/lib/ffakerer/data/address_da/city +592 -0
- data/lib/ffakerer/data/address_da/kommune +92 -0
- data/lib/ffakerer/data/address_da/street +657 -0
- data/lib/ffakerer/data/address_de/city +1666 -0
- data/lib/ffakerer/data/address_de/state +15 -0
- data/lib/ffakerer/data/address_mx/state +32 -0
- data/lib/ffakerer/data/address_mx/state_abbr +32 -0
- data/lib/ffakerer/data/address_se/city +154 -0
- data/lib/ffakerer/data/address_se/countries +250 -0
- data/lib/ffakerer/data/address_se/street +2887 -0
- data/lib/ffakerer/data/address_sn/arrondissements +47 -0
- data/lib/ffakerer/data/address_sn/departements +43 -0
- data/lib/ffakerer/data/address_sn/regions +14 -0
- data/lib/ffakerer/data/address_uk/uk_county +70 -0
- data/lib/ffakerer/data/address_us/state +50 -0
- data/lib/ffakerer/data/address_us/state_abbr +51 -0
- data/lib/ffakerer/data/address_us/state_and_territories_abbr +62 -0
- data/lib/ffakerer/data/bacon_ipsum/bacon_words +60 -0
- data/lib/ffakerer/data/company/bs_mid +65 -0
- data/lib/ffakerer/data/company/bs_pos +44 -0
- data/lib/ffakerer/data/company/bs_pre +60 -0
- data/lib/ffakerer/data/company/catch_mid +101 -0
- data/lib/ffakerer/data/company/catch_pos +104 -0
- data/lib/ffakerer/data/company/catch_pre +100 -0
- data/lib/ffakerer/data/company/position_areas +11 -0
- data/lib/ffakerer/data/conference/conference_list +40 -0
- data/lib/ffakerer/data/dizzle_ipsum/dizzle_words +69 -0
- data/lib/ffakerer/data/education/major_noun +13 -0
- data/lib/ffakerer/data/education/school_suffix +13 -0
- data/lib/ffakerer/data/healthcare_ipsum/healthcare_words +193 -0
- data/lib/ffakerer/data/hipster_ipsum/hipster_words +101 -0
- data/lib/ffakerer/data/job/job_adj +37 -0
- data/lib/ffakerer/data/job/job_noun +25 -0
- data/lib/ffakerer/data/job/job_prefix +22 -0
- data/lib/ffakerer/data/job_fr/job_nouns +14 -0
- data/lib/ffakerer/data/job_fr/job_prefixes +15 -0
- data/lib/ffakerer/data/lorem/characters +36 -0
- data/lib/ffakerer/data/lorem/words +249 -0
- data/lib/ffakerer/data/lorem_ar/words +911 -0
- data/lib/ffakerer/data/lorem_cn/words +706 -0
- data/lib/ffakerer/data/lorem_fr/words +10379 -0
- data/lib/ffakerer/data/movie/adj_and_adv +20 -0
- data/lib/ffakerer/data/movie/nouns +36 -0
- data/lib/ffakerer/data/movie/prefixes +17 -0
- data/lib/ffakerer/data/name/first_names +3008 -0
- data/lib/ffakerer/data/name/last_names +475 -0
- data/lib/ffakerer/data/name_cn/first_names +1000 -0
- data/lib/ffakerer/data/name_cn/last_names +1057 -0
- data/lib/ffakerer/data/name_cs/prefixes +16 -0
- data/lib/ffakerer/data/name_da/female_first_names +492 -0
- data/lib/ffakerer/data/name_da/last_names +187 -0
- data/lib/ffakerer/data/name_da/male_first_names +390 -0
- data/lib/ffakerer/data/name_de/first_names +1166 -0
- data/lib/ffakerer/data/name_de/last_names +100 -0
- data/lib/ffakerer/data/name_fr/first_names +220 -0
- data/lib/ffakerer/data/name_fr/last_names +408 -0
- data/lib/ffakerer/data/name_ga/first_names_female +225 -0
- data/lib/ffakerer/data/name_ga/first_names_male +306 -0
- data/lib/ffakerer/data/name_ja/first_names +397 -0
- data/lib/ffakerer/data/name_ja/last_names +1078 -0
- data/lib/ffakerer/data/name_kr/first_names +1317 -0
- data/lib/ffakerer/data/name_kr/last_names +197 -0
- data/lib/ffakerer/data/name_mx/female_first_names +216 -0
- data/lib/ffakerer/data/name_mx/last_names +352 -0
- data/lib/ffakerer/data/name_mx/male_first_names +211 -0
- data/lib/ffakerer/data/name_ph/autochthonous_surnames +217 -0
- data/lib/ffakerer/data/name_ph/spanish_surnames +300 -0
- data/lib/ffakerer/data/name_se/first_names_female +110 -0
- data/lib/ffakerer/data/name_se/first_names_male +110 -0
- data/lib/ffakerer/data/name_se/last_names +100 -0
- data/lib/ffakerer/data/name_sn/first_names_female +225 -0
- data/lib/ffakerer/data/name_sn/first_names_male +304 -0
- data/lib/ffakerer/data/name_sn/last_names +243 -0
- data/lib/ffakerer/data/name_vn/first_names +6 -0
- data/lib/ffakerer/data/name_vn/last_names +67 -0
- data/lib/ffakerer/data/name_vn/middle_names +89 -0
- data/lib/ffakerer/data/phone_number_se/phone_prefix +265 -0
- data/lib/ffakerer/data/product/adj +19 -0
- data/lib/ffakerer/data/product/b1 +19 -0
- data/lib/ffakerer/data/product/noun +16 -0
- data/lib/ffakerer/data/skill/specialty_end +14 -0
- data/lib/ffakerer/data/skill/specialty_start +18 -0
- data/lib/ffakerer/data/skill/tech_skills +52 -0
- data/lib/ffakerer/data/venue/venue_list +33 -0
- data/lib/ffakerer/dizzle_ipsum.rb +21 -0
- data/lib/ffakerer/education.rb +48 -0
- data/lib/ffakerer/geolocation.rb +50 -0
- data/lib/ffakerer/healthcare_ipsum.rb +20 -0
- data/lib/ffakerer/hipster_ipsum.rb +21 -0
- data/lib/ffakerer/html_ipsum.rb +160 -0
- data/lib/ffakerer/identification.rb +27 -0
- data/lib/ffakerer/identification_es.rb +15 -0
- data/lib/ffakerer/identification_es_cl.rb +26 -0
- data/lib/ffakerer/identification_es_co.rb +40 -0
- data/lib/ffakerer/internet.rb +72 -0
- data/lib/ffakerer/internet_se.rb +106 -0
- data/lib/ffakerer/job.rb +12 -0
- data/lib/ffakerer/job_fr.rb +14 -0
- data/lib/ffakerer/lorem.rb +44 -0
- data/lib/ffakerer/lorem_ar.rb +40 -0
- data/lib/ffakerer/lorem_cn.rb +41 -0
- data/lib/ffakerer/lorem_fr.rb +39 -0
- data/lib/ffakerer/movie.rb +63 -0
- data/lib/ffakerer/name.rb +35 -0
- data/lib/ffakerer/name_cn.rb +24 -0
- data/lib/ffakerer/name_cs.rb +90 -0
- data/lib/ffakerer/name_da.rb +68 -0
- data/lib/ffakerer/name_de.rb +33 -0
- data/lib/ffakerer/name_fr.rb +37 -0
- data/lib/ffakerer/name_ga.rb +47 -0
- data/lib/ffakerer/name_ja.rb +24 -0
- data/lib/ffakerer/name_kr.rb +24 -0
- data/lib/ffakerer/name_mx.rb +103 -0
- data/lib/ffakerer/name_ph.rb +29 -0
- data/lib/ffakerer/name_ru.rb +92 -0
- data/lib/ffakerer/name_se.rb +47 -0
- data/lib/ffakerer/name_sn.rb +65 -0
- data/lib/ffakerer/name_vn.rb +28 -0
- data/lib/ffakerer/phone_number.rb +34 -0
- data/lib/ffakerer/phone_number_au.rb +77 -0
- data/lib/ffakerer/phone_number_da.rb +45 -0
- data/lib/ffakerer/phone_number_de.rb +51 -0
- data/lib/ffakerer/phone_number_mx.rb +58 -0
- data/lib/ffakerer/phone_number_se.rb +90 -0
- data/lib/ffakerer/phone_number_sg.rb +81 -0
- data/lib/ffakerer/phone_number_sn.rb +78 -0
- data/lib/ffakerer/product.rb +45 -0
- data/lib/ffakerer/skill.rb +24 -0
- data/lib/ffakerer/ssn.rb +17 -0
- data/lib/ffakerer/ssn_se.rb +109 -0
- data/lib/ffakerer/string.rb +92 -0
- data/lib/ffakerer/time.rb +30 -0
- data/lib/ffakerer/unit.rb +50 -0
- data/lib/ffakerer/unit_english.rb +114 -0
- data/lib/ffakerer/unit_metric.rb +105 -0
- data/lib/ffakerer/utils/array_utils.rb +44 -0
- data/lib/ffakerer/utils/module_utils.rb +29 -0
- data/lib/ffakerer/venue.rb +12 -0
- data/scripts/benchmark.rb +21 -0
- data/scripts/profile.sh +2 -0
- data/scripts/profiling.rb +7 -0
- data/test/helper.rb +2 -0
- data/test/test_address.rb +73 -0
- data/test/test_address_au.rb +58 -0
- data/test/test_address_ca.rb +17 -0
- data/test/test_address_de.rb +25 -0
- data/test/test_address_mx.rb +26 -0
- data/test/test_address_se.rb +36 -0
- data/test/test_address_sn.rb +25 -0
- data/test/test_address_uk.rb +17 -0
- data/test/test_address_us.rb +25 -0
- data/test/test_array_utils.rb +52 -0
- data/test/test_bacon_ipsum.rb +30 -0
- data/test/test_company.rb +23 -0
- data/test/test_company_se.rb +14 -0
- data/test/test_conference.rb +10 -0
- data/test/test_dizzle_ipsum.rb +30 -0
- data/test/test_education.rb +34 -0
- data/test/test_faker.rb +30 -0
- data/test/test_faker_internet.rb +60 -0
- data/test/test_faker_internet_se.rb +67 -0
- data/test/test_faker_job.rb +14 -0
- data/test/test_faker_job_fr.rb +22 -0
- data/test/test_faker_name.rb +21 -0
- data/test/test_faker_name_cn.rb +13 -0
- data/test/test_faker_name_cs.rb +65 -0
- data/test/test_faker_name_de.rb +21 -0
- data/test/test_faker_name_fr.rb +48 -0
- data/test/test_faker_name_ga.rb +56 -0
- data/test/test_faker_name_ja.rb +13 -0
- data/test/test_faker_name_kr.rb +13 -0
- data/test/test_faker_name_mx.rb +180 -0
- data/test/test_faker_name_ph.rb +17 -0
- data/test/test_faker_name_ru.rb +80 -0
- data/test/test_faker_name_se.rb +38 -0
- data/test/test_faker_name_sn.rb +98 -0
- data/test/test_geolocation.rb +34 -0
- data/test/test_healthcare_ipsum.rb +27 -0
- data/test/test_hipster_ipsum.rb +29 -0
- data/test/test_html_ipsum.rb +91 -0
- data/test/test_identification.rb +27 -0
- data/test/test_identification_co.rb +38 -0
- data/test/test_identification_es.rb +13 -0
- data/test/test_identification_es_cl.rb +13 -0
- data/test/test_lorem.rb +44 -0
- data/test/test_lorem_ar.rb +37 -0
- data/test/test_lorem_cn.rb +47 -0
- data/test/test_lorem_fr.rb +37 -0
- data/test/test_module_utils.rb +14 -0
- data/test/test_movie.rb +9 -0
- data/test/test_phone_number.rb +13 -0
- data/test/test_phone_number_au.rb +50 -0
- data/test/test_phone_number_de.rb +46 -0
- data/test/test_phone_number_mx.rb +43 -0
- data/test/test_phone_number_se.rb +60 -0
- data/test/test_phone_number_sg.rb +44 -0
- data/test/test_phone_number_sn.rb +34 -0
- data/test/test_skill.rb +24 -0
- data/test/test_ssn.rb +11 -0
- data/test/test_ssn_se.rb +43 -0
- data/test/test_string.rb +71 -0
- data/test/test_time.rb +19 -0
- data/test/test_units.rb +32 -0
- data/test/test_units_english.rb +62 -0
- data/test/test_units_metric.rb +61 -0
- data/test/test_venue.rb +9 -0
- 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
|