faker-indian 0.1.0 → 0.2.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +25 -1
- data/README.md +216 -55
- data/lib/faker/indian/address.rb +61 -15
- data/lib/faker/indian/company.rb +41 -0
- data/lib/faker/indian/data/address.yml +275 -22
- data/lib/faker/indian/data/company.yml +28 -0
- data/lib/faker/indian/data/food.yml +18 -0
- data/lib/faker/indian/data/name.yml +13 -0
- data/lib/faker/indian/data/phone.yml +17 -0
- data/lib/faker/indian/data/travel.yml +23 -0
- data/lib/faker/indian/food.rb +26 -6
- data/lib/faker/indian/identity.rb +39 -5
- data/lib/faker/indian/languages.rb +2 -2
- data/lib/faker/indian/name.rb +17 -5
- data/lib/faker/indian/payment.rb +24 -6
- data/lib/faker/indian/phone.rb +23 -2
- data/lib/faker/indian/profile.rb +27 -0
- data/lib/faker/indian/travel.rb +34 -0
- data/lib/faker/indian/vehicle.rb +18 -4
- data/lib/faker/indian/version.rb +1 -1
- data/lib/faker/indian.rb +4 -1
- metadata +9 -3
|
@@ -1,40 +1,293 @@
|
|
|
1
|
+
---
|
|
1
2
|
locations:
|
|
2
3
|
Mumbai:
|
|
3
4
|
state: Maharashtra
|
|
4
|
-
pincode:
|
|
5
|
+
pincode: '400001'
|
|
5
6
|
Pune:
|
|
6
7
|
state: Maharashtra
|
|
7
|
-
pincode:
|
|
8
|
+
pincode: '411001'
|
|
8
9
|
Delhi:
|
|
9
10
|
state: Delhi
|
|
10
|
-
pincode:
|
|
11
|
+
pincode: '110001'
|
|
11
12
|
Bengaluru:
|
|
12
13
|
state: Karnataka
|
|
13
|
-
pincode:
|
|
14
|
-
Chennai:
|
|
15
|
-
state: Tamil Nadu
|
|
16
|
-
pincode: "600001"
|
|
14
|
+
pincode: '560001'
|
|
17
15
|
Hyderabad:
|
|
18
16
|
state: Telangana
|
|
19
|
-
pincode:
|
|
20
|
-
|
|
21
|
-
state:
|
|
22
|
-
pincode:
|
|
17
|
+
pincode: '500001'
|
|
18
|
+
Chennai:
|
|
19
|
+
state: Tamil Nadu
|
|
20
|
+
pincode: '600001'
|
|
23
21
|
Kolkata:
|
|
24
22
|
state: West Bengal
|
|
25
|
-
pincode:
|
|
23
|
+
pincode: '700001'
|
|
24
|
+
Ahmedabad:
|
|
25
|
+
state: Gujarat
|
|
26
|
+
pincode: '380001'
|
|
26
27
|
Jaipur:
|
|
27
28
|
state: Rajasthan
|
|
28
|
-
pincode:
|
|
29
|
+
pincode: '302001'
|
|
29
30
|
Lucknow:
|
|
30
31
|
state: Uttar Pradesh
|
|
31
|
-
pincode:
|
|
32
|
-
|
|
32
|
+
pincode: '226001'
|
|
33
|
+
Surat:
|
|
34
|
+
state: Gujarat
|
|
35
|
+
pincode: '395003'
|
|
36
|
+
Kanpur:
|
|
37
|
+
state: Uttar Pradesh
|
|
38
|
+
pincode: '208001'
|
|
39
|
+
Nagpur:
|
|
40
|
+
state: Maharashtra
|
|
41
|
+
pincode: '440001'
|
|
42
|
+
Indore:
|
|
43
|
+
state: Madhya Pradesh
|
|
44
|
+
pincode: '452001'
|
|
45
|
+
Bhopal:
|
|
46
|
+
state: Madhya Pradesh
|
|
47
|
+
pincode: '462001'
|
|
48
|
+
Patna:
|
|
49
|
+
state: Bihar
|
|
50
|
+
pincode: '800001'
|
|
51
|
+
Chandigarh:
|
|
52
|
+
state: Chandigarh
|
|
53
|
+
pincode: '160001'
|
|
54
|
+
Coimbatore:
|
|
55
|
+
state: Tamil Nadu
|
|
56
|
+
pincode: '641001'
|
|
57
|
+
Kochi:
|
|
58
|
+
state: Kerala
|
|
59
|
+
pincode: '682001'
|
|
60
|
+
Visakhapatnam:
|
|
61
|
+
state: Andhra Pradesh
|
|
62
|
+
pincode: '530001'
|
|
63
|
+
Thiruvananthapuram:
|
|
64
|
+
state: Kerala
|
|
65
|
+
pincode: '695001'
|
|
66
|
+
Vadodara:
|
|
67
|
+
state: Gujarat
|
|
68
|
+
pincode: '390001'
|
|
69
|
+
Ludhiana:
|
|
70
|
+
state: Punjab
|
|
71
|
+
pincode: '141001'
|
|
72
|
+
Agra:
|
|
73
|
+
state: Uttar Pradesh
|
|
74
|
+
pincode: '282001'
|
|
75
|
+
Nashik:
|
|
76
|
+
state: Maharashtra
|
|
77
|
+
pincode: '422001'
|
|
78
|
+
Faridabad:
|
|
79
|
+
state: Haryana
|
|
80
|
+
pincode: '121001'
|
|
81
|
+
Meerut:
|
|
82
|
+
state: Uttar Pradesh
|
|
83
|
+
pincode: '250001'
|
|
84
|
+
Raipur:
|
|
85
|
+
state: Chhattisgarh
|
|
86
|
+
pincode: '492001'
|
|
87
|
+
Ranchi:
|
|
88
|
+
state: Jharkhand
|
|
89
|
+
pincode: '834001'
|
|
90
|
+
Guwahati:
|
|
91
|
+
state: Assam
|
|
92
|
+
pincode: '781001'
|
|
93
|
+
Amritsar:
|
|
94
|
+
state: Punjab
|
|
95
|
+
pincode: '143001'
|
|
96
|
+
Aurangabad:
|
|
97
|
+
state: Maharashtra
|
|
98
|
+
pincode: '431001'
|
|
99
|
+
Bareilly:
|
|
100
|
+
state: Uttar Pradesh
|
|
101
|
+
pincode: '243001'
|
|
102
|
+
Belgaum:
|
|
103
|
+
state: Karnataka
|
|
104
|
+
pincode: '590001'
|
|
105
|
+
Bhavnagar:
|
|
106
|
+
state: Gujarat
|
|
107
|
+
pincode: '364001'
|
|
108
|
+
Bhubaneswar:
|
|
109
|
+
state: Odisha
|
|
110
|
+
pincode: '751001'
|
|
111
|
+
Bikaner:
|
|
112
|
+
state: Rajasthan
|
|
113
|
+
pincode: '334001'
|
|
114
|
+
Bilaspur:
|
|
115
|
+
state: Chhattisgarh
|
|
116
|
+
pincode: '495001'
|
|
117
|
+
Cuttack:
|
|
118
|
+
state: Odisha
|
|
119
|
+
pincode: '753001'
|
|
120
|
+
Dehradun:
|
|
121
|
+
state: Uttarakhand
|
|
122
|
+
pincode: '248001'
|
|
123
|
+
Dhanbad:
|
|
124
|
+
state: Jharkhand
|
|
125
|
+
pincode: '826001'
|
|
126
|
+
Durgapur:
|
|
127
|
+
state: West Bengal
|
|
128
|
+
pincode: '713201'
|
|
129
|
+
Erode:
|
|
130
|
+
state: Tamil Nadu
|
|
131
|
+
pincode: '638001'
|
|
132
|
+
Gandhinagar:
|
|
133
|
+
state: Gujarat
|
|
134
|
+
pincode: '382001'
|
|
135
|
+
Gaya:
|
|
136
|
+
state: Bihar
|
|
137
|
+
pincode: '823001'
|
|
138
|
+
Gorakhpur:
|
|
139
|
+
state: Uttar Pradesh
|
|
140
|
+
pincode: '273001'
|
|
141
|
+
Guntur:
|
|
142
|
+
state: Andhra Pradesh
|
|
143
|
+
pincode: '522001'
|
|
144
|
+
Hubli:
|
|
145
|
+
state: Karnataka
|
|
146
|
+
pincode: '580020'
|
|
147
|
+
Jabalpur:
|
|
148
|
+
state: Madhya Pradesh
|
|
149
|
+
pincode: '482001'
|
|
150
|
+
Jalandhar:
|
|
151
|
+
state: Punjab
|
|
152
|
+
pincode: '144001'
|
|
153
|
+
Jammu:
|
|
154
|
+
state: Jammu and Kashmir
|
|
155
|
+
pincode: '180001'
|
|
156
|
+
Jamnagar:
|
|
157
|
+
state: Gujarat
|
|
158
|
+
pincode: '361001'
|
|
159
|
+
Jamshedpur:
|
|
160
|
+
state: Jharkhand
|
|
161
|
+
pincode: '831001'
|
|
162
|
+
Jhansi:
|
|
163
|
+
state: Uttar Pradesh
|
|
164
|
+
pincode: '284001'
|
|
165
|
+
Jodhpur:
|
|
166
|
+
state: Rajasthan
|
|
167
|
+
pincode: '342001'
|
|
168
|
+
Kakinada:
|
|
169
|
+
state: Andhra Pradesh
|
|
170
|
+
pincode: '533001'
|
|
171
|
+
Kolhapur:
|
|
172
|
+
state: Maharashtra
|
|
173
|
+
pincode: '416003'
|
|
174
|
+
Kota:
|
|
175
|
+
state: Rajasthan
|
|
176
|
+
pincode: '324001'
|
|
177
|
+
Madurai:
|
|
178
|
+
state: Tamil Nadu
|
|
179
|
+
pincode: '625001'
|
|
180
|
+
Mangalore:
|
|
181
|
+
state: Karnataka
|
|
182
|
+
pincode: '575001'
|
|
183
|
+
Mysuru:
|
|
184
|
+
state: Karnataka
|
|
185
|
+
pincode: '570001'
|
|
186
|
+
Noida:
|
|
187
|
+
state: Uttar Pradesh
|
|
188
|
+
pincode: '201301'
|
|
189
|
+
Panaji:
|
|
190
|
+
state: Goa
|
|
191
|
+
pincode: '403001'
|
|
192
|
+
Prayagraj:
|
|
193
|
+
state: Uttar Pradesh
|
|
194
|
+
pincode: '211001'
|
|
195
|
+
Rajkot:
|
|
196
|
+
state: Gujarat
|
|
197
|
+
pincode: '360001'
|
|
198
|
+
Salem:
|
|
199
|
+
state: Tamil Nadu
|
|
200
|
+
pincode: '636001'
|
|
201
|
+
Shimla:
|
|
202
|
+
state: Himachal Pradesh
|
|
203
|
+
pincode: '171001'
|
|
204
|
+
Srinagar:
|
|
205
|
+
state: Jammu and Kashmir
|
|
206
|
+
pincode: '190001'
|
|
207
|
+
Tiruchirappalli:
|
|
208
|
+
state: Tamil Nadu
|
|
209
|
+
pincode: '620001'
|
|
210
|
+
Udaipur:
|
|
211
|
+
state: Rajasthan
|
|
212
|
+
pincode: '313001'
|
|
33
213
|
streets:
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
214
|
+
- MG Road
|
|
215
|
+
- FC Road
|
|
216
|
+
- Park Street
|
|
217
|
+
- Brigade Road
|
|
218
|
+
- Linking Road
|
|
219
|
+
- Anna Salai
|
|
220
|
+
- Ring Road
|
|
221
|
+
- Outer Ring Road
|
|
222
|
+
- JM Road
|
|
223
|
+
- Karve Road
|
|
224
|
+
- Laxmi Road
|
|
225
|
+
- Church Street
|
|
226
|
+
- Hill Road
|
|
227
|
+
- Elgin Road
|
|
228
|
+
- Gariahat Road
|
|
229
|
+
- Residency Road
|
|
230
|
+
- Ashram Road
|
|
231
|
+
- Law Garden Road
|
|
232
|
+
- VIP Road
|
|
233
|
+
- Rajpur Road
|
|
234
|
+
- Civil Lines Road
|
|
235
|
+
- Airport Road
|
|
236
|
+
- Station Road
|
|
237
|
+
- Mall Road
|
|
238
|
+
- College Road
|
|
239
|
+
- Camac Street
|
|
240
|
+
- Marine Drive
|
|
241
|
+
- Banjara Hills Road No. 12
|
|
242
|
+
- Hauz Khas Village Road
|
|
243
|
+
- Cathedral Road
|
|
244
|
+
state_codes:
|
|
245
|
+
Maharashtra: MH
|
|
246
|
+
Karnataka: KA
|
|
247
|
+
Delhi: DL
|
|
248
|
+
Tamil Nadu: TN
|
|
249
|
+
Gujarat: GJ
|
|
250
|
+
Uttar Pradesh: UP
|
|
251
|
+
West Bengal: WB
|
|
252
|
+
Rajasthan: RJ
|
|
253
|
+
Andhra Pradesh: AP
|
|
254
|
+
Telangana: TS
|
|
255
|
+
Kerala: KL
|
|
256
|
+
Madhya Pradesh: MP
|
|
257
|
+
Haryana: HR
|
|
258
|
+
Punjab: PB
|
|
259
|
+
Bihar: BR
|
|
260
|
+
Odisha: OR
|
|
261
|
+
Chhattisgarh: CG
|
|
262
|
+
Jharkhand: JH
|
|
263
|
+
Assam: AS
|
|
264
|
+
Uttarakhand: UK
|
|
265
|
+
Himachal Pradesh: HP
|
|
266
|
+
Jammu and Kashmir: JK
|
|
267
|
+
Goa: GA
|
|
268
|
+
Chandigarh: CH
|
|
269
|
+
districts:
|
|
270
|
+
- Andheri
|
|
271
|
+
- Koramangala
|
|
272
|
+
- Bandra
|
|
273
|
+
- Powai
|
|
274
|
+
- Salt Lake
|
|
275
|
+
- Connaught Place
|
|
276
|
+
- Hinjewadi
|
|
277
|
+
- Gachibowli
|
|
278
|
+
- T Nagar
|
|
279
|
+
- Adyar
|
|
280
|
+
- Satellite Road
|
|
281
|
+
- Vastrapur
|
|
282
|
+
- Hazratganj
|
|
283
|
+
- Civil Lines
|
|
284
|
+
- MG Road Extension
|
|
285
|
+
landmarks:
|
|
286
|
+
- Near Metro Station
|
|
287
|
+
- Opposite City Mall
|
|
288
|
+
- Behind Railway Station
|
|
289
|
+
- Next to Bus Stand
|
|
290
|
+
- Near Airport
|
|
291
|
+
- Close to IT Park
|
|
292
|
+
- Opposite Hospital
|
|
293
|
+
- Near City Market
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
prefixes:
|
|
2
|
+
- Shree
|
|
3
|
+
- Bharat
|
|
4
|
+
- Hindustan
|
|
5
|
+
- New India
|
|
6
|
+
- National
|
|
7
|
+
|
|
8
|
+
cores:
|
|
9
|
+
- Tech Solutions
|
|
10
|
+
- Industries
|
|
11
|
+
- Traders
|
|
12
|
+
- Exports
|
|
13
|
+
- Logistics
|
|
14
|
+
- Pharmaceuticals
|
|
15
|
+
- Infotech
|
|
16
|
+
- Enterprises
|
|
17
|
+
|
|
18
|
+
suffixes:
|
|
19
|
+
- Pvt Ltd
|
|
20
|
+
- LLP
|
|
21
|
+
- Limited
|
|
22
|
+
- Technologies
|
|
23
|
+
- Services
|
|
24
|
+
|
|
25
|
+
types:
|
|
26
|
+
- Private Limited
|
|
27
|
+
- LLP
|
|
28
|
+
- Public Limited
|
|
@@ -89,3 +89,21 @@ street_food:
|
|
|
89
89
|
- Jalebi
|
|
90
90
|
- Kulfi
|
|
91
91
|
- Poha
|
|
92
|
+
|
|
93
|
+
meals:
|
|
94
|
+
- breakfast
|
|
95
|
+
- lunch
|
|
96
|
+
- dinner
|
|
97
|
+
|
|
98
|
+
beverages:
|
|
99
|
+
- Masala Chai
|
|
100
|
+
- Filter Coffee
|
|
101
|
+
- Lassi
|
|
102
|
+
- Nimbu Pani
|
|
103
|
+
- Mango Lassi
|
|
104
|
+
- Thandai
|
|
105
|
+
|
|
106
|
+
spice_levels:
|
|
107
|
+
- mild
|
|
108
|
+
- medium
|
|
109
|
+
- spicy
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
stations:
|
|
2
|
+
- Mumbai CST
|
|
3
|
+
- New Delhi
|
|
4
|
+
- Howrah Junction
|
|
5
|
+
- Bengaluru City
|
|
6
|
+
- Chennai Central
|
|
7
|
+
- Secunderabad Junction
|
|
8
|
+
- Ahmedabad Junction
|
|
9
|
+
- Pune Junction
|
|
10
|
+
- Jaipur Junction
|
|
11
|
+
- Lucknow NR
|
|
12
|
+
|
|
13
|
+
trains:
|
|
14
|
+
- Rajdhani Express
|
|
15
|
+
- Shatabdi Express
|
|
16
|
+
- Duronto Express
|
|
17
|
+
- Garib Rath Express
|
|
18
|
+
- Vande Bharat Express
|
|
19
|
+
- Deccan Queen
|
|
20
|
+
- Tamil Nadu Express
|
|
21
|
+
- Karnataka Express
|
|
22
|
+
- Punjab Mail
|
|
23
|
+
- Konkan Kanya Express
|
data/lib/faker/indian/food.rb
CHANGED
|
@@ -5,13 +5,17 @@ require "faker"
|
|
|
5
5
|
module Faker
|
|
6
6
|
module Indian
|
|
7
7
|
class Food
|
|
8
|
-
|
|
8
|
+
data = Data.load(:food)
|
|
9
|
+
|
|
10
|
+
DISHES = data.fetch(:dishes).freeze
|
|
11
|
+
RESTAURANTS = data.fetch(:restaurants).freeze
|
|
12
|
+
CUISINES = data.fetch(:cuisines).freeze
|
|
13
|
+
STREET_FOOD = data.fetch(:street_food).freeze
|
|
14
|
+
SWEETS = data.fetch(:sweets).freeze
|
|
15
|
+
MEALS = data.fetch(:meals).freeze
|
|
16
|
+
BEVERAGES = data.fetch(:beverages).freeze
|
|
17
|
+
SPICE_LEVELS = data.fetch(:spice_levels).freeze
|
|
9
18
|
|
|
10
|
-
DISHES = _data.fetch(:dishes).freeze
|
|
11
|
-
RESTAURANTS = _data.fetch(:restaurants).freeze
|
|
12
|
-
CUISINES = _data.fetch(:cuisines).freeze
|
|
13
|
-
STREET_FOOD = _data.fetch(:street_food).freeze
|
|
14
|
-
SWEETS = _data.fetch(:sweets).freeze
|
|
15
19
|
class << self
|
|
16
20
|
def dish
|
|
17
21
|
DISHES.sample(random: random)
|
|
@@ -33,6 +37,22 @@ module Faker
|
|
|
33
37
|
SWEETS.sample(random: random)
|
|
34
38
|
end
|
|
35
39
|
|
|
40
|
+
def meal
|
|
41
|
+
MEALS.sample(random: random)
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def beverage
|
|
45
|
+
BEVERAGES.sample(random: random)
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def combo
|
|
49
|
+
"#{dish} with #{beverage}"
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def spice_level
|
|
53
|
+
SPICE_LEVELS.sample(random: random)
|
|
54
|
+
end
|
|
55
|
+
|
|
36
56
|
private
|
|
37
57
|
|
|
38
58
|
def random
|
|
@@ -4,12 +4,14 @@ require "faker"
|
|
|
4
4
|
|
|
5
5
|
module Faker
|
|
6
6
|
module Indian
|
|
7
|
+
# Provides fake identity data specific to the Indian context
|
|
8
|
+
# such as Aadhar numbers, PAN card formats, GSTIN, voterID, passport number.
|
|
7
9
|
class Identity
|
|
8
|
-
|
|
10
|
+
data = Data.load(:identity)
|
|
9
11
|
|
|
10
12
|
LETTERS = ("A".."Z").to_a.freeze
|
|
11
|
-
PAN_ENTITY_TYPES =
|
|
12
|
-
GSTIN_STATE_CODES =
|
|
13
|
+
PAN_ENTITY_TYPES = data.fetch(:pan_entity_types).freeze
|
|
14
|
+
GSTIN_STATE_CODES = data.fetch(:gstin_state_codes).freeze
|
|
13
15
|
CHECKSUM_CHARS = (("0".."9").to_a + LETTERS).freeze
|
|
14
16
|
|
|
15
17
|
class << self
|
|
@@ -30,12 +32,17 @@ module Faker
|
|
|
30
32
|
.join(" ")
|
|
31
33
|
end
|
|
32
34
|
|
|
33
|
-
def
|
|
35
|
+
def aadhaar_masked
|
|
36
|
+
"XXXX XXXX #{format('%04d', random.rand(0..9999))}"
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def gstin(pan: nil)
|
|
34
40
|
state = GSTIN_STATE_CODES.sample(random: random)
|
|
35
41
|
entity_number = random.rand(1..9)
|
|
36
42
|
checksum = CHECKSUM_CHARS.sample(random: random)
|
|
43
|
+
pan_value = pan || self.pan
|
|
37
44
|
|
|
38
|
-
"#{state}#{
|
|
45
|
+
"#{state}#{pan_value}#{entity_number}Z#{checksum}"
|
|
39
46
|
end
|
|
40
47
|
|
|
41
48
|
def voter_id
|
|
@@ -46,6 +53,15 @@ module Faker
|
|
|
46
53
|
"#{sample_letter}#{random.rand(1_000_000..9_999_999)}"
|
|
47
54
|
end
|
|
48
55
|
|
|
56
|
+
def driving_license(state: nil)
|
|
57
|
+
code = resolve_state_code(state)
|
|
58
|
+
year = random.rand(2010..2024)
|
|
59
|
+
series = format("%02d", random.rand(1..99))
|
|
60
|
+
number = random.rand(1_000_000..9_999_999)
|
|
61
|
+
|
|
62
|
+
"#{code}-#{series}-#{year}-#{number}"
|
|
63
|
+
end
|
|
64
|
+
|
|
49
65
|
private
|
|
50
66
|
|
|
51
67
|
def random
|
|
@@ -55,6 +71,24 @@ module Faker
|
|
|
55
71
|
def sample_letter
|
|
56
72
|
LETTERS.sample(random: random)
|
|
57
73
|
end
|
|
74
|
+
|
|
75
|
+
def resolve_state_code(state)
|
|
76
|
+
return sample_state_code if state.nil?
|
|
77
|
+
|
|
78
|
+
normalized = state.to_s
|
|
79
|
+
return normalized.upcase if normalized.length == 2
|
|
80
|
+
|
|
81
|
+
match = Address::STATE_CODES.find do |name, code|
|
|
82
|
+
name.casecmp?(normalized) || code.casecmp?(normalized)
|
|
83
|
+
end
|
|
84
|
+
return match.last if match
|
|
85
|
+
|
|
86
|
+
raise Error, "unknown state: #{state}"
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
def sample_state_code
|
|
90
|
+
Address::STATE_CODES.values.sample(random: random)
|
|
91
|
+
end
|
|
58
92
|
end
|
|
59
93
|
end
|
|
60
94
|
end
|
data/lib/faker/indian/name.rb
CHANGED
|
@@ -5,11 +5,13 @@ require "faker"
|
|
|
5
5
|
module Faker
|
|
6
6
|
module Indian
|
|
7
7
|
class Name
|
|
8
|
-
|
|
8
|
+
data = Data.load(:name)
|
|
9
9
|
|
|
10
|
-
FIRST_NAMES =
|
|
11
|
-
LAST_NAMES =
|
|
12
|
-
PREFIXES =
|
|
10
|
+
FIRST_NAMES = data.fetch(:first_names).freeze
|
|
11
|
+
LAST_NAMES = data.fetch(:last_names).freeze
|
|
12
|
+
PREFIXES = data.fetch(:prefixes).freeze
|
|
13
|
+
MIDDLE_NAMES = data.fetch(:middle_names).freeze
|
|
14
|
+
SUFFIXES = data.fetch(:suffixes).freeze
|
|
13
15
|
|
|
14
16
|
class << self
|
|
15
17
|
def first_name
|
|
@@ -20,7 +22,13 @@ module Faker
|
|
|
20
22
|
LAST_NAMES.sample(random: random)
|
|
21
23
|
end
|
|
22
24
|
|
|
23
|
-
def
|
|
25
|
+
def middle_name
|
|
26
|
+
MIDDLE_NAMES.sample(random: random)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def full_name(language: nil)
|
|
30
|
+
return Languages.full_name(language: language) if language
|
|
31
|
+
|
|
24
32
|
"#{first_name} #{last_name}"
|
|
25
33
|
end
|
|
26
34
|
|
|
@@ -28,6 +36,10 @@ module Faker
|
|
|
28
36
|
PREFIXES.sample(random: random)
|
|
29
37
|
end
|
|
30
38
|
|
|
39
|
+
def suffix
|
|
40
|
+
SUFFIXES.sample(random: random)
|
|
41
|
+
end
|
|
42
|
+
|
|
31
43
|
private
|
|
32
44
|
|
|
33
45
|
def random
|
data/lib/faker/indian/payment.rb
CHANGED
|
@@ -5,15 +5,16 @@ require "faker"
|
|
|
5
5
|
module Faker
|
|
6
6
|
module Indian
|
|
7
7
|
class Payment
|
|
8
|
-
|
|
8
|
+
data = Data.load(:payment)
|
|
9
9
|
|
|
10
|
-
HANDLES =
|
|
11
|
-
BANK_CODES =
|
|
12
|
-
NAMES =
|
|
10
|
+
HANDLES = data.fetch(:handles).freeze
|
|
11
|
+
BANK_CODES = data.fetch(:banks).freeze
|
|
12
|
+
NAMES = data.fetch(:names).freeze
|
|
13
13
|
|
|
14
14
|
class << self
|
|
15
|
-
def upi_id
|
|
16
|
-
|
|
15
|
+
def upi_id(name: nil)
|
|
16
|
+
handle_name = sanitize_name(name || sample_name)
|
|
17
|
+
"#{handle_name}#{random.rand(10..99)}@#{sample_handle}"
|
|
17
18
|
end
|
|
18
19
|
alias upi upi_id
|
|
19
20
|
|
|
@@ -31,6 +32,19 @@ module Faker
|
|
|
31
32
|
random.rand(100_000_000_000..999_999_999_999).to_s
|
|
32
33
|
end
|
|
33
34
|
|
|
35
|
+
def demat_account
|
|
36
|
+
random.rand(100_000_000_000_000..999_999_999_999_999).to_s
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def bank_details
|
|
40
|
+
code = sample_bank_code
|
|
41
|
+
{
|
|
42
|
+
bank_name: BANK_CODES[code],
|
|
43
|
+
ifsc: "#{code}0#{random.rand(100_000..999_999)}",
|
|
44
|
+
account_number: random.rand(100_000_000_000..999_999_999_999).to_s
|
|
45
|
+
}
|
|
46
|
+
end
|
|
47
|
+
|
|
34
48
|
private
|
|
35
49
|
|
|
36
50
|
def random
|
|
@@ -48,6 +62,10 @@ module Faker
|
|
|
48
62
|
def sample_bank_code
|
|
49
63
|
BANK_CODES.keys.sample(random: random)
|
|
50
64
|
end
|
|
65
|
+
|
|
66
|
+
def sanitize_name(name)
|
|
67
|
+
name.to_s.downcase.gsub(/\s+/, "")
|
|
68
|
+
end
|
|
51
69
|
end
|
|
52
70
|
end
|
|
53
71
|
end
|
data/lib/faker/indian/phone.rb
CHANGED
|
@@ -5,11 +5,32 @@ require "faker"
|
|
|
5
5
|
module Faker
|
|
6
6
|
module Indian
|
|
7
7
|
class Phone
|
|
8
|
+
data = Data.load(:phone)
|
|
9
|
+
|
|
10
|
+
OPERATORS = data.fetch(:operators).freeze
|
|
11
|
+
STD_CODES = data.fetch(:std_codes).freeze
|
|
12
|
+
|
|
8
13
|
class << self
|
|
9
|
-
def mobile_number
|
|
14
|
+
def mobile_number(formatted: true)
|
|
10
15
|
first_digit = random.rand(6..9)
|
|
11
16
|
remaining = random.rand(0..999_999_999)
|
|
12
|
-
"
|
|
17
|
+
digits = "#{first_digit}#{format('%09d', remaining)}"
|
|
18
|
+
|
|
19
|
+
formatted ? "+91 #{digits}" : digits
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def landline
|
|
23
|
+
std = STD_CODES.sample(random: random)
|
|
24
|
+
number = random.rand(1_000_000..9_999_999)
|
|
25
|
+
"0#{std}-#{number}"
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def operator
|
|
29
|
+
OPERATORS.sample(random: random)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def whatsapp_number(formatted: true)
|
|
33
|
+
mobile_number(formatted: formatted)
|
|
13
34
|
end
|
|
14
35
|
|
|
15
36
|
private
|