nitro 0.15.0 → 0.16.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (111) hide show
  1. data/CHANGELOG +218 -0
  2. data/INSTALL +3 -0
  3. data/README +4 -2
  4. data/Rakefile +150 -8
  5. data/benchmark/bench.rb +1 -1
  6. data/doc/AUTHORS +2 -8
  7. data/doc/RELEASES +63 -1
  8. data/examples/ajax/controller.rb +2 -2
  9. data/examples/ajax/public/index.xhtml +3 -1
  10. data/examples/ajax/run.rb +3 -3
  11. data/examples/blog/README +8 -0
  12. data/examples/blog/cache/entriesadmintrue +3 -0
  13. data/examples/blog/run.rb +38 -40
  14. data/examples/blog/src/blog.rb +2 -1
  15. data/examples/blog/src/controller.rb +40 -20
  16. data/examples/blog/src/mailer.rb +2 -2
  17. data/examples/blog/src/models/blog.rb +2 -1
  18. data/examples/blog/src/models/content.rb +4 -33
  19. data/examples/blog/src/views/error.xhtml +1 -1
  20. data/examples/blog/src/xsl/style.xsl +1 -1
  21. data/examples/blog/test/tc_blog.rb +43 -0
  22. data/examples/flash/run.rb +2 -2
  23. data/examples/no_xsl_blog/lib/blog.rb +1 -1
  24. data/examples/no_xsl_blog/lib/blog/controller.rb +26 -17
  25. data/examples/no_xsl_blog/lib/blog/model.rb +3 -3
  26. data/examples/no_xsl_blog/lib/blog/template.rb +1 -1
  27. data/examples/no_xsl_blog/lib/content.rb +3 -7
  28. data/examples/no_xsl_blog/run.rb +34 -34
  29. data/examples/tiny/public/deep/dir/hello.xhtml +2 -0
  30. data/examples/tiny/run.rb +2 -2
  31. data/examples/wee_style/run.rb +5 -3
  32. data/examples/why_wiki/run.rb +5 -3
  33. data/install.rb +1 -1
  34. data/lib/nitro.rb +10 -9
  35. data/lib/nitro/adapters/cgi.rb +27 -2
  36. data/lib/nitro/adapters/fastcgi.rb +6 -2
  37. data/lib/nitro/adapters/webrick.rb +11 -9
  38. data/lib/nitro/buffering.rb +2 -2
  39. data/lib/nitro/builders/atom.rb +78 -0
  40. data/lib/nitro/builders/form.rb +2 -2
  41. data/lib/nitro/builders/rss.rb +4 -4
  42. data/lib/nitro/builders/table.rb +2 -2
  43. data/lib/nitro/builders/xhtml.rb +5 -8
  44. data/lib/nitro/builders/xml.rb +38 -14
  45. data/lib/nitro/caching.rb +2 -2
  46. data/lib/nitro/caching/actions.rb +2 -2
  47. data/lib/nitro/caching/fragments.rb +2 -2
  48. data/lib/nitro/caching/invalidation.rb +2 -28
  49. data/lib/nitro/caching/output.rb +3 -3
  50. data/lib/nitro/caching/stores.rb +4 -4
  51. data/lib/nitro/conf.rb +11 -6
  52. data/lib/nitro/context.rb +2 -2
  53. data/lib/nitro/controller.rb +12 -7
  54. data/lib/nitro/cookie.rb +2 -2
  55. data/lib/nitro/dispatcher.rb +33 -40
  56. data/lib/nitro/environment.rb +1 -1
  57. data/lib/nitro/localization.rb +5 -7
  58. data/lib/nitro/mail.rb +2 -2
  59. data/lib/nitro/markup.rb +5 -5
  60. data/lib/nitro/output.rb +2 -2
  61. data/lib/nitro/part.rb +8 -5
  62. data/lib/nitro/render.rb +46 -45
  63. data/lib/nitro/request.rb +7 -6
  64. data/lib/nitro/response.rb +14 -5
  65. data/lib/nitro/routing.rb +2 -2
  66. data/lib/nitro/runner.rb +57 -17
  67. data/lib/nitro/scaffold.rb +14 -8
  68. data/lib/nitro/session.rb +7 -4
  69. data/lib/nitro/session/drb.rb +2 -2
  70. data/lib/nitro/session/drbserver.rb +2 -2
  71. data/lib/nitro/session/memory.rb +2 -2
  72. data/lib/nitro/shaders.rb +8 -7
  73. data/lib/nitro/simple.rb +4 -1
  74. data/lib/nitro/template.rb +8 -8
  75. data/lib/nitro/testing.rb +6 -0
  76. data/lib/nitro/testing/assertions.rb +102 -0
  77. data/lib/nitro/testing/context.rb +52 -0
  78. data/lib/nitro/testing/testcase.rb +55 -0
  79. data/lib/nitro/ui/pager.rb +3 -3
  80. data/lib/nitro/ui/popup.rb +8 -13
  81. data/lib/nitro/ui/tabs.rb +4 -10
  82. data/lib/nitro/uri.rb +7 -7
  83. data/proto/doc/README +1 -0
  84. data/proto/public/cgi.rb +5 -0
  85. data/proto/run.rb +2 -4
  86. data/test/nitro/adapters/tc_cgi.rb +1 -1
  87. data/test/nitro/adapters/tc_webrick.rb +1 -2
  88. data/test/nitro/builders/tc_atom.rb +26 -0
  89. data/test/nitro/builders/tc_rss.rb +3 -2
  90. data/test/nitro/builders/tc_table.rb +1 -1
  91. data/test/nitro/builders/tc_xhtml.rb +4 -3
  92. data/test/nitro/builders/tc_xml.rb +7 -7
  93. data/test/nitro/tc_context.rb +1 -1
  94. data/test/nitro/tc_controller.rb +5 -3
  95. data/test/nitro/tc_dispatcher.rb +19 -18
  96. data/test/nitro/tc_localization.rb +1 -1
  97. data/test/nitro/tc_mail.rb +1 -1
  98. data/test/nitro/tc_session.rb +1 -1
  99. data/test/nitro/tc_template.rb +1 -1
  100. data/test/nitro/tc_uri.rb +3 -4
  101. data/test/nitro/ui/tc_pager.rb +7 -7
  102. data/test/public/blog/inc1.xhtml +2 -0
  103. data/test/public/blog/inc2.xhtml +1 -0
  104. data/test/public/blog/list.xhtml +3 -0
  105. metadata +180 -203
  106. data/examples/blog/cache/entriesadmin +0 -12
  107. data/lib/nitro/cluster.rb +0 -218
  108. data/lib/nitro/component.rb +0 -15
  109. data/lib/nitro/filters.rb +0 -215
  110. data/lib/nitro/ui/date-select.rb +0 -69
  111. data/test/nitro/tc_filters.rb +0 -111
