dohruby 0.1.9 → 0.1.10

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 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