dummy 0.5
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +33 -0
- data/LICENSE +20 -0
- data/README.md +79 -0
- data/lib/dummy.rb +161 -0
- data/lib/dummy/address.rb +144 -0
- data/lib/dummy/company.rb +139 -0
- data/lib/dummy/geolocation.rb +13 -0
- data/lib/dummy/internet.rb +50 -0
- data/lib/dummy/lorem.rb +58 -0
- data/lib/dummy/name.rb +375 -0
- data/lib/dummy/phone_number.rb +30 -0
- data/lib/generators/dummy_generator.rb +185 -0
- data/lib/generators/templates/dummy.rake +13 -0
- metadata +93 -0
data/CHANGELOG.md
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
## 0.1 (July 13, 2010)
|
2
|
+
|
3
|
+
Features:
|
4
|
+
- added generation of dummy data based on a Rails 3 application
|
5
|
+
|
6
|
+
|
7
|
+
## 0.2 (July 17, 2010)
|
8
|
+
|
9
|
+
Features:
|
10
|
+
- moved data generation into a generator
|
11
|
+
- added growth-ratio and base-amount options
|
12
|
+
|
13
|
+
|
14
|
+
## 0.3 (July 21, 2010)
|
15
|
+
|
16
|
+
Features:
|
17
|
+
- added rake task to import the generated dummy data in the target application
|
18
|
+
|
19
|
+
|
20
|
+
## 0.4 (July 24, 2010)
|
21
|
+
|
22
|
+
Features:
|
23
|
+
- improved data generation (which tries to be smart, RIP lorem ipsum)
|
24
|
+
|
25
|
+
|
26
|
+
## 0.5 (July 24, 2010)
|
27
|
+
|
28
|
+
Features:
|
29
|
+
- added tests for the data generators and rails generator
|
30
|
+
- fixed multiple bugs and added small improvements
|
31
|
+
- added documentation
|
32
|
+
|
33
|
+
|
data/LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2010 Gonçalo Silva
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,79 @@
|
|
1
|
+
# Dummy
|
2
|
+
|
3
|
+
Dummy generates dummy data for your Rails 3 application and allows you to import it.
|
4
|
+
|
5
|
+
## Description
|
6
|
+
|
7
|
+
Dummy generates data for your application by inspecting your models and their associations. It tries to generate the correct type of data for each column by guessing what it is from its name. Finally, it allows you to import the generated data into the database.
|
8
|
+
|
9
|
+
## Installation
|
10
|
+
|
11
|
+
$ gem install dummy
|
12
|
+
|
13
|
+
## Usage
|
14
|
+
|
15
|
+
Add the following to the Gemfile of your Rails 3 application:
|
16
|
+
gem "dummy"
|
17
|
+
|
18
|
+
Now you have access to the generator:
|
19
|
+
rails generate dummy:data
|
20
|
+
|
21
|
+
You can also change the base amount of records and the growth ratio (what these mean exactly is explained latter on):
|
22
|
+
rails generate dummy:data --base-amount=5 --growth-ratio=1.5
|
23
|
+
|
24
|
+
The fixtures are stored in _test/dummy/_ while a rake file is placed in _lib/tasks/dummy.rake_. It allows you to import the generated data into the database:
|
25
|
+
RAILS_ENV="dummy" rake dummy:data:import
|
26
|
+
|
27
|
+
Don't forget to change RAILS_ENV to whatever is appropriate for you (and is configured under databases.yml). Your database doesn't need to be empty.
|
28
|
+
|
29
|
+
Another less conventional way of using dummy is to directly use its magic data generation:
|
30
|
+
Dummy.magic_data(field, type)
|
31
|
+
|
32
|
+
Example:
|
33
|
+
require "dummy"
|
34
|
+
|
35
|
+
Dummy.magic_data("mail", :string) => "nyasia@hotmail.com"
|
36
|
+
Dummy.magic_data("company_motto", :string) => "engineer intuitive functionalities"
|
37
|
+
Dummy.magic_data("state", :string) => "Louisiana"
|
38
|
+
Dummy.magic_data("lat", :float) => -86.718683637
|
39
|
+
Dummy.magic_data("phone", :integer) => "9462876293"
|
40
|
+
|
41
|
+
|
42
|
+
## More information
|
43
|
+
|
44
|
+
### Smart data
|
45
|
+
|
46
|
+
Dummy tries to understand your database columns and generates data accordingly, instead of dumping "Lorem ipsum" all over the place.
|
47
|
+
|
48
|
+
For instance, if you have a field called _company\_name_, it will generate a company name. If you have a field called _awesome\_postal\_code_, it will generate a valid ZIP Code. If you have a field called _longitude_, it will generate a valid longitude. And so on. You get the picture.
|
49
|
+
|
50
|
+
Dummy cares about associations. It will create random associations between the automatically generated records.
|
51
|
+
|
52
|
+
### Smart amounts of data
|
53
|
+
|
54
|
+
Dummy is aware that the amount of records that each model has in real world applications is different. For this reason, it will analyze your model associations to try to make a somewhat accurate estimation of the expected amount of records.
|
55
|
+
|
56
|
+
To illustrate this, consider an application with models for _Child_, _Parent_ and _GrandParent_. If the base amount is 10, the growth ratio is 2.0, and the models look like the following:
|
57
|
+
|
58
|
+
class GrandParent < ActiveRecord::Base
|
59
|
+
has_many :parents
|
60
|
+
end
|
61
|
+
|
62
|
+
class Parent < ActiveRecord::Base
|
63
|
+
belongs_to :grand_parent
|
64
|
+
has_many :children
|
65
|
+
end
|
66
|
+
|
67
|
+
class Child < ActiveRecord::Base
|
68
|
+
belongs_to :parent
|
69
|
+
end`
|
70
|
+
|
71
|
+
The generator will create dummy data for 10 _GrandParents_, 20 _Parents_ and 40 _Children_.
|
72
|
+
|
73
|
+
### Caveats
|
74
|
+
|
75
|
+
Dummy has a few caveats which are on the TODO list. Those are:
|
76
|
+
* It is an English speaking gem. It will not be smart at all if your column is named _telefone_ (Portuguese for _phone_) or if you want a zip code from outside the US.
|
77
|
+
* It will generate valid emails, latitudes, street addresses, etc, but it doesn't care about your model validations.
|
78
|
+
|
79
|
+
Copyright (c) 2010 Gonçalo Silva
|
data/lib/dummy.rb
ADDED
@@ -0,0 +1,161 @@
|
|
1
|
+
require "rubygems"
|
2
|
+
require "dummy/address"
|
3
|
+
require "dummy/company"
|
4
|
+
require "dummy/internet"
|
5
|
+
require "dummy/lorem"
|
6
|
+
require "dummy/name"
|
7
|
+
require "dummy/phone_number"
|
8
|
+
require "dummy/geolocation"
|
9
|
+
require "generators/dummy_generator"
|
10
|
+
|
11
|
+
module Dummy
|
12
|
+
class << self
|
13
|
+
|
14
|
+
def numerify(number_string)
|
15
|
+
number_string.gsub(/#/) { rand(10).to_s }
|
16
|
+
end
|
17
|
+
|
18
|
+
def letterify(letter_string)
|
19
|
+
letter_string.gsub(/\?/) { ("a".."z").to_a.rand }
|
20
|
+
end
|
21
|
+
|
22
|
+
def bothify(string)
|
23
|
+
letterify(numerify(string))
|
24
|
+
end
|
25
|
+
|
26
|
+
def magic_data(field, type)
|
27
|
+
case type
|
28
|
+
when :string, :text then magic_string(field, type)
|
29
|
+
when :integer then magic_integer(field)
|
30
|
+
when :date, :datetime then magic_date(field)
|
31
|
+
when :decimal, :float then magic_float(field)
|
32
|
+
when :boolean then rand(2)
|
33
|
+
else false
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
private
|
38
|
+
|
39
|
+
def magic_string(field, type = :string)
|
40
|
+
case field
|
41
|
+
when /neighbou?rhood|neighbou?rship|district|vicinity/ then
|
42
|
+
Dummy::Address.neighborhood
|
43
|
+
when /phone/ then
|
44
|
+
case field
|
45
|
+
when /short|abbreviation|abbr|small/ then
|
46
|
+
Dummy::PhoneNumber.phone_number_short
|
47
|
+
else
|
48
|
+
Dummy::PhoneNumber.phone_number
|
49
|
+
end
|
50
|
+
when /state/ then
|
51
|
+
case field
|
52
|
+
when /short|abbreviation|abbr|small/ then
|
53
|
+
Dummy::Address.us_state_short
|
54
|
+
else
|
55
|
+
Dummy::Address.us_state
|
56
|
+
end
|
57
|
+
when /zip|postal/ then
|
58
|
+
Dummy::Address.zip_code
|
59
|
+
when /city|town/ then
|
60
|
+
Dummy::Address.city
|
61
|
+
when /mail/ then
|
62
|
+
Dummy::Internet.email
|
63
|
+
when /password|pass|pwd/ then
|
64
|
+
Dummy::Internet.password
|
65
|
+
when /url|uri|href|link|page|site/ then
|
66
|
+
Dummy::Internet.url
|
67
|
+
when /address|residence|residency/ then
|
68
|
+
Dummy::Address.street_address
|
69
|
+
when /road|street/ then
|
70
|
+
Dummy::Address.street_name
|
71
|
+
when /user|usr|login/ then
|
72
|
+
Dummy::Internet.username
|
73
|
+
when /name/ then
|
74
|
+
case field
|
75
|
+
when /company|enterprise|business|firm|school|college/ then
|
76
|
+
Dummy::Company.name
|
77
|
+
when /first|initial|primary/ then
|
78
|
+
Dummy::Name.first_name
|
79
|
+
when /last|latter|family|sur/ then
|
80
|
+
Dummy::Name.last_name
|
81
|
+
else
|
82
|
+
Dummy::Name.name
|
83
|
+
end
|
84
|
+
when /company|enterprise|business|firm|school|college/ then
|
85
|
+
case field
|
86
|
+
when /motto|description|slogan|lemma|punch|line/ then
|
87
|
+
case rand(2)
|
88
|
+
when 0 then Dummy::Company.catch_phrase
|
89
|
+
when 1 then Dummy::Company.bs
|
90
|
+
end
|
91
|
+
else
|
92
|
+
Dummy::Company.name
|
93
|
+
end
|
94
|
+
when /^(.*[-_:+ ])*lat/ then
|
95
|
+
Dummy::Geolocation.lat.to_s
|
96
|
+
when /^(.*[-_:+ ])*(lon|lng)/ then
|
97
|
+
Dummy::Geolocation.lng.to_s
|
98
|
+
else
|
99
|
+
case type
|
100
|
+
when :string then
|
101
|
+
case rand(2)
|
102
|
+
when 0 then Dummy::Lorem.sentence
|
103
|
+
when 1 then Dummy::Lorem.sentences
|
104
|
+
end
|
105
|
+
when :text then
|
106
|
+
case rand(2)
|
107
|
+
when 0 then Dummy::Lorem.paragraph
|
108
|
+
when 1 then Dummy::Lorem.paragraphs
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
114
|
+
def magic_integer(field)
|
115
|
+
case field
|
116
|
+
when /phone/
|
117
|
+
p = Dummy::PhoneNumber.phone_number_short.gsub("-", "")
|
118
|
+
(p = p.to_i + 1000000000) if p[0] == "0"
|
119
|
+
p
|
120
|
+
when /zip|postal/
|
121
|
+
z = Dummy::Address.zip_code
|
122
|
+
(z = z.to_i + 10000) if z[0] == "0"
|
123
|
+
z
|
124
|
+
when /street|road|address|residence|residency/
|
125
|
+
Dummy.numerify(("#" * rand(3)) << "###").to_i
|
126
|
+
else
|
127
|
+
rand(1000)
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
131
|
+
def magic_date(field)
|
132
|
+
difference = case field
|
133
|
+
when /_on$/
|
134
|
+
rand(365*2)
|
135
|
+
when /birth/
|
136
|
+
365 + rand(365 * 50)
|
137
|
+
else
|
138
|
+
0
|
139
|
+
end
|
140
|
+
(Date.today - difference).to_s
|
141
|
+
end
|
142
|
+
|
143
|
+
def magic_float(field)
|
144
|
+
case field
|
145
|
+
when /^(.*[-_:+ ])*lat/ then
|
146
|
+
Dummy::Geolocation.lat
|
147
|
+
when /^(.*[-_:+ ])*(lon|lng)/ then
|
148
|
+
Dummy::Geolocation.lng
|
149
|
+
else
|
150
|
+
Dummy.numerify(("#" * rand(4)) << "#.#" << ("#" * rand(8))).to_f
|
151
|
+
end
|
152
|
+
end
|
153
|
+
end
|
154
|
+
end
|
155
|
+
|
156
|
+
class Array
|
157
|
+
def rand
|
158
|
+
self[super(self.length)]
|
159
|
+
end
|
160
|
+
end
|
161
|
+
|
@@ -0,0 +1,144 @@
|
|
1
|
+
module Dummy
|
2
|
+
module Address
|
3
|
+
extend self
|
4
|
+
|
5
|
+
def zip_code
|
6
|
+
Dummy.numerify ZIP_FORMATS.rand
|
7
|
+
end
|
8
|
+
|
9
|
+
def us_state
|
10
|
+
STATE.rand
|
11
|
+
end
|
12
|
+
|
13
|
+
def us_state_short
|
14
|
+
STATE_ABBR.rand
|
15
|
+
end
|
16
|
+
|
17
|
+
def city
|
18
|
+
CITIES.rand
|
19
|
+
end
|
20
|
+
|
21
|
+
def street_name
|
22
|
+
case rand(2)
|
23
|
+
when 0 then "#{Name.last_name} #{street_suffix}"
|
24
|
+
when 1 then "#{Name.first_name} #{street_suffix}"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def street_address
|
29
|
+
str = ("#" * rand(3)) << "### #{street_name}"
|
30
|
+
|
31
|
+
Dummy.numerify(str)
|
32
|
+
end
|
33
|
+
|
34
|
+
def neighborhood
|
35
|
+
NEIGHBORHOOD.rand
|
36
|
+
end
|
37
|
+
|
38
|
+
private
|
39
|
+
|
40
|
+
def street_suffix
|
41
|
+
STREET_SUFFIX.rand
|
42
|
+
end
|
43
|
+
|
44
|
+
ZIP_FORMATS = ["#####", "#####-####"]
|
45
|
+
|
46
|
+
STATE = ["Alabama", "Alaska", "Arizona", "Arkansas",
|
47
|
+
"California", "Colorado", "Connecticut", "Delaware", "Florida",
|
48
|
+
"Georgia", "Hawaii", "Idaho", "Illinois", "Indiana", "Iowa", "Kansas",
|
49
|
+
"Kentucky", "Louisiana", "Maine", "Maryland", "Massachusetts",
|
50
|
+
"Michigan", "Minnesota", "Mississippi", "Missouri", "Montana",
|
51
|
+
"Nebraska", "Nevada", "New Hampshire", "New Jersey", "New Mexico", "New York",
|
52
|
+
"North Carolina", "North Dakota", "Ohio", "Oklahoma", "Oregon",
|
53
|
+
"Pennsylvania", "Rhode Island", "South Carolina", "South Dakota",
|
54
|
+
"Tennessee", "Texas", "Utah", "Vermont", "Virginia", "Washington",
|
55
|
+
"West Virginia", "Wisconsin", "Wyoming"]
|
56
|
+
|
57
|
+
STATE_ABBR = %w(AL AK AS AZ AR CA CO CT DE DC FM FL GA GU HI ID IL IN IA
|
58
|
+
KS KY LA ME MH MD MA MI MN MS MO MT NE NV NH NJ NM NY NC
|
59
|
+
ND MP OH OK OR PW PA PR RI SC SD TN TX UT VT VI VA WA WV
|
60
|
+
WI WY AE AA AP)
|
61
|
+
|
62
|
+
CITIES = ["New York", "Los Angeles", "Chicago", "Houston", "Phoenix", "Philadelphia",
|
63
|
+
"San Antonio", "San Diego", "Dallas", "San Jose", "Detroit", "San Francisco",
|
64
|
+
"Jacksonville", "Indianapolis", "Austin", "Columbus", "Fort Worth",
|
65
|
+
"Charlotte", "Memphis", "Boston", "Baltimore", "El Paso", "Seattle", "Denver",
|
66
|
+
"Nashville", "Milwaukee", "Washington", "Las Vegas", "Louisville", "Portland",
|
67
|
+
"Oklahoma City", "Tucson", "Atlanta", "Albuquerque", "Kansas City", "Fresno",
|
68
|
+
"Sacramento", "Long Beach", "Mesa", "Omaha", "Virginia Beach", "Miami",
|
69
|
+
"Cleveland", "Oakland", "Raleigh", "Colorado Springs", "Tulsa", "Minneapolis",
|
70
|
+
"Arlington", "Honolulu", "Wichita", "St. Louis", "New Orleans", "Tampa", "Santa Ana",
|
71
|
+
"Anaheim", "Cincinnati", "Aurora", "Bakersfield", "Toledo", "Pittsburgh",
|
72
|
+
"Riverside", "Lexington", "Stockton", "Corpus Christi", "Anchorage", "St. Paul",
|
73
|
+
"Newark", "Plano", "Buffalo", "Henderson", "Fort Wayne", "Chandler",
|
74
|
+
"Greensboro", "Lincoln", "Glendale", "St. Petersburg", "Jersey City",
|
75
|
+
"Scottsdale", "Orlando", "Madison", "Norfolk", "Birmingham", "Winston-Salem",
|
76
|
+
"Durham", "Laredo", "Lubbock", "Baton Rouge", "North Las Vegas", "Chula Vista",
|
77
|
+
"Chesapeake", "Garland", "Reno", "Hialeah", "Arlington", "Gilbert", "Irvine",
|
78
|
+
"Rochester", "Akron", "Boise", "Irving", "Fremont", "Richmond", "Spokane",
|
79
|
+
"Modesto", "Montgomery", "Yonkers", "Tacoma", "Shreveport", "Des Moines", "San Bernardino",
|
80
|
+
"Fayetteville", "Glendale", "Augusta", "Grand Rapids", "Huntington Beach",
|
81
|
+
"Newport News", "Mobile", "Little Rock", "Moreno Valley", "Columbus",
|
82
|
+
"Amarillo", "Fontana", "Oxnard", "Knoxville", "Fort Lauderdale", "Salt Lake City",
|
83
|
+
"Worcester", "Huntsville", "Brownsville", "Jackson", "Overland Park",
|
84
|
+
"Tempe", "Aurora", "Oceanside", "Tallahassee", "Providence", "Rancho Cucamonga",
|
85
|
+
"Ontario", "Chattanooga", "Santa Clarita", "Garden Grove",
|
86
|
+
"Vancouver", "Grand Prairie", "Peoria", "Sioux Falls", "Springfield", "Santa Rosa",
|
87
|
+
"Rockford", "Salem", "Springfield", "Port St. Lucie", "Cape Coral",
|
88
|
+
"Dayton", "Eugene", "Pomona", "Corona", "Alexandria", "Joliet", "Pembroke Pines",
|
89
|
+
"Paterson", "Pasadena", "Lancaster", "Hayward", "Salinas", "Hampton",
|
90
|
+
"Palmdale", "Pasadena", "Naperville", "Kansas City", "Hollywood", "Lakewood",
|
91
|
+
"Torrance", "Escondido", "Fort Collins", "Syracuse", "Bridgeport", "Orange",
|
92
|
+
"Cary", "Elk Grove", "Savannah", "Sunnyvale", "Warren", "Mesquite",
|
93
|
+
"Fullerton", "McAllen", "Columbia", "Carrollton", "Cedar Rapids", "McKinney",
|
94
|
+
"Sterling Heights", "Bellevue", "Coral Springs", "Waco", "Elizabeth", "West Valley City",
|
95
|
+
"Clarksville", "Topeka", "Hartford", "Thousand Oaks", "New Haven",
|
96
|
+
"Denton", "Concord", "Visalia", "Olathe", "El Monte", "Independence",
|
97
|
+
"Stamford", "Simi Valley", "Provo", "Killeen", "Springfield", "Abilene",
|
98
|
+
"Thornton", "Gainesville", "Evansville", "Roseville", "Charleston", "Peoria",
|
99
|
+
"Athens", "Lafayette", "Vallejo", "Lansing", "Ann Arbor", "Inglewood", "Santa Clara",
|
100
|
+
"Flint", "Victorville", "Costa Mesa", "Beaumont", "Manchester", "Miami Gardens",
|
101
|
+
"Miramar", "Norman", "Westminster", "Cambridge", "Midland", "Arvada",
|
102
|
+
"Allentown", "Elgin", "Waterbury", "Downey", "Clearwater", "Billings", "West Covina",
|
103
|
+
"Round Rock", "Murfreesboro", "Lewisville", "West Jordan", "Pueblo",
|
104
|
+
"San Buenaventura", "Lowell", "South Bend", "Fairfield", "Erie", "Rochester",
|
105
|
+
"High Point", "Richardson", "Richmond", "Burbank", "Berkeley", "Pompano Beach",
|
106
|
+
"Norwalk", "Frisco", "Columbia", "Gresham", "Daly City", "Green Bay",
|
107
|
+
"Wilmington", "Wichita Falls", "Davenport", "Antioch", "Palm Bay",
|
108
|
+
"Centennial", "Odessa", "Boulder"]
|
109
|
+
|
110
|
+
STREET_SUFFIX = %w(Alley Avenue Branch Bridge Brook Brooks
|
111
|
+
Burg Burgs Bypass Camp Canyon Cape Causeway Center Centers Circle Circles
|
112
|
+
Cliff Cliffs Club Common Corner Corners Course Court Courts Cove Coves
|
113
|
+
Creek Crescent Crest Crossing Crossroad Curve Dale Dam Divide Drive Drives
|
114
|
+
Estate Estates Expressway Extension Extensions Fall Falls Ferry
|
115
|
+
Field Fields Flat Flats Ford Fords Forest Forge Forges Fork Forks Fort
|
116
|
+
Freeway Garden Gardens Gateway Glen Glens Green Greens Grove Groves Harbor
|
117
|
+
Harbors Haven Heights Highway Hill Hills Hollow Inlet Island
|
118
|
+
Islands Isle Junction Junctions Key Keys Knoll Knolls Lake
|
119
|
+
Lakes Land Landing Lane Light Lights Loaf Lock Locks Lodge Loop
|
120
|
+
Mall Manor Manors Meadow Meadows Mews Mill Mills Mission Motorway
|
121
|
+
Mount Mountain Mountains Neck Orchard Oval Overpass Park
|
122
|
+
Parks Parkway Parkways Pass Passage Path Pike Pine Pines Place Plain Plains
|
123
|
+
Plaza Point Points Port Ports Prairie
|
124
|
+
Radial Ramp Ranch Rapid Rapids Rest Ridge Ridges River Road Roads
|
125
|
+
Route Row Rue Run Shoal Shoals Shore Shores Skyway Spring Springs
|
126
|
+
Spur Spurs Square Squares Station Stravenue
|
127
|
+
Stream Street Streets Summit Terrace
|
128
|
+
Throughway Trace Track Trafficway Trail Tunnel
|
129
|
+
Turnpike Underpass Union Unions Valley Valleys Via Viaduct View Views
|
130
|
+
Village Villages Ville Vista Walk Walks Wall Way Ways Well Wells)
|
131
|
+
|
132
|
+
NEIGHBORHOOD = ["East of Telegraph Road", "North Norridge", "Northwest Midlothian/Midlothian Country Club",
|
133
|
+
"Mott Haven/Port Morris", "Kingsbridge Heights", "Bronxdale", "Pennypack", "Bridesburg",
|
134
|
+
"Allegheny West", "Bushwick South", "Dyker Heights", "Ocean Parkway South", "Summerlin North",
|
135
|
+
"Seven Hills Area", "Greater Las Vegas National", "Phoenix", "Central Chandler", "South of Bell Road",
|
136
|
+
"River Heights", "White Plains Central", "Mount Kisco West", "Pound Ridge East", "Babylon Bayside",
|
137
|
+
"Sagaponack Seaside", "South of Lake Ave", "Far Rockaway/Bayswater", "Jamaica Estates/Holliswood",
|
138
|
+
"Murray Hill", "East Renton", "Renton West", "Auburn North", "Northwoods West", "Florissant West",
|
139
|
+
"Ladue South", "Candlewood Country Club", "West Covina East", "North East Irwindale", "Sunshine-Gardens",
|
140
|
+
"Cipriani", "Brentwood Central", "Jupiter South/Abacoa", "Sea Ranch Lakes", "Schall Circle/Lakeside Green",
|
141
|
+
"Olmsted Falls Central", "South of Lake Shore Blvd", "Gates Mills North", "White Oak South of Columbia Pike",
|
142
|
+
"Rockville East of Hungerford Dr", "Cleveland Park"]
|
143
|
+
end
|
144
|
+
end
|
@@ -0,0 +1,139 @@
|
|
1
|
+
module Dummy
|
2
|
+
module Company
|
3
|
+
extend self
|
4
|
+
|
5
|
+
def name
|
6
|
+
case rand(3)
|
7
|
+
when 0 then "#{Name.last_name} #{suffix}"
|
8
|
+
when 1 then "#{Name.last_name}-#{Name.last_name}"
|
9
|
+
when 2 then "%s, %s and %s" % [ Name.last_name, Name.last_name, Name.last_name ]
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
# Wordlist from http://www.1728.com/buzzword.htm
|
14
|
+
def catch_phrase
|
15
|
+
"#{CATCH_PRE.rand} #{CATCH_MID.rand} #{CATCH_POS.rand}"
|
16
|
+
end
|
17
|
+
|
18
|
+
# Wordlist from http://dack.com/web/bullshit.html
|
19
|
+
def bs
|
20
|
+
"#{BS_PRE.rand} #{BS_MID.rand} #{BS_POS.rand}"
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
def suffix
|
26
|
+
SUFFIXES.rand
|
27
|
+
end
|
28
|
+
|
29
|
+
CATCH_PRE = ["Adaptive", "Advanced", "Ameliorated", "Assimilated",
|
30
|
+
"Automated", "Balanced", "Business-focused", "Centralized", "Cloned",
|
31
|
+
"Compatible", "Configurable", "Cross-group", "Cross-platform",
|
32
|
+
"Customer-focused", "Customizable", "Decentralized", "De-engineered",
|
33
|
+
"Devolved", "Digitized", "Distributed", "Diverse", "Down-sized",
|
34
|
+
"Enhanced", "Enterprise-wide", "Ergonomic", "Exclusive", "Expanded",
|
35
|
+
"Extended", "Face to face", "Focused", "Front-line",
|
36
|
+
"Fully-configurable", "Function-based", "Fundamental", "Future-proofed",
|
37
|
+
"Grass-roots", "Horizontal", "Implemented", "Innovative", "Integrated",
|
38
|
+
"Intuitive", "Inverse", "Managed", "Mandatory", "Monitored",
|
39
|
+
"Multi-channelled", "Multi-lateral", "Multi-layered", "Multi-tiered",
|
40
|
+
"Networked", "Object-based", "Open-architected", "Open-source",
|
41
|
+
"Operative", "Optimized", "Optional", "Organic", "Organized",
|
42
|
+
"Persevering", "Persistent", "Phased", "Polarised", "Pre-emptive",
|
43
|
+
"Proactive", "Profit-focused", "Profound", "Programmable", "Progressive",
|
44
|
+
"Public-key", "Quality-focused", "Reactive", "Realigned",
|
45
|
+
"Re-contextualized", "Re-engineered", "Reduced", "Reverse-engineered",
|
46
|
+
"Right-sized", "Robust", "Seamless", "Secured", "Self-enabling",
|
47
|
+
"Sharable", "Stand-alone", "Streamlined", "Switchable", "Synchronised",
|
48
|
+
"Synergistic", "Synergized", "Team-oriented", "Total", "Triple-buffered",
|
49
|
+
"Universal", "Up-sized", "Upgradable", "User-centric", "User-friendly",
|
50
|
+
"Versatile", "Virtual", "Visionary", "Vision-oriented"]
|
51
|
+
|
52
|
+
CATCH_MID = ["24 hour", "24/7", "3rd generation", "4th generation",
|
53
|
+
"5th generation", "6th generation", "actuating", "analyzing", "assymetric",
|
54
|
+
"asynchronous", "attitude-oriented", "background", "bandwidth-monitored",
|
55
|
+
"bi-directional", "bifurcated", "bottom-line", "clear-thinking",
|
56
|
+
"client-driven", "client-server", "coherent", "cohesive", "composite",
|
57
|
+
"context-sensitive", "contextually-based", "content-based", "dedicated",
|
58
|
+
"demand-driven", "didactic", "directional", "discrete", "disintermediate",
|
59
|
+
"dynamic", "eco-centric", "empowering", "encompassing", "even-keeled",
|
60
|
+
"executive", "explicit", "exuding", "fault-tolerant", "foreground",
|
61
|
+
"fresh-thinking", "full-range", "global", "grid-enabled", "heuristic",
|
62
|
+
"high-level", "holistic", "homogeneous", "human-resource", "hybrid",
|
63
|
+
"impactful", "incremental", "intangible", "interactive", "intermediate",
|
64
|
+
"leading edge", "local", "logistical", "maximized", "methodical",
|
65
|
+
"mission-critical", "mobile", "modular", "motivating", "multimedia",
|
66
|
+
"multi-state", "multi-tasking", "national", "needs-based", "neutral",
|
67
|
+
"next generation", "non-volatile", "object-oriented", "optimal", "optimizing",
|
68
|
+
"radical", "real-time", "reciprocal", "regional", "responsive", "scalable",
|
69
|
+
"secondary", "solution-oriented", "stable", "static", "systematic",
|
70
|
+
"systemic", "system-worthy", "tangible", "tertiary", "transitional",
|
71
|
+
"uniform", "upward-trending", "user-facing", "value-added", "web-enabled",
|
72
|
+
"well-modulated", "zero administration", "zero defect", "zero tolerance"]
|
73
|
+
|
74
|
+
CATCH_POS = ["ability", "access", "adapter", "algorithm", "alliance",
|
75
|
+
"analyzer", "application", "approach", "architecture", "archive",
|
76
|
+
"artificial intelligence", "array", "attitude", "benchmark",
|
77
|
+
"budgetary management", "capability", "capacity", "challenge", "circuit",
|
78
|
+
"collaboration", "complexity", "concept", "conglomeration",
|
79
|
+
"contingency", "core", "customer loyalty", "database",
|
80
|
+
"data-warehouse", "definition", "emulation", "encoding", "encryption",
|
81
|
+
"extranet", "firmware", "flexibility", "focus group", "forecast",
|
82
|
+
"frame", "framework", "function", "functionalities", "Graphic Interface",
|
83
|
+
"groupware", "Graphical User Interface", "hardware",
|
84
|
+
"help-desk", "hierarchy", "hub", "implementation", "info-mediaries",
|
85
|
+
"infrastructure", "initiative", "installation", "instruction set",
|
86
|
+
"interface", "internet solution", "intranet", "knowledge user",
|
87
|
+
"knowledge base", "local area network", "leverage", "matrices",
|
88
|
+
"matrix", "methodology", "middleware", "migration", "model",
|
89
|
+
"moderator", "monitoring", "moratorium", "neural-net", "open architecture",
|
90
|
+
"open system", "orchestration", "paradigm", "parallelism", "policy",
|
91
|
+
"portal", "pricing structure", "process improvement", "product",
|
92
|
+
"productivity", "project", "projection", "protocol", "secured line",
|
93
|
+
"service-desk", "software", "solution", "standardization",
|
94
|
+
"strategy", "structure", "success", "superstructure", "support",
|
95
|
+
"synergy", "system engine", "task-force", "throughput",
|
96
|
+
"time-frame", "toolset", "utilisation", "website",
|
97
|
+
"workforce"]
|
98
|
+
|
99
|
+
BS_PRE = ["implement", "utilize", "integrate", "streamline", "optimize",
|
100
|
+
"evolve", "transform", "embrace", "enable", "orchestrate", "leverage",
|
101
|
+
"reinvent", "aggregate", "architect", "enhance", "incentivize",
|
102
|
+
"morph", "empower", "envisioneer", "monetize", "harness", "facilitate",
|
103
|
+
"seize", "disintermediate", "synergize", "strategize", "deploy",
|
104
|
+
"brand", "grow", "target", "syndicate", "synthesize", "deliver",
|
105
|
+
"mesh", "incubate", "engage", "maximize", "benchmark", "expedite",
|
106
|
+
"reintermediate", "whiteboard", "visualize", "repurpose", "innovate",
|
107
|
+
"scale", "unleash", "drive", "extend", "engineer", "revolutionize",
|
108
|
+
"generate", "exploit", "transition", "e-enable", "iterate",
|
109
|
+
"cultivate", "matrix", "productize", "redefine", "recontextualize"]
|
110
|
+
|
111
|
+
BS_MID = ["clicks-and-mortar", "value-added", "vertical", "proactive",
|
112
|
+
"robust", "revolutionary", "scalable", "leading-edge", "innovative",
|
113
|
+
"intuitive", "strategic", "e-business", "mission-critical", "sticky",
|
114
|
+
"one-to-one", "24/7", "end-to-end", "global", "B2B", "B2C", "granular",
|
115
|
+
"frictionless", "virtual", "viral", "dynamic", "24/365",
|
116
|
+
"best-of-breed", "killer", "magnetic", "bleeding-edge", "web-enabled",
|
117
|
+
"interactive", "dot-com", "sexy", "back-end", "real-time", "efficient",
|
118
|
+
"front-end", "distributed", "seamless", "extensible", "turn-key",
|
119
|
+
"world-class", "open-source", "cross-platform", "cross-media",
|
120
|
+
"synergistic", "bricks-and-clicks", "out-of-the-box", "enterprise",
|
121
|
+
"integrated", "impactful", "wireless", "transparent",
|
122
|
+
"next-generation", "cutting-edge", "user-centric", "visionary",
|
123
|
+
"customized", "ubiquitous", "plug-and-play", "collaborative",
|
124
|
+
"compelling", "holistic", "rich"]
|
125
|
+
|
126
|
+
BS_POS = ["synergies", "web-readiness", "paradigms", "markets",
|
127
|
+
"partnerships", "infrastructures", "platforms", "initiatives",
|
128
|
+
"channels", "eyeballs", "communities", "ROI", "solutions", "e-tailers",
|
129
|
+
"e-services", "action-items", "portals", "niches", "technologies",
|
130
|
+
"content", "vortals", "supply-chains", "convergence", "relationships",
|
131
|
+
"architectures", "interfaces", "e-markets", "e-commerce", "systems",
|
132
|
+
"bandwidth", "infomediaries", "models", "mindshare", "deliverables",
|
133
|
+
"users", "schemas", "networks", "applications", "metrics",
|
134
|
+
"e-business", "functionalities", "experiences", "web services",
|
135
|
+
"methodologies"]
|
136
|
+
|
137
|
+
SUFFIXES = %w(Inc and\ Sons LLC Group)
|
138
|
+
end
|
139
|
+
end
|