data/CHANGELOG CHANGED
@@ -1,3 +1,221 @@
1
+ 18-04-2005 George Moschovitis <gm@navel.gr>
2
+
3
+ * small fixes to make tests pass again.
4
+
5
+ 17-04-2005 George Moschovitis <gm@navel.gr>
6
+
7
+ * examples/blog/: updated.
8
+
9
+ * lib/nitro/render.rb: check again for action_template method.
10
+
11
+ * test/nitro/builders/tc_atom.rb: introduced.
12
+
13
+ * lib/nitro/builders/atom.rb: introduced.
14
+ (#build_atom): first implementation.
15
+
16
+ * lib/nitro/builders/xml.rb: added print alias,
17
+ use '!' postfix in default methods to avoid method namespace polution.
18
+ (#processing_instruction): added.
19
+
20
+ 16-04-2005 George Moschovitis <gm@navel.gr>
21
+
22
+ * now developing on UBUNTU Linux.
23
+
24
+ 15-04-2005 George Moschovitis <gm@navel.gr>
25
+
26
+ * examples/no_xsl_blog/*: converted to make compaitble
27
+ with latest code.
28
+
29
+ * ../cleanup.rb: implemented.
30
+
31
+ * lib/nitro/controller.rb: improved DEF_FILE calculation to handle
32
+ more cases.
33
+
34
+ * examples/blog/*: yeah, with the latest aspects fixes
35
+ the example works again,
36
+ converted XmlController to latest code.
37
+ invalidate cache on deletes.
38
+
39
+ * test/*: fixes to make the tests pass.
40
+
41
+ 14-04-2005 George Moschovitis <gm@navel.gr>
42
+
43
+ * examples/*: dont use controller.
44
+
45
+ * lib/nitro/controller.rb: removed [jamesb].
46
+
47
+ * examples/blog/src/models/content.rb: removed obsolete code.
48
+
49
+ 13-04-2005 George Moschovitis <gm@navel.gr>
50
+
51
+ * examples/blog/*: converted to use aspects.
52
+
53
+ * lib/nitro/render.rb (#compile_action): replaced filter chains
54
+ with advice generation.
55
+
56
+ * lib/nitro/controller.rb: use aspects instead of filters,
57
+ dont include Filtering.
58
+
59
+ 12-04-2005 Kostas Nasis <kostas@nasis.com>
60
+
61
+ * misc aesthetic fixes.
62
+
63
+ * lib/nitro/markup.rb: small fixes.
64
+
65
+ 12-04-2005 George Moschovitis <gm@navel.gr>
66
+
67
+ * examples/*: small fixes in docs.
68
+
69
+ * push_docs.rb: introduced.
70
+
71
+ * Rakefile: changed rdoc dir,
72
+ added Florian Gross's gems updater [flgr],
73
+ many fixes to make the updater work.
74
+
75
+ * releases.rb: utility to help with new releases,
76
+ cool, it uploads documentation.
77
+
78
+ * INSTALL: small update [ilias].
79
+
80
+ 11-04-2005 George Moschovitis <gm@navel.gr>
81
+
82
+ * created new public SVN repository, to allow for easier
83
+ patching by the community.
84
+
85
+ * examples/no_xsl_blog/*: small ns fixes. [james_b]
86
+
87
+ 10-04-2005 George Moschovitis <gm@navel.gr>
88
+
89
+ * lib/nitro/render.rb: new encoding for action/template methods.
90
+
91
+ * lib/nitro/shaders.rb (XSLTShader#process): add a critical Logger.debug to
92
+ give better info on the developer on template errors.
93
+
94
+ * lib/adapters/webrick.rb: no stupid logging by default on Unix.
95
+
96
+ * lib/nitro/dispatcher.rb (#controller_class_for): changed reloading algo,
97
+ improved reloading to reload superclasses,
98
+ improved reloading to remove actions,
99
+ even more fixes to the reloader.
100
+
101
+ * lib/nitro/conf.rb (#mount): added support for mounting other sites.
102
+ $nitro_environment: holds the configuration.
103
+
104
+ 09-04-2005 George Moschovitis <gm@navel.gr>
105
+
106
+ * test/og/tc_sqlserver.rb: check if sqlserver exists.
107
+ * test/*: small fixes to pass again.
108
+
109
+ * examples/ajax/*: small improvement.
110
+
111
+ * lib/nitro/runner.rb (Nitro##run): added this elegant helper.
112
+
113
+ * proto/public/scaffold: added.
114
+
115
+ * examples/blog/*: works without API,
116
+ content_type works again,
117
+ use the new runner.
118
+
119
+ * lib/nitro/dispatcher.rb: removed the concept of API from the dispatcher,
120
+ will be implemented with controller reuse.
121
+
122
+ * examples/blog/src/controller.rb (XmlController): introduced.
123
+
124
+ * lib/nitro/render.rb (#compile_action): better error reporting,
125
+ removed concept of API.
126
+
127
+ * lib/nitro/response.rb (#add_cookie): made more flexible.
128
+
129
+ * lib/nitro/testing/assertions.rb (#assert_has_cookie): implemented,
130
+ (#assert_has_no_cookie): implemented,
131
+ (#assert_cookie_equal): implemented.
132
+
133
+ * lib/nitro/testing/context.rb (Response): added more helpers.
134
+
135
+ 08-04-2005 George Moschovitis <gm@navel.gr>
136
+
137
+ * hack-fixed dynamic require bug that used to fuckup RDoc.
138
+
139
+ * Rakefile: fixed VERSION bug,
140
+ removed flexob, extensions, ruby-breakpointer dependencies [james_b],
141
+ bumped required Ruby version.
142
+
143
+ * lib/nitro/testing/testcase.rb: include Nitro by default.
144
+
145
+ * test/*: many fixes to work again.
146
+
147
+ * MAJOR: changed the namespace from N to Nitro.
148
+
149
+ * examples/no_xsl_blog/*: some small improvements, synced with blog
150
+ example.
151
+
152
+ * lib/nitro/ui/*: updated some code (will be removed soon).
153
+
154
+ * lib/nitro/ui/date-select.rb: removed.
155
+
156
+ * lib/nitro.rb: include Glue in the Nitro namespace.
157
+
158
+ * lib/nitro/cluster.rb: removed.
159
+
160
+ 07-04-2005 George Moschovitis <gm@navel.gr>
161
+
162
+ * lib/nitro/testing/assertions.rb:
163
+ (#assert_redirect): implemented.
164
+ (#assert_no_redirect): implemented.
165
+ (#assert_session_has): implemented.
166
+ (#assert_session_has_no): implemented.
167
+ use implicit context
168
+ (#assert_output_match): implemented.
169
+ (#assert_output_no_match): implemented.
170
+ (#assert_status_ok): implemented.
171
+ use format_msg: to make more flexible.
172
+ (#assert_session_equal): implemented.
173
+
174
+ * examples/blog/test/tc_blog.rb: introduced.
175
+
176
+ * lib/nitro/testing/context.rb: introduced.
177
+ (Request): added testing helpers.
178
+ (Response): added testing helpers.
179
+ (Context): override session.
180
+
181
+ * lib/nitro/render.rb: body alias for out.
182
+
183
+ * lib/nitro/adapters/cgi.rb: no socket lookup.
184
+
185
+ * lib/nitro/adapters/fcgi.rb: no socket lookup.
186
+
187
+ 07-04-2005 James Britt <james_b@neurogami.com>
188
+
189
+ * investigated nasty cgi/testunit/flexmock bug.
190
+
191
+ 06-04-2005 George Moschovitis <gm@navel.gr>
192
+
193
+ * lib/nitro/testing.rb: introduced.
194
+
195
+ * lib/nitro/testing/testcase.rb: introduced.
196
+
197
+ * lib/nitro/testing/assertions.rb: introduced.
198
+
199
+ 05-04-2005 George Moschovitis <gm@navel.gr>
200
+
201
+ * lib/nitro/render.rb (#compile_action): keep old action in @parent_action_name.
202
+
203
+ * lib/nitro/shaders.rb: handle ' delimeters. [james_b]
204
+
205
+ * lib/nitro/template.rb: handle ' delimeters. [james_b]
206
+
207
+ * test/nitro/tc_controller.rb: added extra tests.
208
+
209
+ * integrated james' CGI patch.
210
+
211
+ 05-04-2005 James Britt <james_b@neurogami.com>
212
+
213
+ * proto/public/cgi.rb: cgi runner.
214
+
215
+ * lib/nitro/adapters/cgi.rb: added support for standalone cgi.
216
+
217
+ * lib/nitro/runner.rb: added support for cgi.
218
+
1
219
  04-04-2005 George Moschovitis <gm@navel.gr>
2
220
 
3
221
  * bin/nitro: fix
data/INSTALL CHANGED
@@ -12,6 +12,9 @@
12
12
 
13
13
  gem install og
14
14
 
15
+ (make sure you have the latest stable versions of Ruby and RubyGems
16
+ installed)
17
+
15
18
  When asked about the dependencies to include, only accept
16
19
  the dependencies for the RDBMS backends you are planning
17
20
  to use.
data/README CHANGED
@@ -1,4 +1,4 @@
1
- = Nitro 0.15.0
1
+ = Nitro 0.16.0 README
2
2
 
3
3
  Nitro is an efficient, yet simple engine for developing professional Web
4
4
  Applications using the Ruby language. Nitro aims to provide a robust
@@ -309,6 +309,9 @@ installed RubyGems on your system. Then run the following command:
309
309
 
310
310
  gem install nitro
311
311
 
312
+ (make sure you have the latest stable versions of Ruby and RubyGems
313
+ installed)
314
+
312
315
  Then try to run the examples/tiny Example application.
313
316
 
314
317
  A tar.gz distribution is also available on http://www.rubyforge.com/projects/nitro
@@ -448,4 +451,3 @@ Nitro (http://www.rubyforge.com/projects/nitro) is copyrighted free
448
451
  software created and maintained by George Moschovitis (mailto:gm@navel.gr)
449
452
  and released under the standard BSD Licence. For details consult
450
453
  the file LICENCE.
451
-
data/Rakefile CHANGED
@@ -6,6 +6,29 @@ require 'rake/rdoctask'
6
6
  require 'rake/testtask'
7
7
  require 'rake/gempackagetask'
8
8
 
9
+ # Initialize some variables.
10
+
11
+ readme = File.read('README')
12
+ Release = (readme[/^= (.+) README$/, 1] || 'unknown').downcase.tr(" ", "-")
13
+ Name = Release[/\D+/].sub(/\-+$/, '') || 'unknown'
14
+ Version = Release[/[\d.]+/] || 'unknown'
15
+
16
+ AuthorName, AuthorMail = 'George Moschovitis', 'gm@navel.gr'
17
+ RubyVersion = '1.8.2'
18
+
19
+ # Description = (readme[/README\s+(.+?)\n\n/m, 1] || "unknown").gsub(/\s+/, " ")
20
+ # Summary = Description[/^.+?>/] || "unknown"
21
+
22
+ # DocFiles = %w(README NEWS TODO COPYING GPL)
23
+ # RDocFiles = DocFiles - %w(GPL)
24
+ RDocOpts = ["--inline-source", "--line-numbers","--title", Name ]
25
+ # AdditionalFiles = DocFiles + %w(setup.rb)
26
+ VersionFile = MainFile = File.join("lib", Name + '.rb')
27
+
28
+ RubyForgeProject = Name
29
+ RubyForgeUser = 'gmosx'
30
+ Homepage = "http://#{RubyForgeProject}.rubyforge.org/"
31
+
9
32
  task :default => :package
10
33
 
11
34
  # Run the tests.
@@ -28,7 +51,7 @@ end
28
51
 
29
52
  Rake::RDocTask.new do |rd|
30
53
  rd.main = 'README'
31
- rd.rdoc_dir = 'doc/rdoc'
54
+ rd.rdoc_dir = 'rdoc'
32
55
  rd.rdoc_files.include('README', 'INSTALL', 'doc/config.txt', 'doc/tutorial.txt', 'lib/**/*.rb')
33
56
  rd.options << '--all --inline-source'
34
57
  end
@@ -38,7 +61,7 @@ end
38
61
  spec = Gem::Specification.new do |s|
39
62
  s.name = 'nitro'
40
63
  if File.read('lib/nitro.rb') =~ /Version\s+=\s+'(\d+\.\d+\.\d+)'/
41
- VERSION = s.version = $1
64
+ s.version = $1
42
65
  else
43
66
  raise 'No version found'
44
67
  end
@@ -47,13 +70,11 @@ spec = Gem::Specification.new do |s|
47
70
  'Nitro provides everything you need to develop real-world, scalable ' +
48
71
  'web applications.'
49
72
 
50
- s.add_dependency 'glue', "= #{VERSION}"
51
- s.add_dependency 'og', "= #{VERSION}"
52
- s.add_dependency 'ruby-breakpoint', '>= 0.5'
53
- s.add_dependency 'extensions', '>= 0.5'
54
- s.add_dependency 'flexmock', '>= 0.0.3'
73
+ s.add_dependency 'glue', "= #{s.version}"
74
+ s.add_dependency 'og', "= #{s.version}"
75
+ # s.add_dependency 'ruby-breakpoint', '>= 0.5'
55
76
 
56
- s.required_ruby_version = '>= 1.8.1'
77
+ s.required_ruby_version = '>= 1.8.2'
57
78
 
58
79
  s.files = FileList[
59
80
  '[A-Z]*', 'install.rb', '{bin,benchmark,examples,doc,proto,lib,test,vendor}/**/*'
@@ -90,3 +111,124 @@ end
90
111
  task :install do
91
112
  ruby 'install.rb'
92
113
  end
114
+
115
+ # Release files to Rubyforge.
116
+ # The code for this task provided by Florian Gross.
117
+
118
+ desc "Publish the release files to RubyForge."
119
+ task :publish => [:package] do
120
+ files = ['gem', 'tgz', 'zip'].map { |ext| "dist/#{Release}.#{ext}" }
121
+
122
+ if RubyForgeProject then
123
+ require 'net/http'
124
+ require 'open-uri'
125
+
126
+ changes = ''
127
+ if File.exist?('doc/RELEASES') then
128
+ changes_re = /^== \s+ Version \s+ #{Regexp.quote(Version)} \s*
129
+ (.+?) (?:==|\Z)/mx
130
+ changes = File.read('doc/RELEASES')[changes_re, 1] || ''
131
+ end
132
+
133
+ project_uri = "http://rubyforge.org/projects/#{RubyForgeProject}/"
134
+ project_data = open(project_uri) { |data| data.read }
135
+ group_id = project_data[/[?&]group_id=(\d+)/, 1]
136
+ raise "Couldn't get group id" unless group_id
137
+
138
+ print "#{RubyForgeUser}@rubyforge.org's password: "
139
+ password = STDIN.gets.chomp
140
+
141
+ login_response = Net::HTTP.start('rubyforge.org', 80) do |http|
142
+ data = [
143
+ "login=1",
144
+ "form_loginname=#{RubyForgeUser}",
145
+ "form_pw=#{password}"
146
+ ].join("&")
147
+ http.post('/account/login.php', data)
148
+ end
149
+
150
+ cookie = login_response['set-cookie']
151
+ raise 'Login failed' unless cookie
152
+ headers = { 'Cookie' => cookie }
153
+
154
+ release_uri = "http://rubyforge.org/frs/admin/?group_id=#{group_id}"
155
+ release_data = open(release_uri, headers) { |data| data.read }
156
+ package_id = release_data[/[?&]package_id=(\d+)/, 1]
157
+ raise "Couldn't get package id" unless package_id
158
+
159
+ first_file = true
160
+ release_id = ""
161
+
162
+ files.each do |filename|
163
+ basename = File.basename(filename)
164
+ file_ext = File.extname(filename)
165
+ file_data = File.open(filename, "rb") { |file| file.read }
166
+
167
+ puts "Releasing #{basename}..."
168
+
169
+ release_response = Net::HTTP.start('rubyforge.org', 80) do |http|
170
+ release_date = Time.now.strftime('%Y-%m-%d %H:%M')
171
+ type_map = {
172
+ '.zip' => '3000',
173
+ '.tgz' => '3110',
174
+ '.gz' => '3110',
175
+ '.gem' => '1400',
176
+ '.md5sum' => '8100'
177
+ }; type_map.default = '9999'
178
+ type = type_map[file_ext]
179
+ boundary = 'rubyqMY6QN9bp6e4kS21H4y0zxcvoor'
180
+
181
+ query_hash = if first_file then
182
+ {
183
+ 'group_id' => group_id,
184
+ 'package_id' => package_id,
185
+ 'release_name' => Release,
186
+ 'release_date' => release_date,
187
+ 'type_id' => type,
188
+ 'processor_id' => '8000', # Any
189
+ 'release_notes' => '',
190
+ 'release_changes' => changes,
191
+ 'preformatted' => '1',
192
+ 'submit' => '1'
193
+ }
194
+ else
195
+ {
196
+ 'group_id' => group_id,
197
+ 'release_id' => release_id,
198
+ 'package_id' => package_id,
199
+ 'step2' => '1',
200
+ 'type_id' => type,
201
+ 'processor_id' => '8000', # Any
202
+ 'submit' => 'Add This File'
203
+ }
204
+ end
205
+
206
+ query = '?' + query_hash.map do |(name, value)|
207
+ [name, URI.encode(value)].join('=')
208
+ end.join('&')
209
+
210
+ data = [
211
+ "--" + boundary,
212
+ "Content-Disposition: form-data; name=\"userfile\"; filename=\"#{basename}\"",
213
+ "Content-Type: application/octet-stream",
214
+ "Content-Transfer-Encoding: binary",
215
+ "", file_data, ""
216
+ ].join("\x0D\x0A")
217
+
218
+ release_headers = headers.merge(
219
+ 'Content-Type' => "multipart/form-data; boundary=#{boundary}"
220
+ )
221
+
222
+ target = first_file ? '/frs/admin/qrs.php' : '/frs/admin/editrelease.php'
223
+ http.post(target + query, data, release_headers)
224
+ end
225
+
226
+ if first_file then
227
+ release_id = release_response.body[/release_id=(\d+)/, 1]
228
+ raise("Couldn't get release id") unless release_id
229
+ end
230
+
231
+ first_file = false
232
+ end
233
+ end
234
+ end
@@ -1,5 +1,5 @@
1
1
  # * George Moschovitis <gm@navel.gr>
2
2
  # (c) 2005 Navel, all rights reserved.
3
- # $Id: bench.rb 288 2005-03-10 12:47:03Z gmosx $
3
+ # $Id: bench.rb 1 2005-04-11 11:04:30Z gmosx $
4
4
 
5
5
 
@@ -1,7 +1,7 @@
1
1
  MAIN DEVELOPER:
2
2
 
3
3
  * George Moschovitis <gm@navel.gr>
4
- Project leader, architecture and design, code,
4
+ Project leader, architecture and design, main coder,
5
5
  documentation, maintainer.
6
6
 
7
7
  IDEAS, ADDITIONAL CODING, SUPPORT:
@@ -9,14 +9,8 @@ IDEAS, ADDITIONAL CODING, SUPPORT:
9
9
  * Anastasios Koutoumanos <ak@navel.gr>
10
10
  Design, additional coding.
11
11
 
12
- * Matt Bowen <matt.bowen@farweststeel.com>
13
- Additional code and documentation.
14
-
15
12
  * James Britt <james_b@neurogami.com>
16
- Design, bug reports.
17
-
18
- * Thomas Quas <tquas@yahoo.com>
19
- Ideas, bug reports, unit tests.
13
+ Additional code, design, bug reports.
20
14
 
21
15
  * Kostas Nasis <kostas@nasis.com>
22
16
  Ideas and bug reports.