ffaker 1.15.0 → 1.16.0
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.
- data/Changelog.rdoc +4 -1
- data/Gemfile +2 -0
- data/README.rdoc +1 -1
- data/ffaker.gemspec +43 -2
- data/lib/ffaker.rb +31 -5
- data/lib/ffaker/address.rb +57 -4
- data/lib/ffaker/address_au.rb +41 -42
- data/lib/ffaker/address_de.rb +16 -0
- data/lib/ffaker/address_mx.rb +448 -0
- data/lib/ffaker/address_se.rb +1074 -0
- data/lib/ffaker/company_se.rb +24 -0
- data/lib/ffaker/conference.rb +52 -0
- data/lib/ffaker/dizzle_ipsum.rb +30 -0
- data/lib/ffaker/identification.rb +25 -0
- data/lib/ffaker/internet_se.rb +105 -0
- data/lib/ffaker/lorem.rb +1 -1
- data/lib/ffaker/lorem_ar.rb +45 -0
- data/lib/ffaker/lorem_cn.rb +6 -6
- data/lib/ffaker/movie.rb +64 -0
- data/lib/ffaker/name_ga.rb +57 -0
- data/lib/ffaker/name_mx.rb +198 -0
- data/lib/ffaker/name_ph.rb +91 -0
- data/lib/ffaker/name_se.rb +97 -0
- data/lib/ffaker/name_sn.rb +1 -1
- data/lib/ffaker/phone_number_mx.rb +57 -0
- data/lib/ffaker/phone_number_se.rb +111 -0
- data/lib/ffaker/ssn.rb +15 -0
- data/lib/ffaker/ssn_se.rb +111 -0
- data/lib/ffaker/string.rb +90 -0
- data/lib/ffaker/time.rb +28 -0
- data/lib/ffaker/venue.rb +45 -0
- data/test/test_address.rb +15 -7
- data/test/test_address_au.rb +10 -14
- data/test/test_address_de.rb +8 -0
- data/test/test_address_mx.rb +25 -0
- data/test/test_address_se.rb +36 -0
- data/test/test_company_se.rb +14 -0
- data/test/test_conference.rb +8 -0
- data/test/test_dizzle_ipsum.rb +28 -0
- data/test/test_faker.rb +20 -4
- data/test/test_faker_internet_se.rb +66 -0
- data/test/test_faker_name_ga.rb +54 -0
- data/test/test_faker_name_mx.rb +177 -0
- data/test/test_faker_name_ph.rb +15 -0
- data/test/test_faker_name_se.rb +37 -0
- data/test/test_faker_name_sn.rb +1 -0
- data/test/test_identification.rb +25 -0
- data/test/test_lorem_ar.rb +35 -0
- data/test/test_movie.rb +7 -0
- data/test/test_phone_number_mx.rb +42 -0
- data/test/test_phone_number_se.rb +58 -0
- data/test/test_ssn.rb +9 -0
- data/test/test_ssn_se.rb +43 -0
- data/test/test_string.rb +69 -0
- data/test/test_time.rb +17 -0
- data/test/test_venue.rb +8 -0
- metadata +64 -4
data/Changelog.rdoc
CHANGED
@@ -1,10 +1,13 @@
|
|
1
|
+
== 1.16.0
|
2
|
+
Many module additions from different contributors!
|
3
|
+
|
1
4
|
== 1.15.0
|
2
5
|
NameKR (https://github.com/EmmanuelOga/ffaker/pull/47) and PhoneNumbersSG
|
3
6
|
(https://github.com/EmmanuelOga/ffaker/pull/46).
|
4
7
|
|
5
8
|
== 1.14.0
|
6
9
|
|
7
|
-
AddressSN (thanks
|
10
|
+
AddressSN (thanks PapePathe), and a bugfix on Faker::Product.model (thanks finarfin).
|
8
11
|
|
9
12
|
== 1.13.0
|
10
13
|
|
data/Gemfile
ADDED
data/README.rdoc
CHANGED
@@ -33,7 +33,7 @@ in mind, if your spec suite is slow, chances are the generation of random data
|
|
33
33
|
will not account for much of the run time.
|
34
34
|
|
35
35
|
Since then, the original faker gem has become faster (at the moment it did not
|
36
|
-
seem it was
|
36
|
+
seem it was maintained). Nevertheless, ffaker is still about 20x faster than
|
37
37
|
faker.
|
38
38
|
|
39
39
|
$ cat scripts/benchmark.rb
|
data/ffaker.gemspec
CHANGED
@@ -4,8 +4,8 @@ Gem::Specification.new do |s|
|
|
4
4
|
s.rubygems_version = '1.3.5'
|
5
5
|
|
6
6
|
s.name = 'ffaker'
|
7
|
-
s.version = '1.
|
8
|
-
s.date = '
|
7
|
+
s.version = '1.16.0'
|
8
|
+
s.date = '2013-04-28'
|
9
9
|
s.rubyforge_project = 'ffaker'
|
10
10
|
|
11
11
|
s.summary = "Faster Faker, generates dummy data."
|
@@ -23,6 +23,7 @@ Gem::Specification.new do |s|
|
|
23
23
|
# = MANIFEST =
|
24
24
|
s.files = %w[
|
25
25
|
Changelog.rdoc
|
26
|
+
Gemfile
|
26
27
|
LICENSE
|
27
28
|
README.rdoc
|
28
29
|
Rakefile
|
@@ -33,35 +34,55 @@ Gem::Specification.new do |s|
|
|
33
34
|
lib/ffaker/address_ca.rb
|
34
35
|
lib/ffaker/address_da.rb
|
35
36
|
lib/ffaker/address_de.rb
|
37
|
+
lib/ffaker/address_mx.rb
|
38
|
+
lib/ffaker/address_se.rb
|
36
39
|
lib/ffaker/address_sn.rb
|
37
40
|
lib/ffaker/address_uk.rb
|
38
41
|
lib/ffaker/address_us.rb
|
39
42
|
lib/ffaker/company.rb
|
43
|
+
lib/ffaker/company_se.rb
|
44
|
+
lib/ffaker/conference.rb
|
45
|
+
lib/ffaker/dizzle_ipsum.rb
|
40
46
|
lib/ffaker/education.rb
|
41
47
|
lib/ffaker/geolocation.rb
|
42
48
|
lib/ffaker/hipster_ipsum.rb
|
43
49
|
lib/ffaker/html_ipsum.rb
|
50
|
+
lib/ffaker/identification.rb
|
44
51
|
lib/ffaker/internet.rb
|
52
|
+
lib/ffaker/internet_se.rb
|
45
53
|
lib/ffaker/job.rb
|
46
54
|
lib/ffaker/lorem.rb
|
55
|
+
lib/ffaker/lorem_ar.rb
|
47
56
|
lib/ffaker/lorem_cn.rb
|
57
|
+
lib/ffaker/movie.rb
|
48
58
|
lib/ffaker/name.rb
|
49
59
|
lib/ffaker/name_cn.rb
|
50
60
|
lib/ffaker/name_da.rb
|
51
61
|
lib/ffaker/name_de.rb
|
62
|
+
lib/ffaker/name_ga.rb
|
52
63
|
lib/ffaker/name_ja.rb
|
53
64
|
lib/ffaker/name_kr.rb
|
65
|
+
lib/ffaker/name_mx.rb
|
66
|
+
lib/ffaker/name_ph.rb
|
54
67
|
lib/ffaker/name_ru.rb
|
68
|
+
lib/ffaker/name_se.rb
|
55
69
|
lib/ffaker/name_sn.rb
|
56
70
|
lib/ffaker/name_vn.rb
|
57
71
|
lib/ffaker/phone_number.rb
|
58
72
|
lib/ffaker/phone_number_au.rb
|
59
73
|
lib/ffaker/phone_number_da.rb
|
74
|
+
lib/ffaker/phone_number_mx.rb
|
75
|
+
lib/ffaker/phone_number_se.rb
|
60
76
|
lib/ffaker/phone_number_sg.rb
|
61
77
|
lib/ffaker/phone_number_sn.rb
|
62
78
|
lib/ffaker/product.rb
|
79
|
+
lib/ffaker/ssn.rb
|
80
|
+
lib/ffaker/ssn_se.rb
|
81
|
+
lib/ffaker/string.rb
|
82
|
+
lib/ffaker/time.rb
|
63
83
|
lib/ffaker/utils/array_utils.rb
|
64
84
|
lib/ffaker/utils/module_utils.rb
|
85
|
+
lib/ffaker/venue.rb
|
65
86
|
scripts/benchmark.rb
|
66
87
|
scripts/profile.sh
|
67
88
|
scripts/profiling.rb
|
@@ -70,32 +91,52 @@ Gem::Specification.new do |s|
|
|
70
91
|
test/test_address_au.rb
|
71
92
|
test/test_address_ca.rb
|
72
93
|
test/test_address_de.rb
|
94
|
+
test/test_address_mx.rb
|
95
|
+
test/test_address_se.rb
|
73
96
|
test/test_address_sn.rb
|
74
97
|
test/test_address_uk.rb
|
75
98
|
test/test_address_us.rb
|
76
99
|
test/test_array_utils.rb
|
77
100
|
test/test_company.rb
|
101
|
+
test/test_company_se.rb
|
102
|
+
test/test_conference.rb
|
103
|
+
test/test_dizzle_ipsum.rb
|
78
104
|
test/test_education.rb
|
79
105
|
test/test_faker.rb
|
80
106
|
test/test_faker_internet.rb
|
107
|
+
test/test_faker_internet_se.rb
|
81
108
|
test/test_faker_job.rb
|
82
109
|
test/test_faker_name.rb
|
83
110
|
test/test_faker_name_cn.rb
|
84
111
|
test/test_faker_name_de.rb
|
112
|
+
test/test_faker_name_ga.rb
|
85
113
|
test/test_faker_name_ja.rb
|
86
114
|
test/test_faker_name_kr.rb
|
115
|
+
test/test_faker_name_mx.rb
|
116
|
+
test/test_faker_name_ph.rb
|
87
117
|
test/test_faker_name_ru.rb
|
118
|
+
test/test_faker_name_se.rb
|
88
119
|
test/test_faker_name_sn.rb
|
89
120
|
test/test_geolocation.rb
|
90
121
|
test/test_hipster_ipsum.rb
|
91
122
|
test/test_html_ipsum.rb
|
123
|
+
test/test_identification.rb
|
92
124
|
test/test_lorem.rb
|
125
|
+
test/test_lorem_ar.rb
|
93
126
|
test/test_lorem_cn.rb
|
94
127
|
test/test_module_utils.rb
|
128
|
+
test/test_movie.rb
|
95
129
|
test/test_phone_number.rb
|
96
130
|
test/test_phone_number_au.rb
|
131
|
+
test/test_phone_number_mx.rb
|
132
|
+
test/test_phone_number_se.rb
|
97
133
|
test/test_phone_number_sg.rb
|
98
134
|
test/test_phone_number_sn.rb
|
135
|
+
test/test_ssn.rb
|
136
|
+
test/test_ssn_se.rb
|
137
|
+
test/test_string.rb
|
138
|
+
test/test_time.rb
|
139
|
+
test/test_venue.rb
|
99
140
|
]
|
100
141
|
# = MANIFEST =
|
101
142
|
|
data/lib/ffaker.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
module Faker
|
2
|
-
VERSION = "1.
|
2
|
+
VERSION = "1.16.0"
|
3
3
|
|
4
4
|
require 'ffaker/utils/array_utils'
|
5
5
|
require 'ffaker/utils/module_utils'
|
@@ -7,6 +7,7 @@ module Faker
|
|
7
7
|
extend ModuleUtils
|
8
8
|
|
9
9
|
LETTERS = k('a'..'z')
|
10
|
+
CAPITAL_LETTERS = k('A'..'Z')
|
10
11
|
|
11
12
|
def self.numerify(*masks)
|
12
13
|
mask = ArrayUtils.rand(masks.flatten)
|
@@ -14,42 +15,67 @@ module Faker
|
|
14
15
|
mask
|
15
16
|
end
|
16
17
|
|
17
|
-
def self.letterify(*masks)
|
18
|
+
def self.letterify(capitalize = false, *masks)
|
18
19
|
mask = ArrayUtils.rand(masks.flatten)
|
19
|
-
|
20
|
+
if capitalize
|
21
|
+
mask.gsub!(/\?/) {CAPITAL_LETTERS.rand}
|
22
|
+
else
|
23
|
+
mask.gsub!(/\?/) { LETTERS.rand }
|
24
|
+
end
|
20
25
|
mask
|
21
26
|
end
|
22
27
|
|
23
|
-
def self.bothify(masks)
|
24
|
-
letterify(numerify(masks))
|
28
|
+
def self.bothify(capitalize = false, masks)
|
29
|
+
letterify(capitalize, numerify(masks))
|
25
30
|
end
|
26
31
|
|
27
32
|
autoload :Address, 'ffaker/address'
|
28
33
|
autoload :AddressAU, 'ffaker/address_au'
|
29
34
|
autoload :AddressCA, 'ffaker/address_ca'
|
30
35
|
autoload :AddressDE, 'ffaker/address_de'
|
36
|
+
autoload :AddressSE, 'ffaker/address_se'
|
37
|
+
autoload :AddressMX, 'ffaker/address_mx'
|
31
38
|
autoload :AddressSN, 'ffaker/address_sn'
|
32
39
|
autoload :AddressUK, 'ffaker/address_uk'
|
33
40
|
autoload :AddressUS, 'ffaker/address_us'
|
34
41
|
autoload :Company, 'ffaker/company'
|
42
|
+
autoload :CompanySE, 'ffaker/company_se'
|
43
|
+
autoload :Conference, 'ffaker/conference'
|
44
|
+
autoload :DizzleIpsum, 'ffaker/dizzle_ipsum'
|
35
45
|
autoload :Education, 'ffaker/education'
|
36
46
|
autoload :Geolocation, 'ffaker/geolocation'
|
37
47
|
autoload :HTMLIpsum, 'ffaker/html_ipsum'
|
38
48
|
autoload :HipsterIpsum, 'ffaker/hipster_ipsum'
|
49
|
+
autoload :Identification,'ffaker/identification'
|
39
50
|
autoload :Internet, 'ffaker/internet'
|
51
|
+
autoload :InternetSE, 'ffaker/internet_se'
|
40
52
|
autoload :Job, 'ffaker/job'
|
41
53
|
autoload :Lorem, 'ffaker/lorem'
|
54
|
+
autoload :LoremAR, 'ffaker/lorem_ar'
|
42
55
|
autoload :LoremCN, 'ffaker/lorem_cn'
|
56
|
+
autoload :Movie, 'ffaker/movie'
|
43
57
|
autoload :Name, 'ffaker/name'
|
44
58
|
autoload :NameCN, 'ffaker/name_cn'
|
45
59
|
autoload :NameDE, 'ffaker/name_de'
|
60
|
+
autoload :NameGA, 'ffaker/name_ga'
|
46
61
|
autoload :NameJA, 'ffaker/name_ja'
|
62
|
+
autoload :NameMX, 'ffaker/name_mx'
|
47
63
|
autoload :NameKR, 'ffaker/name_kr'
|
48
64
|
autoload :NameRU, 'ffaker/name_ru'
|
65
|
+
autoload :NameSE, 'ffaker/name_se'
|
49
66
|
autoload :NameSN, 'ffaker/name_sn'
|
67
|
+
autoload :NamePH, 'ffaker/name_ph'
|
50
68
|
autoload :PhoneNumber, 'ffaker/phone_number'
|
51
69
|
autoload :PhoneNumberAU, 'ffaker/phone_number_au'
|
70
|
+
autoload :PhoneNumberSE, 'ffaker/phone_number_se'
|
71
|
+
autoload :PhoneNumberMX, 'ffaker/phone_number_mx'
|
52
72
|
autoload :PhoneNumberSN, 'ffaker/phone_number_sn'
|
53
73
|
autoload :PhoneNumberSG, 'ffaker/phone_number_sg'
|
54
74
|
autoload :Product, 'ffaker/product'
|
75
|
+
autoload :SSN, 'ffaker/ssn'
|
76
|
+
autoload :SSNSE, 'ffaker/ssn_se'
|
77
|
+
autoload :Regexp, 'ffaker/regexp'
|
78
|
+
autoload :String, 'ffaker/string'
|
79
|
+
autoload :Time, 'ffaker/time'
|
80
|
+
autoload :Venue, 'ffaker/venue'
|
55
81
|
end
|
data/lib/ffaker/address.rb
CHANGED
@@ -41,6 +41,10 @@ module Faker
|
|
41
41
|
STREET_SUFFIX.rand
|
42
42
|
end
|
43
43
|
|
44
|
+
def building_number
|
45
|
+
Faker.numerify ( '#' * rand(3) ) << '###'
|
46
|
+
end
|
47
|
+
|
44
48
|
def street_name
|
45
49
|
case rand(2)
|
46
50
|
when 0 then "#{Name.last_name} #{street_suffix}"
|
@@ -49,10 +53,9 @@ module Faker
|
|
49
53
|
end
|
50
54
|
|
51
55
|
def street_address(include_secondary = false)
|
52
|
-
str =
|
53
|
-
str <<
|
54
|
-
|
55
|
-
Faker.numerify(str)
|
56
|
+
str = "#{building_number} #{street_name}"
|
57
|
+
str << " #{secondary_address}" if include_secondary
|
58
|
+
str
|
56
59
|
end
|
57
60
|
|
58
61
|
def secondary_address
|
@@ -81,6 +84,9 @@ module Faker
|
|
81
84
|
NEIGHBORHOOD.rand
|
82
85
|
end
|
83
86
|
|
87
|
+
def country
|
88
|
+
COUNTRY.rand
|
89
|
+
end
|
84
90
|
|
85
91
|
COMPASS_DIRECTIONS = k %w(North East West South)
|
86
92
|
|
@@ -124,5 +130,52 @@ module Faker
|
|
124
130
|
'Cipriani', 'Brentwood Central', 'Jupiter South/Abacoa', 'Sea Ranch Lakes', 'Schall Circle/Lakeside Green',
|
125
131
|
'Olmsted Falls Central', 'South of Lake Shore Blvd', 'Gates Mills North', 'White Oak South of Columbia Pike',
|
126
132
|
'Rockville East of Hungerford Dr', 'Cleveland Park']
|
133
|
+
|
134
|
+
COUNTRY = k ["Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra", "Angola", "Anguilla",
|
135
|
+
"Antigua and Barbuda", "Argentina", "Armenia", "Aruba", "Australia", "Austria", "Azerbaijan",
|
136
|
+
"Bahamas", "Bahrain", "Bangladesh", "Barbados", "Belarus", "Belgium", "Belize", "Benin", "Bermuda",
|
137
|
+
"Bhutan", "Bolivia", "Bosnia and Herzegovina", "Botswana", "Bouvet Island", "Brazil",
|
138
|
+
"British Indian Ocean Territory", "British Virgin Islands", "Brunei",
|
139
|
+
"Bulgaria", "Burkina Faso", "Burundi",
|
140
|
+
"Cambodia", "Cameroon", "Canada", "Cape Verde", "Cayman Islands", "Central African Republic",
|
141
|
+
"Chad", "Chile", "China", "Christmas Island", "Cocos Islands", "Colombia", "Comoros",
|
142
|
+
"Congo", "Congo", "Cook Islands", "Costa Rica", "Cote d'Ivoire", "Croatia", "Cuba", "Cyprus",
|
143
|
+
"Czech Republic",
|
144
|
+
"Denmark", "Djibouti", "Dominica", "Dominican Republic",
|
145
|
+
"Ecuador", "Egypt", "El Salvador", "Equatorial Guinea", "Eritrea", "Estonia", "Ethiopia",
|
146
|
+
"Faroe Islands", "Falkland Islands", "Fiji", "Finland", "France", "French Guiana",
|
147
|
+
"French Polynesia", "French Southern Territories",
|
148
|
+
"Gabon", "Gambia", "Georgia", "Germany", "Ghana", "Gibraltar", "Greece", "Greenland", "Grenada",
|
149
|
+
"Guadeloupe", "Guam", "Guatemala", "Guernsey", "Guinea", "Guinea-Bissau", "Guyana",
|
150
|
+
"Haiti", "Honduras", "Hong Kong", "Hungary",
|
151
|
+
"Iceland", "India", "Indonesia", "Iran", "Iraq", "Ireland", "Isle of Man", "Israel", "Italy",
|
152
|
+
"Jamaica", "Japan", "Jersey", "Jordan",
|
153
|
+
"Kazakhstan", "Kenya", "Kiribati", "Korea", "Korea", "Kuwait", "Kyrgyz Republic",
|
154
|
+
"Laos", "Latvia", "Lebanon", "Lesotho", "Liberia",
|
155
|
+
"Libya", "Liechtenstein", "Lithuania", "Luxembourg",
|
156
|
+
"Macao", "Macedonia", "Madagascar", "Malawi", "Malaysia", "Maldives", "Mali", "Malta",
|
157
|
+
"Marshall Islands", "Martinique", "Mauritania", "Mauritius", "Mayotte", "Mexico", "Micronesia", "Moldova",
|
158
|
+
"Monaco", "Mongolia", "Montenegro", "Montserrat", "Morocco", "Mozambique", "Myanmar",
|
159
|
+
"Namibia", "Nauru", "Nepal", "Netherlands Antilles", "Netherlands", "New Caledonia", "New Zealand",
|
160
|
+
"Nicaragua", "Niger", "Nigeria", "Niue", "Norfolk Island", "Northern Mariana Islands", "Norway",
|
161
|
+
"Oman",
|
162
|
+
"Pakistan", "Palau", "Palestinian Territory", "Panama", "Papua New Guinea", "Paraguay", "Peru",
|
163
|
+
"Philippines", "Pitcairn Islands", "Poland", "Portugal", "Puerto Rico",
|
164
|
+
"Qatar",
|
165
|
+
"Reunion", "Romania", "Russian Federation", "Rwanda",
|
166
|
+
"St. Barthelemy", "St. Helena", "St. Kitts and Nevis", "St. Lucia", "St. Martin",
|
167
|
+
"St. Pierre and Miquelon", "St. Vincent and the Grenadines", "Samoa", "San Marino", "Sao Tome and Principe",
|
168
|
+
"Saudi Arabia", "Senegal", "Serbia", "Seychelles", "Sierra Leone", "Singapore", "Slovakia",
|
169
|
+
"Slovenia", "Solomon Islands", "Somalia", "South Africa", "South Georgia and South Sandwich Islands",
|
170
|
+
"Spain", "Sri Lanka", "Sudan", "Suriname", "Svalbard & Jan Mayen Islands", "Swaziland", "Sweden",
|
171
|
+
"Switzerland", "Syrian Arab Republic",
|
172
|
+
"Taiwan", "Tajikistan", "Tanzania", "Thailand", "Timor-Leste", "Togo", "Tokelau", "Tonga",
|
173
|
+
"Trinidad and Tobago", "Tunisia", "Turkey", "Turkmenistan", "Turks and Caicos Islands", "Tuvalu",
|
174
|
+
"Uganda", "Ukraine", "United Arab Emirates", "United Kingdom", "United States of America",
|
175
|
+
"US Minor Outlying Islands", "US Virgin Islands", "Uruguay", "Uzbekistan",
|
176
|
+
"Vanuatu", "Venezuela", "Vietnam",
|
177
|
+
"Wallis and Futuna", "Western Sahara",
|
178
|
+
"Yemen",
|
179
|
+
"Zambia", "Zimbabwe"]
|
127
180
|
end
|
128
181
|
end
|
data/lib/ffaker/address_au.rb
CHANGED
@@ -6,13 +6,11 @@ module Faker
|
|
6
6
|
extend ModuleUtils
|
7
7
|
extend self
|
8
8
|
|
9
|
-
def
|
9
|
+
def postcode(st_abbr = nil)
|
10
10
|
st_abbr ||= state_abbr
|
11
|
-
|
11
|
+
POSTCODE[st_abbr][rand(POSTCODE[st_abbr].size)]
|
12
12
|
end
|
13
13
|
|
14
|
-
alias :postcode :zip_code
|
15
|
-
|
16
14
|
def state
|
17
15
|
STATE.rand
|
18
16
|
end
|
@@ -21,63 +19,64 @@ module Faker
|
|
21
19
|
STATE_ABBR.rand
|
22
20
|
end
|
23
21
|
|
24
|
-
def
|
22
|
+
def suburb(st_abbr = nil)
|
25
23
|
st_abbr ||= state_abbr
|
26
|
-
|
24
|
+
SUBURB[st_abbr][rand(SUBURB[st_abbr].size)]
|
27
25
|
end
|
28
26
|
|
29
27
|
def full_address(st_abbr = nil)
|
30
28
|
st_abbr ||= state_abbr
|
31
|
-
"#{Faker::Address.street_address}, #{
|
29
|
+
"#{Faker::Address.street_address}, #{suburb(st_abbr)} #{st_abbr} #{postcode}"
|
32
30
|
end
|
33
31
|
|
34
|
-
ZIP_FORMATS = k ['####']
|
35
|
-
|
36
32
|
# based on areas labeled state (+act) here: http://en.wikipedia.org/wiki/States_and_territories_of_Australia
|
37
|
-
STATE = k ['Australian Capital Territory', 'New South Wales', 'Queensland',
|
33
|
+
STATE = k ['Australian Capital Territory', 'New South Wales', 'Queensland',
|
34
|
+
'South Australia', 'Tasmania', 'Victoria', 'Western Australia']
|
38
35
|
|
39
36
|
STATE_ABBR = k %w(ACT NSW NT QLD SA TAS VIC WA)
|
40
37
|
|
41
38
|
# based on http://en.wikipedia.org/wiki/List_of_cities_in_Australia
|
42
|
-
|
39
|
+
SUBURB = {
|
43
40
|
"ACT" => ["Canberra", "Ainslie", "Braddon", "O'Connor"],
|
44
|
-
"NSW" => ["Albury", "Armidale", "Bankstown", "Bathurst", "Blacktown",
|
45
|
-
"
|
46
|
-
"
|
47
|
-
"
|
48
|
-
"
|
41
|
+
"NSW" => ["Albury", "Armidale", "Bankstown", "Bathurst", "Blacktown",
|
42
|
+
"Blue Mountains", "Botany Bay", "Broken Hill", "Campbelltown",
|
43
|
+
"Canada Bay", "Canterbury", "Cessnock", "Coffs Harbour", "Dubbo",
|
44
|
+
"Fairfield", "Gosford", "Goulburn", "Grafton", "Greater Taree", "Griffith",
|
45
|
+
"Hawkesbury", "Holroyd", "Hurstville", "Lake Macquarie", "Lismore", "Lithgow",
|
46
|
+
"Liverpool", "Maitland", "Newcastle", "Orange", "Parramatta", "Penrith",
|
47
|
+
"Queanbeyan", "Randwick", "Rockdale", "Ryde", "Shellharbour", "Shoalhaven",
|
49
48
|
"Sydney", "Tamworth", "Wagga Wagga", "Willoughby", "Wollongong"],
|
50
|
-
"NT" => ["Darwin","Palmerston"],
|
51
|
-
"QLD" => ["Brisbane", "Bundaberg", "Cairns", "Caloundra", "Charters Towers",
|
52
|
-
"
|
53
|
-
"
|
54
|
-
"
|
55
|
-
|
56
|
-
|
49
|
+
"NT" => ["Darwin", "Palmerston"],
|
50
|
+
"QLD" => ["Brisbane", "Bundaberg", "Cairns", "Caloundra", "Charters Towers",
|
51
|
+
"Gladstone", "Gold Coast", "Gympie", "Hervey Bay", "Ipswich", "Logan City",
|
52
|
+
"Mackay", "Maryborough", "Mount Isa", "Redcliffe City", "Redland City",
|
53
|
+
"Rockhampton", "Sunshine Coast", "Surfers Paradise", "Thuringowa",
|
54
|
+
"Toowoomba", "Townsville", "Warwick"],
|
55
|
+
"SA" => ["Adelaide", "Mount Barker", "Mount Gambier", "Murray Bridge",
|
56
|
+
"Port Adelaide", "Port Augusta", "Port Lincoln", "Port Pirie", "Victor Harbor",
|
57
|
+
"Whyalla"],
|
57
58
|
"TAS" => ["Burnie", "Clarence", "Devonport", "Glenorchy", "Hobart", "Launceston"],
|
58
|
-
"VIC" => ["Ararat", "Bairnsdale", "Ballarat", "Benalla", "Bendigo", "Dandenong",
|
59
|
-
"
|
60
|
-
"
|
61
|
-
|
62
|
-
|
63
|
-
"
|
59
|
+
"VIC" => ["Ararat", "Bairnsdale", "Ballarat", "Benalla", "Bendigo", "Dandenong",
|
60
|
+
"Frankston", "Geelong", "Hamilton", "Horsham", "Melbourne", "Melton", "Mildura",
|
61
|
+
"Moe", "Morwell", "Sale", "Shepparton", "Swan Hill", "Traralgon", "Wangaratta",
|
62
|
+
"Warrnambool", "Wodonga"],
|
63
|
+
"WA" => ["Albany", "Armadale", "Bayswater", "Bunbury", "Canning", "Cockburn",
|
64
|
+
"Fremantle", "Geraldton", "Gosnells", "Joondalup", "Kalgoorlie", "Mandurah",
|
65
|
+
"Melville", "Nedlands", "Perth", "Rockingham", "South Perth", "Stirling",
|
66
|
+
"Subiaco", "Swan", "Wanneroo"]
|
64
67
|
}
|
65
|
-
CITIES = CITY.keys.collect {|k| CITY[k]}.flatten.sort
|
66
68
|
|
67
69
|
# based on http://en.wikipedia.org/wiki/Postcodes_in_Australia
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
70
|
+
POSTCODE = {
|
71
|
+
'NSW' => [('1000'..'1999').to_a + ('2000'..'2599').to_a + ('2619'..'2898').to_a + ('2921'..'2999').to_a].flatten,
|
72
|
+
'ACT' => [('0200'..'0299').to_a + ('2600'..'2618').to_a + ('2900'..'2920').to_a].flatten,
|
73
|
+
'VIC' => [('3000'..'3999').to_a + ('8000'..'8999').to_a].flatten,
|
74
|
+
'QLD' => [('4000'..'4999').to_a + ('9000'..'9999').to_a].flatten,
|
75
|
+
'SA' => [('5000'..'5799').to_a + ('5800'..'5999').to_a].flatten,
|
76
|
+
'WA' => [('6000'..'6797').to_a + ('6800'..'6999').to_a].flatten,
|
77
|
+
'TAS' => [('7000'..'7799').to_a + ('7800'..'7999').to_a].flatten,
|
78
|
+
'NT' => [('0800'..'0899').to_a + ('0900'..'0999').to_a].flatten
|
77
79
|
}
|
78
|
-
ZIP_CODES = ZIP_CODE.keys.collect {|k| ZIP_CODE[k]}.flatten.sort
|
79
80
|
|
80
81
|
end
|
81
82
|
end
|
82
|
-
|
83
|
-
|