dohruby 0.1.9 → 0.1.10

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -31,5 +31,5 @@
31
31
  * add to_sql, unquoted to mysql convenience include
32
32
  * change Handle::query failure log level from fatal to error
33
33
  * remove useless exception handling in mysql/database_creator
34
-
35
-
34
+ *0.1.10* (April 18th, 2008)
35
+ * added new library: DohData - for random human (name, email, address) data generation
@@ -0,0 +1,47 @@
1
+ module DohData
2
+
3
+ def self.random_characters(count, values_string)
4
+ retval = ''
5
+ count.times {retval += values_string.slice(rand(values_string.size), 1)}
6
+ retval
7
+ end
8
+
9
+ def self.random_letters(count)
10
+ random_characters(count, 'abcdefghijklmnopqrstuvwxyz')
11
+ end
12
+
13
+ def self.random_digits(count)
14
+ random_characters(count, '0123456789')
15
+ end
16
+
17
+ def self.random_alnum(count)
18
+ random_characters(count, 'abcdefghijklmnopqrstuvwxyz0123456789')
19
+ end
20
+
21
+ def self.random_range(min, max, multiplier = 1)
22
+ (rand(max + 1 - min) + min) * multiplier
23
+ end
24
+
25
+ def self.random_array_element(array)
26
+ array[rand(array.size)]
27
+ end
28
+
29
+ def self.random_element(*args)
30
+ flat = args.flatten
31
+ flat[rand(flat.size)]
32
+ end
33
+
34
+ def self.random_bool
35
+ random_element(true, false)
36
+ end
37
+
38
+ def self.random_amount(max, multiplier = 1)
39
+ (rand(max) + 1) * multiplier
40
+ end
41
+
42
+ def self.random_percent(percent)
43
+ rand(100) < percent
44
+ end
45
+
46
+ end
47
+
@@ -0,0 +1,132 @@
1
+ module DohData
2
+
3
+ @@last_names = \
4
+ ['smith','johnson','williams','jones','brown','davis','miller','wilson','moore','taylor','anderson','thomas','jackson','white','harris' \
5
+ ,'martin','thompson','garcia','robinson','clark','lewis','lee','walker','hall','allen','young' \
6
+ ,'king','wright','hill','scott','green','adams','baker','nelson','carter','mitchell','roberts','turner' \
7
+ ,'phillips','campbell','parker','evans','edwards','collins','stewart','morris','rogers','reed','cook','morgan','bell','murphy' \
8
+ ,'bailey','rivera','cooper','richardson','cox','howard','ward','torres','peterson','gray','james','watson','brooks','kelly','sanders' \
9
+ ,'price','bennett','wood','barnes','ross','henderson','coleman','jenkins','perry','powell','long','patterson','hughes','flores','washington' \
10
+ ,'butler','simmons','foster','bryant','alexander','russell','griffin','hayes','myers','ford','hamilton','graham','sullivan' \
11
+ ,'wallace','woods','cole','west','jordan','owens','reynolds','fisher','ellis','harrison','gibson','mcdonald','marshall' \
12
+ ,'murray','freeman','wells','webb','simpson','stevens','tucker','porter','hunter','hicks','crawford','henry','boyd','mason','morales','kennedy' \
13
+ ,'warren','dixon','ramos','reyes','burns','gordon','shaw','holmes','rice','robertson','hunt','black','daniels','palmer','mills','nichols','grant' \
14
+ ,'knight','ferguson','rose','stone','hawkins','dunn','perkins','hudson','spencer','gardner','stephens','payne','pierce','berry','matthews' \
15
+ ,'arnold','wagner','willis','ray','watkins','olson','carroll','duncan','snyder' \
16
+ ]
17
+
18
+ @@first_names = \
19
+ ['james','john','robert','michael','william','david','richard','charles','joseph','thomas','christopher','daniel','paul','mark','donald','george' \
20
+ ,'kenneth','steven','edward','brian','ronald','anthony','kevin','jason','matthew','gary','timothy','jose','larry','jeffrey','frank','scott','eric' \
21
+ ,'stephen','andrew','raymond','gregory','joshua','jerry','dennis','walter','patrick','peter','harold','douglas','henry','carl','arthur','ryan' \
22
+ ,'roger','joe','juan','jack','albert','jonathan','justin','terry','gerald','keith','samuel','willie','ralph','lawrence','nicholas','roy','benjamin' \
23
+ ,'bruce','brandon','adam','harry','fred','wayne','billy','steve','louis','jeremy','aaron','randy','howard','eugene','carlos','russell','bobby','victor' \
24
+ ,'martin','ernest','phillip','todd','jesse','craig','alan','shawn','clarence','sean','philip','chris','johnny','earl','jimmy','antonio','danny','bryan' \
25
+ ,'tony','luis','mike','stanley','leonard','nathan','dale','manuel','rodney','curtis','norman','allen','marvin','vincent','glenn','jeffery','travis' \
26
+ ,'jeff','chad','jacob','lee','alfred','kyle','francis','bradley','herbert','frederick','ray','joel','edwin','don','eddie','ricky','troy' \
27
+ ,'randall','barry','alexander','bernard','mario','leroy','francisco','marcus','micheal','theodore','clifford','oscar','jay','jim','tom','calvin' \
28
+ ,'alex','jon','mary','patricia','linda','barbara','elizabeth','jennifer','maria','susan','margaret','dorothy','lisa','nancy','karen','betty','helen' \
29
+ ,'sandra','donna','carol','ruth','sharon','michelle','laura','sarah','kimberly','deborah','jessica','shirley','cynthia','angela','melissa','brenda' \
30
+ ,'amy','anna','rebecca','virginia','kathleen','pamela','martha','debra','amanda','stephanie','carolyn','christine','marie','janet','catherine','frances' \
31
+ ,'ann','joyce','diane','alice','julie','heather','teresa','doris','gloria','evelyn','jean','cheryl','mildred','katherine','joan','ashley','judith' \
32
+ ,'rose','janice','kelly','nicole','judy','christina','kathy','theresa','beverly','denise','tammy','irene','jane','lori','rachel','marilyn','andrea' \
33
+ ,'kathryn','louise','sara','anne','jacqueline','wanda','bonnie','julia','ruby','lois','tina','phyllis','norma','paula','diana','annie','lillian','emily','robin' \
34
+ ,'peggy','crystal','gladys','rita','dawn','connie','florence','tracy','edna','tiffany','carmen','rosa','cindy','grace','wendy','victoria','edith','kim' \
35
+ ,'sherry','sylvia','josephine','thelma','shannon','sheila','ethel','ellen','elaine','marjorie','carrie','charlotte','monica','esther','pauline','emma' \
36
+ ,'juanita','anita','rhonda','hazel','amber','eva','debbie','april','leslie','clara','lucille','jamie','joanne','eleanor','valerie','danielle','megan' \
37
+ ,'alicia','suzanne','michele','gail','bertha','darlene','veronica','jill','erin','geraldine','lauren','cathy','joann','lorraine','lynn','sally','regina' \
38
+ ,'erica','beatrice','dolores','bernice','audrey','yvonne','annette','june','samantha','marion','dana','stacy','ana','renee','ida','vivian','roberta' \
39
+ ,'holly','brittany','melanie','loretta','yolanda','jeanette','laurie','katie','kristen','vanessa','alma','sue','elsie','beth','jeanne','vicki','carla' \
40
+ ,'tara','rosemary','eileen','terri','gertrude','lucy','tonya'
41
+ ]
42
+
43
+ @@ssn_group_order = [1,3,5,7,9,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98,2,4,6,8,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,53,55,57,59,61,63,65,67,69,71,73,75,77,79,81,83,85,87,89,91,93,95,97,99]
44
+
45
+ @@ssn_highgroups = \
46
+ [[1,[752,753]] \
47
+ ,[3,[588,761,762,763]] \
48
+ ,[4,[2,3,222,349,350,351,352,353,354,355,356,357,358,359,360,361]] \
49
+ ,[5,[756,757,758,759,760]] \
50
+ ,[6,[1,7,221,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348]] \
51
+ ,[7,[691,692,693,694,695,696,697,698,699,751]] \
52
+ ,[8,[4,5,6,48,49,637,638,639,640,641,642,643,644,645]] \
53
+ ,[9,[732,733,750]] \
54
+ ,[10,[727,729,730,731]] \
55
+ ,[11,[40,41,42,43,44,45,46,47,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,627,628,629,630,631,632,633,634,635,636]] \
56
+ ,[12,[678,679,682,683,684,685,686,687,688,689,690]] \
57
+ ,[13,[268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285]] \
58
+ ,[14,[661,662,663,664,665,676,677,681,728]] \
59
+ ,[16,[659,660]] \
60
+ ,[17,[144,145,146,147,148,149,150,151,152,153,154,155,156,157,158]] \
61
+ ,[18,[700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,725,726]] \
62
+ ,[19,[135,136,137,138,139,140,141,142,143]] \
63
+ ,[21,[447,448]] \
64
+ ,[23,[440,441,442,443,444,445,446,496,497,498,499,500]] \
65
+ ,[24,[658]] \
66
+ ,[25,[486,487,488,489,490,491,492,493,494,495]] \
67
+ ,[26,[654,655,656,657]] \
68
+ ,[27,[393,394,395,396,397,398,399,509,510,511,512,513,514,515]] \
69
+ ,[28,[724]] \
70
+ ,[29,[387,388,389,390,391,392]] \
71
+ ,[31,[304,305,306,307,308,309,310,311,312,313,314,315,316,317]] \
72
+ ,[32,[674,675]] \
73
+ ,[33,[303,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,501,502]] \
74
+ ,[34,[667,668,669,670,671,672,673]] \
75
+ ,[35,[362,363,364,485]] \
76
+ ,[37,[478,479,480,481,482,483,484,580]] \
77
+ ,[39,[504]] \
78
+ ,[41,[503]] \
79
+ ,[43,[517,579]] \
80
+ ,[44,[648,649,652,653]] \
81
+ ,[45,[516,577,578]] \
82
+ ,[46,[650,651]] \
83
+ ,[49,[470,471,472,473,474,475,476,477,574]] \
84
+ ,[51,[468,469,506,507,508]] \
85
+ ,[53,[232,233,234,235,236,505,520]] \
86
+ ,[61,[416,417,418,419,420,421,422,423,424,532,533,534,535,536,537,538,539,586]] \
87
+ ,[62,[768,769,770,771,772]] \
88
+ ,[63,[531,615,616,617,618,619,620,621,622,623,624,625,626]] \
89
+ ,[64,[766,767]] \
90
+ ,[65,[407,602,603,604,605,606,607,608,609,610,611,612,613,614]] \
91
+ ,[67,[400,401,402,403,404,405,406]] \
92
+ ,[70,[39]] \
93
+ ,[72,[35,36,37,38]] \
94
+ ,[73,[540,541,542,543,544]] \
95
+ ,[77,[218,219,220,518,519]] \
96
+ ,[79,[212,213,214,215,216,217]] \
97
+ ,[80,[764,765]] \
98
+ ,[82,[180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,599]] \
99
+ ,[84,[159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,596,597,598]] \
100
+ ,[88,[28,29,30,31,32,33,34]] \
101
+ ,[90,[8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,680]] \
102
+ ,[94,[114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,647]] \
103
+ ,[96,[50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,646]] \
104
+ ,[99,[223,224,225,226,227,228,229,230,231,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,408,409,410,411,412,413,414,415,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,521,522,523,524,525,526,527,528,529,530,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,575,576,581,582,583,584,585,587,589,590,591,592,593,594,595,600,601]] \
105
+ ]
106
+
107
+ @@email_domains = \
108
+ ['yahoo', 'gmail', 'aol', 'hotmail', 'gmail', 'inbox', 'juno', 'email', 'fastmail', 'slowmail', 'netmail', 'gmail','xmission','earthlink','secret','blah' \
109
+ ,'geekland','techworld','lavaland','moonsarecool','excite','bellsouth','netzero','sbcglobal','netscape','charter','hushmail','comcast','msn','verizon','att' \
110
+ ,'peoplepc'
111
+ ]
112
+
113
+ @@email_tlds = ['com','net','org','info','biz','tv','us','name','cc','cn','com.cn','net.cn','org.cn','ws']
114
+
115
+ @@cities = \
116
+ ['Tacoma','Montgomery','Tucson','Riverside','Bakersfield','Austin','Portland','Minneapolis','Baton Rouge','Stockton','St Louis','San Antonio' \
117
+ ,'Oakland','Albuquerque','Seattle','Fresno','Birmingham','San Francisco','Long Beach','Dallas','Philadelphia','Phoenix','San Jose','Milwaukee' \
118
+ ,'Kansas City','Sacramento','Houston','San Diego','Los Angeles'
119
+ ]
120
+
121
+ @@street_names = ['Park','Main','Oak','Pine','Oak','Pine','Maple','Cedar','Elm','Washington','Lake','Hill','Sunset','Broadway','Harrison','Higgins','Lincoln']
122
+
123
+ @@street_types = ['Ave','Blvd','Ctr','Cir','Ct','Dr','Grv','Jct','Ln','Mnr','Mtn','Pkwy','Sq','St']
124
+
125
+ @@bank_routing_numbers = \
126
+ ['065000090','081000032','091000019','111000025','111900659','121000358','121042882','121122676','122000247','122000496','122000661','122101706' \
127
+ ,'125000024','256074974','291070001','322271627','325070760','303986313','296073414'
128
+ ]
129
+
130
+ @@employers = ['Google', 'Geeks R Us', 'Home Depot', 'Wal-Mart', 'Shopko', "Wendy's", "Staples", "E-Bay", "McDonald's", "Computer World", "OfficeMax"]
131
+
132
+ end
@@ -0,0 +1,86 @@
1
+ require 'date'
2
+ require 'doh/data/bulk'
3
+
4
+ module DohData
5
+
6
+ def self.random_first_name
7
+ random_element(@@first_names)
8
+ end
9
+
10
+ def self.random_last_name
11
+ random_element(@@last_names)
12
+ end
13
+
14
+ def self.random_full_name
15
+ random_first_name + ' ' + random_last_name
16
+ end
17
+
18
+ def self.random_email(first_name = nil, last_name = nil)
19
+ if first_name || last_name
20
+ name = ''
21
+ name += first_name.slice(0, random_element(1, 1, 1, 1, first_name.size)) if first_name
22
+ name += random_element('', '.') if first_name && last_name
23
+ name += last_name.slice(0, random_element(1, last_name.size, last_name.size)) if last_name
24
+ name += random_range(11, 358).to_s
25
+ else
26
+ name = random_letters(random_range(3, 12))
27
+ end
28
+ name + '@' + random_element(@@email_domains) + '.' + random_element(@@email_tlds)
29
+ end
30
+
31
+ def self.random_ssn
32
+ random_row = random_array_element(@@ssn_highgroups)
33
+ highgroup = random_row[0]
34
+ area = random_element(random_row[1])
35
+ highgroup_index = @@ssn_group_order.index(highgroup)
36
+ possible_groups = @@ssn_group_order.slice(0..highgroup_index)
37
+ group = random_element(possible_groups)
38
+ area.to_s.rjust(3, '0') + group.to_s.rjust(2, '0') + random_range(1, 9999).to_s.rjust(4, '0')
39
+ end
40
+
41
+ def self.random_city
42
+ random_element(@@cities)
43
+ end
44
+
45
+ def self.random_street_name
46
+ random_element(@@street_names)
47
+ end
48
+
49
+ def self.random_street_type
50
+ random_element(@@street_types)
51
+ end
52
+
53
+ def self.random_street_number
54
+ weight = rand(10)
55
+ if weight > 8
56
+ rand(50000)
57
+ elsif weight > 5
58
+ rand(10000)
59
+ elsif weight > 3
60
+ rand(1000)
61
+ else
62
+ rand(100)
63
+ end
64
+ end
65
+
66
+ def self.random_street
67
+ random_street_number.to_s + ' ' + random_element('N','E','S','W') + ' ' + random_street_name + ' ' + random_street_type
68
+ end
69
+
70
+ def self.random_birthday
71
+ Date.new(1928 + rand(56), rand(12) + 1, rand(27) + 1)
72
+ end
73
+
74
+ def self.random_bank_routing_number
75
+ random_element(@@bank_routing_numbers)
76
+ end
77
+
78
+ def self.random_bank_account_number(max_size = 17)
79
+ random_digits(random_range(5, max_size))
80
+ end
81
+
82
+ def self.random_employer_name
83
+ random_element(@@employers)
84
+ end
85
+
86
+ end
data/lib/doh/data.rb ADDED
@@ -0,0 +1,2 @@
1
+ require 'doh/data/basic'
2
+ require 'doh/data/human'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dohruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.9
4
+ version: 0.1.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Makani & Kem Mason
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-04-17 00:00:00 -06:00
12
+ date: 2008-04-18 00:00:00 -06:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -42,6 +42,11 @@ files:
42
42
  - lib/doh/core/dir.rb
43
43
  - lib/doh/core/string.rb
44
44
  - lib/doh/core.rb
45
+ - lib/doh/data
46
+ - lib/doh/data/basic.rb
47
+ - lib/doh/data/bulk.rb
48
+ - lib/doh/data/human.rb
49
+ - lib/doh/data.rb
45
50
  - lib/doh/logger
46
51
  - lib/doh/logger/direct_scheduler.rb
47
52
  - lib/doh/logger/event.rb