seedy 0.6.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) hide show
  1. data/.document +5 -0
  2. data/Gemfile +16 -0
  3. data/LICENSE.txt +20 -0
  4. data/README.rdoc +19 -0
  5. data/Rakefile +57 -0
  6. data/VERSION +1 -0
  7. data/lib/seedy.rb +12 -0
  8. data/lib/seedy/buffer.rb +2 -0
  9. data/lib/seedy/buffer/abstract_buffer.rb +27 -0
  10. data/lib/seedy/buffer/database_buffer.rb +38 -0
  11. data/lib/seedy/connection.rb +15 -0
  12. data/lib/seedy/exceptions.rb +2 -0
  13. data/lib/seedy/generators.rb +22 -0
  14. data/lib/seedy/generators/address.rb +19 -0
  15. data/lib/seedy/generators/company.rb +10 -0
  16. data/lib/seedy/generators/customer.rb +7 -0
  17. data/lib/seedy/generators/date_time.rb +7 -0
  18. data/lib/seedy/generators/department.rb +329 -0
  19. data/lib/seedy/generators/description.rb +7 -0
  20. data/lib/seedy/generators/direction.rb +8 -0
  21. data/lib/seedy/generators/duration.rb +7 -0
  22. data/lib/seedy/generators/email_address.rb +7 -0
  23. data/lib/seedy/generators/guid.rb +7 -0
  24. data/lib/seedy/generators/industry.rb +40 -0
  25. data/lib/seedy/generators/money.rb +7 -0
  26. data/lib/seedy/generators/name.rb +13 -0
  27. data/lib/seedy/generators/ownership.rb +8 -0
  28. data/lib/seedy/generators/password.rb +10 -0
  29. data/lib/seedy/generators/phone.rb +7 -0
  30. data/lib/seedy/generators/priority.rb +8 -0
  31. data/lib/seedy/generators/status.rb +7 -0
  32. data/lib/seedy/generators/subject.rb +7 -0
  33. data/lib/seedy/generators/title.rb +484 -0
  34. data/lib/seedy/generators/user.rb +7 -0
  35. data/lib/seedy/generators/website.rb +7 -0
  36. data/lib/seedy/graph.rb +3 -0
  37. data/lib/seedy/graphs/abstract_graph.rb +143 -0
  38. data/lib/seedy/graphs/instance_methods.rb +0 -0
  39. data/lib/seedy/graphs/simple_graph.rb +36 -0
  40. data/lib/seedy/graphs/user_graph.rb +35 -0
  41. data/lib/seedy/random.rb +7 -0
  42. data/lib/seedy/record.rb +13 -0
  43. data/lib/seedy/records/accounts.rb +49 -0
  44. data/lib/seedy/records/attribute_methods.rb +121 -0
  45. data/lib/seedy/records/bugs.rb +38 -0
  46. data/lib/seedy/records/calls.rb +41 -0
  47. data/lib/seedy/records/cases.rb +38 -0
  48. data/lib/seedy/records/contacts.rb +46 -0
  49. data/lib/seedy/records/email_addresses.rb +20 -0
  50. data/lib/seedy/records/emails.rb +32 -0
  51. data/lib/seedy/records/leads.rb +48 -0
  52. data/lib/seedy/records/opportunities.rb +42 -0
  53. data/lib/seedy/records/record.rb +45 -0
  54. data/lib/seedy/records/teams.rb +32 -0
  55. data/lib/seedy/records/users.rb +45 -0
  56. data/seedy.gemspec +140 -0
  57. data/test/helper.rb +18 -0
  58. data/test/test_generators.rb +10 -0
  59. data/test/test_seedy.rb +18 -0
  60. metadata +315 -0
