zfaker 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,467 @@
1
+ Abbott
2
+ Abernathy
3
+ Abshire
4
+ Adams
5
+ Altenwerth
6
+ Anderson
7
+ Ankunding
8
+ Armstrong
9
+ Auer
10
+ Aufderhar
11
+ Bahringer
12
+ Bailey
13
+ Balistreri
14
+ Barrows
15
+ Bartell
16
+ Bartoletti
17
+ Barton
18
+ Bashirian
19
+ Batz
20
+ Bauch
21
+ Baumbach
22
+ Bayer
23
+ Beahan
24
+ Beatty
25
+ Bechtelar
26
+ Becker
27
+ Bednar
28
+ Beer
29
+ Beier
30
+ Berge
31
+ Bergnaum
32
+ Bergstrom
33
+ Bernhard
34
+ Bernier
35
+ Bins
36
+ Blanda
37
+ Blick
38
+ Block
39
+ Bode
40
+ Boehm
41
+ Bogan
42
+ Bogisich
43
+ Borer
44
+ Bosco
45
+ Botsford
46
+ Boyer
47
+ Boyle
48
+ Bradtke
49
+ Brakus
50
+ Braun
51
+ Breitenberg
52
+ Brekke
53
+ Brown
54
+ Bruen
55
+ Buckridge
56
+ Carroll
57
+ Carter
58
+ Cartwright
59
+ Casper
60
+ Cassin
61
+ Champlin
62
+ Christiansen
63
+ Cole
64
+ Collier
65
+ Collins
66
+ Conn
67
+ Connelly
68
+ Conroy
69
+ Considine
70
+ Corkery
71
+ Cormier
72
+ Corwin
73
+ Cremin
74
+ Crist
75
+ Crona
76
+ Cronin
77
+ Crooks
78
+ Cruickshank
79
+ Cummerata
80
+ Cummings
81
+ Dach
82
+ Daniel
83
+ Dare
84
+ Daugherty
85
+ Davis
86
+ Deckow
87
+ Denesik
88
+ Dibbert
89
+ Dickens
90
+ Dicki
91
+ Dickinson
92
+ Dietrich
93
+ Donnelly
94
+ Dooley
95
+ Douglas
96
+ Doyle
97
+ DuBuque
98
+ Durgan
99
+ Ebert
100
+ Effertz
101
+ Eichmann
102
+ Emard
103
+ Emmerich
104
+ Erdman
105
+ Ernser
106
+ Fadel
107
+ Fahey
108
+ Farrell
109
+ Fay
110
+ Feeney
111
+ Feest
112
+ Feil
113
+ Ferry
114
+ Fisher
115
+ Flatley
116
+ Frami
117
+ Franecki
118
+ Friesen
119
+ Fritsch
120
+ Funk
121
+ Gerhold
122
+ Gerlach
123
+ Gibson
124
+ Gislason
125
+ Gleason
126
+ Gleichner
127
+ Glover
128
+ Goldner
129
+ Goodwin
130
+ Gorczany
131
+ Gottlieb
132
+ Goyette
133
+ Grady
134
+ Graham
135
+ Grant
136
+ Green
137
+ Greenfelder
138
+ Greenholt
139
+ Grimes
140
+ Gulgowski
141
+ Gusikowski
142
+ Gutkowski
143
+ Gutmann
144
+ Haag
145
+ Hackett
146
+ Hagenes
147
+ Hahn
148
+ Haley
149
+ Halvorson
150
+ Hamill
151
+ Hammes
152
+ Hand
153
+ Hane
154
+ Hansen
155
+ Harber
156
+ Harris
157
+ Hartmann
158
+ Harvey
159
+ Hauck
160
+ Hayes
161
+ Heaney
162
+ Heathcote
163
+ Hegmann
164
+ Heidenreich
165
+ Heller
166
+ Herman
167
+ Hermann
168
+ Hermiston
169
+ Herzog
170
+ Hessel
171
+ Hettinger
172
+ Hickle
173
+ Hill
174
+ Hills
175
+ Hilpert
176
+ Hintz
177
+ Hirthe
178
+ Hodkiewicz
179
+ Hoeger
180
+ Homenick
181
+ Hoppe
182
+ Howe
183
+ Howell
184
+ Hudson
185
+ Huel
186
+ Huels
187
+ Hyatt
188
+ Jacobi
189
+ Jacobs
190
+ Jacobson
191
+ Jakubowski
192
+ Jaskolski
193
+ Jast
194
+ Jenkins
195
+ Jerde
196
+ Jewess
197
+ Johns
198
+ Johnson
199
+ Johnston
200
+ Jones
201
+ Kassulke
202
+ Kautzer
203
+ Keebler
204
+ Keeling
205
+ Kemmer
206
+ Kerluke
207
+ Kertzmann
208
+ Kessler
209
+ Kiehn
210
+ Kihn
211
+ Kilback
212
+ King
213
+ Kirlin
214
+ Klein
215
+ Kling
216
+ Klocko
217
+ Koch
218
+ Koelpin
219
+ Koepp
220
+ Kohler
221
+ Konopelski
222
+ Koss
223
+ Kovacek
224
+ Kozey
225
+ Krajcik
226
+ Kreiger
227
+ Kris
228
+ Kshlerin
229
+ Kub
230
+ Kuhic
231
+ Kuhlman
232
+ Kuhn
233
+ Kulas
234
+ Kunde
235
+ Kunze
236
+ Kuphal
237
+ Kutch
238
+ Kuvalis
239
+ Labadie
240
+ Lakin
241
+ Lang
242
+ Langosh
243
+ Langworth
244
+ Larkin
245
+ Larson
246
+ Leannon
247
+ Lebsack
248
+ Ledner
249
+ Leffler
250
+ Legros
251
+ Lehner
252
+ Lemke
253
+ Lesch
254
+ Leuschke
255
+ Lind
256
+ Lindgren
257
+ Littel
258
+ Little
259
+ Lockman
260
+ Lowe
261
+ Lubowitz
262
+ Lueilwitz
263
+ Luettgen
264
+ Lynch
265
+ Macejkovic
266
+ Maggio
267
+ Mann
268
+ Mante
269
+ Marks
270
+ Marquardt
271
+ Marvin
272
+ Mayer
273
+ Mayert
274
+ McClure
275
+ McCullough
276
+ McDermott
277
+ McGlynn
278
+ McKenzie
279
+ McLaughlin
280
+ Medhurst
281
+ Mertz
282
+ Metz
283
+ Miller
284
+ Mills
285
+ Mitchell
286
+ Moen
287
+ Mohr
288
+ Monahan
289
+ Moore
290
+ Morar
291
+ Morissette
292
+ Mosciski
293
+ Mraz
294
+ Mueller
295
+ Muller
296
+ Murazik
297
+ Murphy
298
+ Murray
299
+ Nader
300
+ Nicolas
301
+ Nienow
302
+ Nikolaus
303
+ Nitzsche
304
+ Nolan
305
+ Oberbrunner
306
+ Oga
307
+ Okuneva
308
+ Olson
309
+ Ondricka
310
+ Orn
311
+ Ortiz
312
+ Osinski
313
+ Pacocha
314
+ Padberg
315
+ Pagac
316
+ Parisian
317
+ Parker
318
+ Paucek
319
+ Pfannerstill
320
+ Pfeffer
321
+ Pollich
322
+ Pouros
323
+ Powlowski
324
+ Predovic
325
+ Price
326
+ Prohaska
327
+ Prosacco
328
+ Purdy
329
+ Quigley
330
+ Quitzon
331
+ Rath
332
+ Ratke
333
+ Rau
334
+ Raynor
335
+ Reichel
336
+ Reichert
337
+ Reilly
338
+ Reinger
339
+ Rempel
340
+ Renner
341
+ Reynolds
342
+ Rice
343
+ Rippin
344
+ Ritchie
345
+ Robel
346
+ Roberts
347
+ Rodriguez
348
+ Rogahn
349
+ Rohan
350
+ Rolfson
351
+ Romaguera
352
+ Roob
353
+ Rosenbaum
354
+ Rowe
355
+ Ruecker
356
+ Runolfsdottir
357
+ Runolfsson
358
+ Runte
359
+ Russel
360
+ Rutherford
361
+ Ryan
362
+ Sanford
363
+ Satterfield
364
+ Sauer
365
+ Sawayn
366
+ Schaden
367
+ Schaefer
368
+ Schamberger
369
+ Schiller
370
+ Schimmel
371
+ Schinner
372
+ Schmeler
373
+ Schmidt
374
+ Schmitt
375
+ Schneider
376
+ Schoen
377
+ Schowalter
378
+ Schroeder
379
+ Schulist
380
+ Schultz
381
+ Schumm
382
+ Schuppe
383
+ Schuster
384
+ Senger
385
+ Shanahan
386
+ Shields
387
+ Simonis
388
+ Sipes
389
+ Skiles
390
+ Smith
391
+ Smitham
392
+ Spencer
393
+ Spinka
394
+ Sporer
395
+ Stamm
396
+ Stanton
397
+ Stark
398
+ Stehr
399
+ Steuber
400
+ Stiedemann
401
+ Stokes
402
+ Stoltenberg
403
+ Stracke
404
+ Streich
405
+ Stroman
406
+ Strosin
407
+ Swaniawski
408
+ Swift
409
+ Terry
410
+ Thiel
411
+ Thompson
412
+ Tillman
413
+ Torp
414
+ Torphy
415
+ Towne
416
+ Toy
417
+ Trantow
418
+ Tremblay
419
+ Treutel
420
+ Tromp
421
+ Turcotte
422
+ Turner
423
+ Ullrich
424
+ Upton
425
+ Vandervort
426
+ Veum
427
+ Volkman
428
+ Von
429
+ VonRueden
430
+ Waelchi
431
+ Walker
432
+ Walsh
433
+ Walter
434
+ Ward
435
+ Waters
436
+ Watsica
437
+ Weber
438
+ Wehner
439
+ Weimann
440
+ Weissnat
441
+ Welch
442
+ West
443
+ White
444
+ Wiegand
445
+ Wilderman
446
+ Wilkinson
447
+ Will
448
+ Williamson
449
+ Willms
450
+ Windler
451
+ Wintheiser
452
+ Wisoky
453
+ Wisozk
454
+ Witting
455
+ Wiza
456
+ Wolf
457
+ Wolff
458
+ Wuckert
459
+ Wunsch
460
+ Wyman
461
+ Yost
462
+ Yundt
463
+ Zboncak
464
+ Zemlak
465
+ Ziemann
466
+ Zieme
467
+ Zulauf
@@ -0,0 +1,49 @@
1
+ # encoding: utf-8
2
+
3
+ module ZFaker
4
+ # Internet Module
5
+ module Internet
6
+ extend ModuleUtils
7
+ extend self
8
+
9
+ @emails = []
10
+ @filler = ''
11
+ @links = ''
12
+
13
+ def email(name = nil)
14
+ unique_sample(@emails) { [user_name(name), email_domain].join('@') }
15
+ end
16
+
17
+ def user_name(name = nil)
18
+ if name
19
+ input = name.split(' ')
20
+ case rand(18)
21
+ when 0..3 then parts = input.shuffle.join('_')
22
+ when 4..6 then parts = input[0].to_s + input[1].to_s
23
+ when 7..9 then parts = input[0][0].to_s + input[1].to_s
24
+ when 10..12 then parts = input[0].to_s + input[1][0].to_s
25
+ when 13..15 then parts = input[1].to_s
26
+ else parts = input[0].to_s
27
+ end
28
+ parts.to_s.downcase
29
+ else
30
+ case rand(2)
31
+ when 0
32
+ Name.first_name.gsub(/\W/, '').downcase
33
+ when 1
34
+ parts = [Name.first_name, Name.last_name].map { |n| n.gsub(/\W/, '') }
35
+ parts = parts.join(%w(. _).sample)
36
+ parts.downcase
37
+ end
38
+ end
39
+ end
40
+
41
+ def email_domain
42
+ "#{host}"
43
+ end
44
+
45
+ def host
46
+ HOSTS.sample
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,29 @@
1
+ # encoding: utf-8
2
+
3
+ module ZFaker
4
+ # Name Module
5
+ module Name
6
+ extend ModuleUtils
7
+ extend self
8
+
9
+ @names = []
10
+
11
+ def name(first = nil, last = nil)
12
+ case [first.nil?, last.nil?]
13
+ when [true, true] then unique_sample(@names) { "#{first_name} #{last_name}" }
14
+ when [false, true] then unique_sample(@names) { "#{first} #{last_name}" }
15
+ when [true, false] then unique_sample(@names) { "#{first_name} #{last}" }
16
+ when [false, false] then unique_sample(@names) { "#{first} #{last}" }
17
+ else fail
18
+ end
19
+ end
20
+
21
+ def first_name
22
+ FIRST_NAMES.sample
23
+ end
24
+
25
+ def last_name
26
+ LAST_NAMES.sample
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,48 @@
1
+ module ZFaker
2
+ # Module ArrayUtils
3
+ module ArrayUtils
4
+ def self.const_array(argument)
5
+ array = argument.is_a?(Array) ? argument : argument.to_a
6
+ array.extend ArrayUtils
7
+ freeze_all(array)
8
+ end
9
+
10
+ def self.random_pick(array, n)
11
+ warn '[ArrayUtils.random_pick] is deprecated. Please use the Array#sample method'
12
+ array.sample(n)
13
+ end
14
+
15
+ def self.rand(array)
16
+ warn '[ArrayUtils.rand] is deprecated. Please use the Array#sample method'
17
+ array.sample
18
+ end
19
+
20
+ def self.freeze_all(array)
21
+ array.each(&:freeze)
22
+ array.freeze
23
+ array
24
+ end
25
+
26
+ def self.shuffle(array)
27
+ array.sort_by { Kernel.rand }
28
+ end
29
+
30
+ def random_pick(n)
31
+ warn '[ArrayUtils#random_pick] is deprecated. Please use the Array#sample method'
32
+ sample(n)
33
+ end
34
+
35
+ def rand
36
+ warn '[ArrayUtils#rand] is deprecated. Please use the Array#sample method'
37
+ sample
38
+ end
39
+
40
+ def freeze_all
41
+ ArrayUtils.freeze_all(self)
42
+ end
43
+
44
+ def shuffle
45
+ ArrayUtils.shuffle(self)
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,70 @@
1
+ require_relative './array_utils'
2
+
3
+ module ZFaker
4
+ # Module ModuleUtils
5
+ module ModuleUtils
6
+ def k(arg) ZFaker::ArrayUtils.const_array(arg)
7
+ end
8
+
9
+ def const_missing(const_name)
10
+ if const_name =~ /[a-z]/ # Not a constant, probably a class/module name.
11
+ super const_name
12
+ else
13
+ mod_name = ancestors.first.to_s.split('::').last
14
+ data_path = "#{ZFaker::BASE_LIB_PATH}/zfaker/data/#{underscore(mod_name)}/#{underscore(const_name.to_s)}"
15
+ reader = k File.read(data_path).split("\n")
16
+ arrout = []
17
+ reader.each do |x|
18
+ cut = x.split(' ')
19
+ if cut.size > 1 && cut[0].integer?
20
+ weight = cut[0].to_i
21
+ element = cut[1..-1].join(' ')
22
+ element = '' if element == '<blank>'
23
+ else
24
+ weight = 1
25
+ element = cut[0..-1].join(' ')
26
+ end
27
+ weight.times { arrout.push(element) }
28
+ end
29
+ const_set const_name, arrout
30
+ arrout
31
+ end
32
+ end
33
+
34
+ def underscore(string)
35
+ string.gsub(/::/, '/')
36
+ .gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
37
+ .gsub(/([a-z\d])([A-Z])/, '\1_\2')
38
+ .tr('-', '_')
39
+ .downcase
40
+ end
41
+
42
+ def unique_sample(arr)
43
+ sample = ''
44
+ collisions = 0
45
+ loop do
46
+ sample = yield
47
+ break unless arr.include? sample
48
+ collisions += 1
49
+ fail 'Too Many Collisions: ' + collisions.to_s if collisions > (arr.size + 50) * 10
50
+ end
51
+ arr.push sample
52
+ sample
53
+ end
54
+ end
55
+ end
56
+
57
+ # String Class
58
+ class String
59
+ def integer?
60
+ [ # In descending order of likeliness:
61
+ /^[-+]?[1-9]([0-9]*)?$/, # decimal
62
+ /^0[0-7]+$/, # octal
63
+ /^0x[0-9A-Fa-f]+$/, # hexadecimal
64
+ /^0b[01]+$/ # binary
65
+ ].each do |match_pattern|
66
+ return true if self =~ match_pattern
67
+ end
68
+ false
69
+ end
70
+ end
data/lib/zfaker.rb ADDED
@@ -0,0 +1,34 @@
1
+ # ZFaker Module
2
+ module ZFaker
3
+ require_relative 'zfaker/utils/array_utils'
4
+ require_relative 'zfaker/utils/module_utils'
5
+
6
+ extend ModuleUtils
7
+
8
+ BASE_LIB_PATH = File.expand_path('..', __FILE__)
9
+
10
+ LETTERS = [*'a'..'z']
11
+
12
+ HEX = %w(0 1 2 3 4 5 6 7 8 9 A B C D E F)
13
+
14
+ def self.hexify(*masks)
15
+ masks.flatten.sample.gsub(/#/) { HEX.sample }
16
+ end
17
+
18
+ def self.numerify(*masks)
19
+ masks.flatten.sample.gsub(/#/) { rand(10).to_s }
20
+ end
21
+
22
+ def self.letterify(*masks)
23
+ masks.flatten.sample.gsub(/\?/) { LETTERS.sample }
24
+ end
25
+
26
+ def self.bothify(masks)
27
+ letterify(numerify(masks))
28
+ end
29
+
30
+ # Load all constants.
31
+ Dir["#{BASE_LIB_PATH}/zfaker/*.rb"].sort.each do |f|
32
+ require_relative "zfaker/#{File.basename(f, '.rb')}"
33
+ end
34
+ end