1 |
|
2 |
|
3 |
|
4 |
|
5 | function Address (faker) {
|
6 | var f = faker.fake,
|
7 | Helpers = faker.helpers;
|
8 |
|
9 | |
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 | this.zipCode = function(format) {
|
17 |
|
18 | if (typeof format === 'undefined') {
|
19 | var localeFormat = faker.definitions.address.postcode;
|
20 | if (typeof localeFormat === 'string') {
|
21 | format = localeFormat;
|
22 | } else {
|
23 | format = faker.random.arrayElement(localeFormat);
|
24 | }
|
25 | }
|
26 | return Helpers.replaceSymbols(format);
|
27 | }
|
28 |
|
29 | |
30 |
|
31 |
|
32 |
|
33 |
|
34 |
|
35 |
|
36 |
|
37 |
|
38 |
|
39 |
|
40 |
|
41 |
|
42 |
|
43 |
|
44 | this.city = function (format) {
|
45 | var formats = [
|
46 | '{{address.cityPrefix}} {{name.firstName}}{{address.citySuffix}}',
|
47 | '{{address.cityPrefix}} {{name.firstName}}',
|
48 | '{{name.firstName}}{{address.citySuffix}}',
|
49 | '{{name.lastName}}{{address.citySuffix}}'
|
50 | ];
|
51 |
|
52 | if (typeof format !== "number") {
|
53 | format = faker.random.number(formats.length - 1);
|
54 | }
|
55 |
|
56 | return f(formats[format]);
|
57 |
|
58 | }
|
59 |
|
60 | |
61 |
|
62 |
|
63 |
|
64 | this.cityPrefix = function () {
|
65 | return faker.random.arrayElement(faker.definitions.address.city_prefix);
|
66 | }
|
67 |
|
68 | |
69 |
|
70 |
|
71 |
|
72 |
|
73 | this.citySuffix = function () {
|
74 | return faker.random.arrayElement(faker.definitions.address.city_suffix);
|
75 | }
|
76 |
|
77 | |
78 |
|
79 |
|
80 |
|
81 |
|
82 | this.streetName = function () {
|
83 | var result;
|
84 | var suffix = faker.address.streetSuffix();
|
85 | if (suffix !== "") {
|
86 | suffix = " " + suffix
|
87 | }
|
88 |
|
89 | switch (faker.random.number(1)) {
|
90 | case 0:
|
91 | result = faker.name.lastName() + suffix;
|
92 | break;
|
93 | case 1:
|
94 | result = faker.name.firstName() + suffix;
|
95 | break;
|
96 | }
|
97 | return result;
|
98 | }
|
99 |
|
100 |
|
101 |
|
102 |
|
103 | |
104 |
|
105 |
|
106 |
|
107 |
|
108 |
|
109 | this.streetAddress = function (useFullAddress) {
|
110 | if (useFullAddress === undefined) { useFullAddress = false; }
|
111 | var address = "";
|
112 | switch (faker.random.number(2)) {
|
113 | case 0:
|
114 | address = Helpers.replaceSymbolWithNumber("#####") + " " + faker.address.streetName();
|
115 | break;
|
116 | case 1:
|
117 | address = Helpers.replaceSymbolWithNumber("####") + " " + faker.address.streetName();
|
118 | break;
|
119 | case 2:
|
120 | address = Helpers.replaceSymbolWithNumber("###") + " " + faker.address.streetName();
|
121 | break;
|
122 | }
|
123 | return useFullAddress ? (address + " " + faker.address.secondaryAddress()) : address;
|
124 | }
|
125 |
|
126 | |
127 |
|
128 |
|
129 |
|
130 |
|
131 | this.streetSuffix = function () {
|
132 | return faker.random.arrayElement(faker.definitions.address.street_suffix);
|
133 | }
|
134 |
|
135 | |
136 |
|
137 |
|
138 |
|
139 |
|
140 | this.streetPrefix = function () {
|
141 | return faker.random.arrayElement(faker.definitions.address.street_prefix);
|
142 | }
|
143 |
|
144 | |
145 |
|
146 |
|
147 |
|
148 |
|
149 | this.secondaryAddress = function () {
|
150 | return Helpers.replaceSymbolWithNumber(faker.random.arrayElement(
|
151 | [
|
152 | 'Apt. ###',
|
153 | 'Suite ###'
|
154 | ]
|
155 | ));
|
156 | }
|
157 |
|
158 | |
159 |
|
160 |
|
161 |
|
162 |
|
163 | this.county = function () {
|
164 | return faker.random.arrayElement(faker.definitions.address.county);
|
165 | }
|
166 |
|
167 | |
168 |
|
169 |
|
170 |
|
171 |
|
172 | this.country = function () {
|
173 | return faker.random.arrayElement(faker.definitions.address.country);
|
174 | }
|
175 |
|
176 | |
177 |
|
178 |
|
179 |
|
180 |
|
181 | this.countryCode = function () {
|
182 | return faker.random.arrayElement(faker.definitions.address.country_code);
|
183 | }
|
184 |
|
185 | |
186 |
|
187 |
|
188 |
|
189 |
|
190 |
|
191 | this.state = function (useAbbr) {
|
192 | return faker.random.arrayElement(faker.definitions.address.state);
|
193 | }
|
194 |
|
195 | |
196 |
|
197 |
|
198 |
|
199 |
|
200 | this.stateAbbr = function () {
|
201 | return faker.random.arrayElement(faker.definitions.address.state_abbr);
|
202 | }
|
203 |
|
204 | |
205 |
|
206 |
|
207 |
|
208 |
|
209 | this.latitude = function () {
|
210 | return (faker.random.number(180 * 10000) / 10000.0 - 90.0).toFixed(4);
|
211 | }
|
212 |
|
213 | |
214 |
|
215 |
|
216 |
|
217 |
|
218 | this.longitude = function () {
|
219 | return (faker.random.number(360 * 10000) / 10000.0 - 180.0).toFixed(4);
|
220 | }
|
221 |
|
222 | return this;
|
223 | }
|
224 |
|
225 |
|
226 | module.exports = Address;
|