@@ -0,0 +1,5 @@
1
+ lib/**/*.rb
2
+ bin/*
3
+ -
4
+ features/**/*.feature
5
+ LICENSE.txt
data/Gemfile ADDED
@@ -0,0 +1,16 @@
1
+ source "http://rubygems.org"
2
+
3
+ gem 'mysql'
4
+ gem 'guid'
5
+ gem 'faker'
6
+ gem 'i18n'
7
+ gem 'activesupport', ">= 3.0"
8
+
9
+ # Add dependencies to develop your gem here.
10
+ # Include everything needed to run rake, tests, features, etc.
11
+ group :development do
12
+ gem "shoulda", ">= 0"
13
+ gem "bundler", "~> 1.0.0"
14
+ gem "jeweler", "~> 1.5.1"
15
+ gem "rcov", ">= 0"
16
+ end
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2010 Carl Hicks
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.
@@ -0,0 +1,19 @@
1
+ = seedy
2
+
3
+ Seed databases with a Quickness(tm).
4
+
5
+ == Contributing to seedy
6
+
7
+ * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
8
+ * Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
9
+ * Fork the project
10
+ * Start a feature/bugfix branch
11
+ * Commit and push until you are happy with your contribution
12
+ * Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
13
+ * Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
14
+
15
+ == Copyright
16
+
17
+ Copyright (c) 2010 Carl Hicks. See LICENSE.txt for
18
+ further details.
19
+
@@ -0,0 +1,57 @@
1
+ require 'rubygems'
2
+ require 'bundler'
3
+ begin
4
+ Bundler.setup(:default, :development)
5
+ rescue Bundler::BundlerError => e
6
+ $stderr.puts e.message
7
+ $stderr.puts "Run `bundle install` to install missing gems"
8
+ exit e.status_code
9
+ end
10
+ require 'rake'
11
+
12
+ require 'jeweler'
13
+ Jeweler::Tasks.new do |gem|
14
+ # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
15
+ gem.name = "seedy"
16
+ gem.homepage = "http://github.com/chicks/seedy"
17
+ gem.license = "MIT"
18
+ gem.summary = %Q{Seed databases with a Quickness(tm).}
19
+ gem.description = %Q{Seed databases with a Quickness(tm).}
20
+ gem.email = "carl.hicks@gmail.com"
21
+ gem.authors = ["Carl Hicks"]
22
+ # Include your dependencies below. Runtime dependencies are required when using your gem,
23
+ # and development dependencies are only needed for development (ie running rake tasks, tests, etc)
24
+ # gem.add_runtime_dependency 'jabber4r', '> 0.1'
25
+ # gem.add_development_dependency 'rspec', '> 1.2.3'
26
+ gem.add_runtime_dependency 'activesupport', '> 3.0'
27
+ gem.add_runtime_dependency 'mysql'
28
+ gem.add_runtime_dependency 'guid'
29
+ gem.add_runtime_dependency 'faker'
30
+ end
31
+ Jeweler::RubygemsDotOrgTasks.new
32
+
33
+ require 'rake/testtask'
34
+ Rake::TestTask.new(:test) do |test|
35
+ test.libs << 'lib' << 'test'
36
+ test.pattern = 'test/**/test_*.rb'
37
+ test.verbose = true
38
+ end
39
+
40
+ require 'rcov/rcovtask'
41
+ Rcov::RcovTask.new do |test|
42
+ test.libs << 'test'
43
+ test.pattern = 'test/**/test_*.rb'
44
+ test.verbose = true
45
+ end
46
+
47
+ task :default => :test
48
+
49
+ require 'rake/rdoctask'
50
+ Rake::RDocTask.new do |rdoc|
51
+ version = File.exist?('VERSION') ? File.read('VERSION') : ""
52
+
53
+ rdoc.rdoc_dir = 'rdoc'
54
+ rdoc.title = "seedy #{version}"
55
+ rdoc.rdoc_files.include('README*')
56
+ rdoc.rdoc_files.include('lib/**/*.rb')
57
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.6.3
@@ -0,0 +1,12 @@
1
+ require 'mysql'
2
+ require 'active_support/core_ext'
3
+ require 'faker'
4
+ require 'guid'
5
+ require 'seedy/connection'
6
+ require 'seedy/buffer'
7
+ require 'seedy/exceptions'
8
+ require 'seedy/generators'
9
+ require 'seedy/random'
10
+ require 'seedy/record'
11
+ require 'seedy/graph'
12
+
@@ -0,0 +1,2 @@
1
+ require 'seedy/buffer/abstract_buffer'
2
+ require 'seedy/buffer/database_buffer'
@@ -0,0 +1,27 @@
1
+ module Seedy
2
+ class AbstractBuffer
3
+
4
+ @@buffer = []
5
+ @@limit = 5
6
+
7
+ class << self
8
+ def <<(record)
9
+ raise InvalidRecord, record.table_name + ": " + record.errors.to_a.join(", ") unless record.valid?
10
+ @@buffer << record
11
+ flush if @@buffer.length >= @@limit
12
+ end
13
+ def flush
14
+ puts "Flushing!"
15
+ @@buffer.length.times {
16
+ record = @@buffer.shift
17
+ if record.valid?
18
+ puts record.to_sql
19
+ else
20
+ puts record.errors
21
+ end
22
+ }
23
+ end
24
+ end
25
+
26
+ end
27
+ end
@@ -0,0 +1,38 @@
1
+ module Seedy
2
+ class DatabaseBuffer < AbstractBuffer
3
+ @@limit = 2
4
+ class << self
5
+ def flush
6
+ begin_db_transaction
7
+ @@buffer.length.times {
8
+ record = @@buffer.shift
9
+ execute(record.to_sql)
10
+ }
11
+ commit_db_transaction
12
+ end
13
+ def begin_db_transaction #:nodoc:
14
+ execute "BEGIN"
15
+ rescue Exception
16
+ # Transactions aren't supported
17
+ end
18
+
19
+ def commit_db_transaction #:nodoc:
20
+ execute "COMMIT"
21
+ rescue Exception
22
+ # Transactions aren't supported
23
+ end
24
+
25
+ def rollback_db_transaction #:nodoc:
26
+ execute "ROLLBACK"
27
+ rescue Exception
28
+ # Transactions aren't supported
29
+ end
30
+
31
+ def execute(sql)
32
+ puts sql
33
+ Seedy.connection.query(sql)
34
+ end
35
+ end
36
+
37
+ end
38
+ end
@@ -0,0 +1,15 @@
1
+ module Seedy
2
+ @@connection = nil
3
+ def self.connection
4
+ @@connection
5
+ end
6
+ def self.connection=(connection)
7
+ @@connection = connection
8
+ end
9
+ def self.connect(host, user, pass, db)
10
+ @@connection = Mysql.real_connect(host, user, pass, db)
11
+ end
12
+ class << self
13
+ alias :connect! :connect
14
+ end
15
+ end
@@ -0,0 +1,2 @@
1
+ class InvalidRecord < RuntimeError
2
+ end
@@ -0,0 +1,22 @@
1
+ require 'seedy/generators/address'
2
+ require 'seedy/generators/company'
3
+ require 'seedy/generators/customer'
4
+ require 'seedy/generators/date_time'
5
+ require 'seedy/generators/department'
6
+ require 'seedy/generators/description'
7
+ require 'seedy/generators/direction'
8
+ require 'seedy/generators/duration'
9
+ require 'seedy/generators/email_address'
10
+ require 'seedy/generators/guid'
11
+ require 'seedy/generators/industry'
12
+ require 'seedy/generators/money'
13
+ require 'seedy/generators/name'
14
+ require 'seedy/generators/ownership'
15
+ require 'seedy/generators/password'
16
+ require 'seedy/generators/phone'
17
+ require 'seedy/generators/priority'
18
+ require 'seedy/generators/status'
19
+ require 'seedy/generators/subject'
20
+ require 'seedy/generators/title'
21
+ require 'seedy/generators/user'
22
+ require 'seedy/generators/website'
@@ -0,0 +1,19 @@
1
+ module Seedy
2
+ module Generators
3
+ def address_street
4
+ Faker::Address.street_address
5
+ end
6
+ def city
7
+ Faker::Address.city
8
+ end
9
+ def state
10
+ Faker::Address.us_state_abbr
11
+ end
12
+ def zip
13
+ Faker::Address.zip_code
14
+ end
15
+ def country
16
+ "USA"
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,10 @@
1
+ module Seedy
2
+ module Generators
3
+ def company
4
+ Faker::Company.name
5
+ end
6
+ def employees
7
+ rand(10 ** 5).to_s
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,7 @@
1
+ module Seedy
2
+ module Generators
3
+ def customer_type
4
+ "Customer"
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ module Seedy
2
+ module Generators
3
+ def date_time
4
+ (Time.now - rand(60 * 60 * 24 * 365 * 5)).strftime("%Y-%m-%d %H:%M:%S")
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,329 @@
1
+ module Seedy
2
+ module Generators
3
+ DEPARTMENTS = [
4
+ "Landscape Grounds Shop",
5
+ "Cap and Gown Club",
6
+ "Other Affiliates",
7
+ "Chemical Engineering",
8
+ "Board of Trustees",
9
+ "Forbes College",
10
+ "Undergraduate Class of 2007",
11
+ "Investment Income",
12
+ "Systems and Technical Support",
13
+ "Special Facilities EQuad",
14
+ "Accelerator",
15
+ "Princeton Materials Institute",
16
+ "Agency Accounts",
17
+ "Undergraduate Class of 2008",
18
+ "McCarter Theatre",
19
+ "Undergraduate Class of 2009",
20
+ "FY 2007 Operating Major Maintenance",
21
+ "Center for Teaching and Learning",
22
+ "Cloister Inn",
23
+ "Wesley Foundation",
24
+ "Princeton Neuroscience Institute",
25
+ "Biochemical Sciences",
26
+ "Building Services Forrestal Campus",
27
+ "BricaBrac Yearbook and Nassau Herald",
28
+ "B'Nai B'Rith Hillel Foundation",
29
+ "Alumni Colleges",
30
+ "Cell and Developmental Biology",
31
+ "Master's Leave Program",
32
+ "Human Resources",
33
+ "Tiger Net",
34
+ "Lutheran Chaplaincy",
35
+ "Center for Jewish Life",
36
+ "Graduate Student Loans Committed",
37
+ "Sustainability",
38
+ "History",
39
+ "Gifts and Grants",
40
+ "Gift Planning",
41
+ "Elm Club",
42
+ "University League Nursery School",
43
+ "Center for the Study of Religion",
44
+ "Office of the Dean of the Graduate School",
45
+ "Nassau East",
46
+ "Mechanical and Aerospace Engineering MAE",
47
+ "Transportation and Parking Services",
48
+ "Council on Regional Studies",
49
+ "Office of Public Affairs",
50
+ "Career Services",
51
+ "Army Officer Education Program",
52
+ "Other",
53
+ "Office of the Vice President and Secretary",
54
+ "Pace Center",
55
+ "Library",
56
+ "Development Project Services",
57
+ "Princeton Forrestal Center Funds Advanced",
58
+ "Peter B Lewis Center for the Arts",
59
+ "Princeton University Federal Credit Union",
60
+ "Development Events",
61
+ "Alumni Records",
62
+ "Development Administration",
63
+ "Facilities NonShop Expenses",
64
+ "Princeton Broadcasting Service",
65
+ "Invested Collateral Funds",
66
+ "Mechanical and Aerospace Engineering",
67
+ "History of Science",
68
+ "Aquinas Institute",
69
+ "Plumbing Shop",
70
+ "Undergraduate Student Government",
71
+ "1998 Major Maintenance",
72
+ "Sponsored Research Accounting",
73
+ "Outside computer user",
74
+ "Daily Princetonian",
75
+ "Princeton University Investment Company",
76
+ "Richardson Auditorium",
77
+ "Vice President and Senior Adviser",
78
+ "OIT Information Systems",
79
+ "University Press Club",
80
+ "Frist Campus Center Shadow",
81
+ "Princeton in Beijing",
82
+ "Freshman Seminar Program",
83
+ "Deferred Charges and Revolving Funds",
84
+ "Princeton University Press",
85
+ "Religious Life",
86
+ "International Economics",
87
+ "Miscellaneous Accounts Receivable",
88
+ "Unappropriated Estimated Income",
89
+ "Program in Law and Public Affairs",
90
+ "English",
91
+ "Civil and Environmental Engineering CEE",
92
+ "General Reserve",
93
+ "2003 Major Maintenance",
94
+ "Office of Design and Construction",
95
+ "Papers of Thomas Jefferson",
96
+ "Tigertones",
97
+ "University NOW Day Nursery",
98
+ "1999 Major Maintenance",
99
+ "Wilson College",
100
+ "The Office of Information Technology \n",
101
+ "Dining Services Income",
102
+ "East Asian Studies",
103
+ "Princeton Environmental Institute",
104
+ "Undergraduate Class withheld",
105
+ "Conference and Event Services",
106
+ "Federal Parent Loan",
107
+ "Accounts Receivable Undergraduate Students",
108
+ "Princeton Prospect Foundation",
109
+ "Colonial Club",
110
+ "Petty Cash Fund",
111
+ "Distributed Management Systems",
112
+ "1997 Major Maintenance",
113
+ "Psychology",
114
+ "Laboratory Animal Resources",
115
+ "FY 2005 Operating Major Maintenance",
116
+ "Nassau Weekly",
117
+ "Graduate Student Loans In Process",
118
+ "US Geological Survey",
119
+ "Tiger Inn",
120
+ "Development Communications",
121
+ "Stevenson Hall",
122
+ "Lock Shop",
123
+ "PrincetoninAsia Program",
124
+ "Program in Judaic Studies",
125
+ "Unallocated Academic Departments",
126
+ "Office of the Dean of Undergraduate Students",
127
+ "Rockefeller Public Service Awards",
128
+ "Credit Union",
129
+ "WalkerGordon South",
130
+ "Office of the Registrar",
131
+ "Applied and Computational Mathematics",
132
+ "Retirees",
133
+ "Student Volunteers Council",
134
+ "Associate Treasurer for Operations",
135
+ "Office of the Provost",
136
+ "Astrophysical Sciences",
137
+ "American WhigCliosophic Society",
138
+ "Special Facilities Frick/Hoyt",
139
+ "FY 1999 Operating Major Maintenance",
140
+ "Campaign Expense",
141
+ "Information Services",
142
+ "Alumni and Donor Records",
143
+ "Forrestal Campus 100 Acres",
144
+ "Gift Receivables",
145
+ "Tower Club",
146
+ "Bank Transfers",
147
+ "Electrical Engineering",
148
+ "Princeton Footnotes",
149
+ "Post Doctoral Fellowships",
150
+ "Disability Services",
151
+ "Special Facilities Jadwin/Fine",
152
+ "Due From US Government",
153
+ "Phipps",
154
+ "Faculty Allowances",
155
+ "Special Facilities Firestone Library",
156
+ "Life Income Funds",
157
+ "Baptist Chaplaincy",
158
+ "University Machine Shops",
159
+ "Capital Income",
160
+ "Unallocated Office of Information Technology",
161
+ "Computer Science",
162
+ "Office of Safety and Administration",
163
+ "Rockefeller College",
164
+ "Quadrangle Club",
165
+ "Campaign Relations",
166
+ "University Reserve",
167
+ "Invested Operating Funds",
168
+ "Roofing and Tin Shop",
169
+ "Investments Life Income",
170
+ "Student Agencies",
171
+ "Graduate Student Apartments Income",
172
+ "Program in Theater",
173
+ "Continuing EducationSpecial Programs",
174
+ "Public Lectures",
175
+ "Real Estate Development",
176
+ "Industrial Relations",
177
+ "Development Relations",
178
+ "Tigerlilies",
179
+ "Graduate School Fellowships",
180
+ "Center for African American Studies",
181
+ "Unallocated Plant",
182
+ "Romance Languages and Literatures",
183
+ "Athletics Income",
184
+ "Music",
185
+ "Triangle Club",
186
+ "Maintenance Faculty and Staff Housing",
187
+ "FY 2006 Operating Major Maintenance",
188
+ "Paint Shop",
189
+ "Information Strategy",
190
+ "Life Safety and Security Systems",
191
+ "Undergraduate Class of 2010",
192
+ "Office of the Vice President for Development",
193
+ "Greenhouse Grounds Shop",
194
+ "Chapel Director of Music",
195
+ "Office of the Dean of the College",
196
+ "French and Italian",
197
+ "Writing Program",
198
+ "Undergraduate Class of 2011",
199
+ "Council on Environmental Studies",
200
+ "Gifts In Kind",
201
+ "TigerCard Office",
202
+ "Loan Control",
203
+ "Center of International Studies",
204
+ "Molecular Biology",
205
+ "OffSite Research Plasma Physics Laboratory",
206
+ "Central Campus Grounds Shop",
207
+ "Undergraduate Class of 2013",
208
+ "Office of Research and Project Administration",
209
+ "Project Managers",
210
+ "Office of Development Priorities",
211
+ "Tigernet Office of Information Technology",
212
+ "Undergraduate Class of 2014",
213
+ "Office of the President",
214
+ "Carpenter Shop",
215
+ "Statistics",
216
+ "Leadership Gifts",
217
+ "Counseling Center",
218
+ "Building Services",
219
+ "Politics",
220
+ "Investments Secondary Pool",
221
+ "Accounts Payable",
222
+ "Partnership 2000",
223
+ "Renewal and Replacement Reserve",
224
+ "Westminster Foundation",
225
+ "Special Facilities Forrestal Maintenance",
226
+ "Not Applicable",
227
+ "Religion",
228
+ "Development Information Systems",
229
+ "NonAffiliates",
230
+ "Unallocated University Services",
231
+ "Prize Fellowship",
232
+ "Real Estate",
233
+ "Pew Science Program",
234
+ "Business Operations Plasma Physics Laboratory",
235
+ "Continuing Education",
236
+ "Printing University Services",
237
+ "Simulated Games",
238
+ "Due From Brokers",
239
+ "Office of the Executive Vice President",
240
+ "Dial Elm and Cannon Clubs",
241
+ "Office of Technology Licensing",
242
+ "Davis International Center",
243
+ "Community House",
244
+ "Creative Writing",
245
+ "Salary Pool General Funds",
246
+ "Mail Services",
247
+ "Office of the Dean of the Faculty",
248
+ "Unallocated General Administration",
249
+ "Garage Main Campus",
250
+ "Geosciences",
251
+ "Center for Study of Human Values",
252
+ "2005 Major Maintenance",
253
+ "Parent Authorization",
254
+ "Anthropology",
255
+ "Office of Audit and Compliance",
256
+ "Restricted Funds",
257
+ "Due To Brokers",
258
+ "Fire Protection Shop",
259
+ "Environmental Health and Safety",
260
+ "Alumni Council",
261
+ "Philosophy",
262
+ "Mellon Education Grant",
263
+ "Investments Funds Separately Invested FSI",
264
+ "Foundation for Student Communication",
265
+ "Unapplied Loan Payments",
266
+ "Security Deposits and Deferred Revenue",
267
+ "Program in Linguistics",
268
+ "Women's Studies",
269
+ "Principal Primary Pool",
270
+ "Science in Human Affairs",
271
+ "Long Term Debt Payable",
272
+ "University Archives",
273
+ "Public Safety",
274
+ "Undergraduate Financial Aid",
275
+ "Short Term Strategy",
276
+ "International Center",
277
+ "A service of OIT Network Systems \n",
278
+ "Admission",
279
+ "PPL Employee Benefits",
280
+ "Office of the Controller",
281
+ "Survey Research Center",
282
+ "Visual Arts",
283
+ "Classics",
284
+ "Theater Program",
285
+ "Restaurant Associates",
286
+ "FY 2002 Operating Major Maintenance",
287
+ "Educational Programs",
288
+ "Outside Matching Fellowships",
289
+ "FY 2004 Operating Major Maintenance",
290
+ "Bendheim Center for Finance",
291
+ "Alumni Records and Mailing",
292
+ "Business Today Magazine",
293
+ "Purchasing",
294
+ "Federal Work Study",
295
+ "Student Health Plan",
296
+ "Special Student",
297
+ "Printing Services",
298
+ "Nassoons",
299
+ "Slavic Languages and Literatures",
300
+ "Outside department",
301
+ "Maintenance Forrestal Campus",
302
+ "Collateral and Loaned Stocks",
303
+ "OIT Partnership 2000",
304
+ "Planning and Operations",
305
+ "Graduate Student Union",
306
+ "Student Notes In Process",
307
+ "Pride Alliance",
308
+ "Utility Plant",
309
+ "Educational Technologies Center",
310
+ "CIT Budget and Finance",
311
+ "Dept Transfer",
312
+ "Summer Fellowships",
313
+ "FY 1998 Operating Major Maintenance",
314
+ "University General Expenses",
315
+ "Whitman College",
316
+ "Principal Student Loan Funds",
317
+ "Departmental Savings",
318
+ "Research Department Plasma Physics Laboratory",
319
+ "Princeton Center for Theoretical Science",
320
+ "Residential Colleges",
321
+ "Stewardship",
322
+ "Allowance For Contingency",
323
+ "Undergraduate Class of 2006"]
324
+
325
+ def department
326
+ DEPARTMENTS[rand(DEPARTMENTS.length - 1)]
327
+ end
328
+ end
329
+ end