mongrel 1.1.5 → 1.2.0.pre2

Sign up to get free protection for your applications and to get access to all the features.
@@ -9,7 +9,13 @@ require 'uri'
9
9
  require 'stringio'
10
10
 
11
11
  # Compiled Mongrel extension
12
- require 'http11'
12
+ # support multiple ruby version (fat binaries under windows)
13
+ begin
14
+ require 'http11'
15
+ rescue LoadError
16
+ RUBY_VERSION =~ /(\d+.\d+)/
17
+ require "#{$1}/http11"
18
+ end
13
19
 
14
20
  # Gem conditional loader
15
21
  require 'mongrel/gems'
@@ -200,7 +206,7 @@ module Mongrel
200
206
  STDERR.puts "#{Time.now}: Client error: #{e.inspect}"
201
207
  STDERR.puts e.backtrace.join("\n")
202
208
  end
203
- request.body.delete if request and request.body.class == Tempfile
209
+ request.body.close! if request and request.body.class == Tempfile
204
210
  end
205
211
  end
206
212
 
@@ -320,10 +326,15 @@ module Mongrel
320
326
  def register(uri, handler, in_front=false)
321
327
  begin
322
328
  @classifier.register(uri, [handler])
323
- rescue URIClassifier::RegistrationError
329
+ rescue URIClassifier::RegistrationError => e
324
330
  handlers = @classifier.resolve(uri)[2]
325
- method_name = in_front ? 'unshift' : 'push'
326
- handlers.send(method_name, handler)
331
+ if handlers
332
+ # Already registered
333
+ method_name = in_front ? 'unshift' : 'push'
334
+ handlers.send(method_name, handler)
335
+ else
336
+ raise
337
+ end
327
338
  end
328
339
  handler.listener = self
329
340
  end
@@ -26,7 +26,7 @@ module Mongrel
26
26
  # Refer to DirHandler#can_serve for more information on this.
27
27
  class CGIWrapper < ::CGI
28
28
  public :env_table
29
- attr_reader :options
29
+ attr_reader :head
30
30
  attr_accessor :handler
31
31
  # Set this to false if you want calls to CGIWrapper.out to not actually send
32
32
  # the response until you force it.
@@ -105,7 +105,7 @@ module Mongrel
105
105
  when Hash
106
106
  cookie.each_value {|c| to['Set-Cookie'] = c.to_s}
107
107
  else
108
- to['Set-Cookie'] = options['cookie'].to_s
108
+ to['Set-Cookie'] = head['cookie'].to_s
109
109
  end
110
110
 
111
111
  @head.delete('cookie')
@@ -61,9 +61,7 @@ module Mongrel
61
61
  # I need to add my own -v definition to prevent the -v from exiting by default as well.
62
62
  @opt.on_tail("--version", "Show version") do
63
63
  @done_validating = true
64
- if VERSION
65
- puts "Version #{Mongrel::Const::MONGREL_VERSION}"
66
- end
64
+ puts "Version #{Mongrel::Const::MONGREL_VERSION}"
67
65
  end
68
66
 
69
67
  @opt.parse! argv
@@ -81,13 +81,13 @@ module Mongrel
81
81
 
82
82
  # Writes the PID file if we're not on Windows.
83
83
  def write_pid_file
84
- if RUBY_PLATFORM !~ /mswin/
84
+ if RUBY_PLATFORM !~ /mingw|mswin/
85
85
  log "Writing PID file to #{@pid_file}"
86
86
  open(@pid_file,"w") {|f| f.write(Process.pid) }
87
87
  open(@pid_file,"w") do |f|
88
88
  f.write(Process.pid)
89
89
  File.chmod(0644, @pid_file)
90
- end
90
+ end
91
91
  end
92
92
  end
93
93
 
@@ -185,7 +185,7 @@ module Mongrel
185
185
  def daemonize(options={})
186
186
  ops = resolve_defaults(options)
187
187
  # save this for later since daemonize will hose it
188
- if RUBY_PLATFORM !~ /mswin/
188
+ if RUBY_PLATFORM !~ /mingw|mswin/
189
189
  require 'daemons/daemonize'
190
190
 
191
191
  logfile = ops[:log_file]
@@ -344,7 +344,7 @@ module Mongrel
344
344
  # it reads it in and does an eval on the contents passing in the right
345
345
  # binding so they can put their own Configurator statements.
346
346
  def run_config(script)
347
- open(script) {|f| eval(f.read, proc {self}) }
347
+ open(script) {|f| eval(f.read, proc {self}.binding) }
348
348
  end
349
349
 
350
350
  # Sets up the standard signal handlers that are used on most Ruby
@@ -366,7 +366,7 @@ module Mongrel
366
366
  # clean up the pid file always
367
367
  at_exit { remove_pid_file }
368
368
 
369
- if RUBY_PLATFORM !~ /mswin/
369
+ if RUBY_PLATFORM !~ /mingw|mswin/
370
370
  # graceful shutdown
371
371
  trap("TERM") { log "TERM signal received."; stop }
372
372
  trap("USR1") { log "USR1 received, toggling $mongrel_debug_client to #{!$mongrel_debug_client}"; $mongrel_debug_client = !$mongrel_debug_client }
@@ -65,7 +65,7 @@ module Mongrel
65
65
  REQUEST_URI='REQUEST_URI'.freeze
66
66
  REQUEST_PATH='REQUEST_PATH'.freeze
67
67
 
68
- MONGREL_VERSION="1.1.5".freeze
68
+ MONGREL_VERSION = VERSION = "1.2.0.pre2".freeze
69
69
 
70
70
  MONGREL_TMP_BASE="mongrel".freeze
71
71
 
@@ -205,11 +205,11 @@ module Mongrel
205
205
  # test to see if this is a conditional request, and test if
206
206
  # the response would be identical to the last response
207
207
  same_response = case
208
- when modified_since && !last_response_time = Time.httpdate(modified_since) rescue nil : false
209
- when modified_since && last_response_time > Time.now : false
210
- when modified_since && mtime > last_response_time : false
211
- when none_match && none_match == '*' : false
212
- when none_match && !none_match.strip.split(/\s*,\s*/).include?(etag) : false
208
+ when modified_since && !last_response_time = Time.httpdate(modified_since) rescue nil then false
209
+ when modified_since && last_response_time > Time.now then false
210
+ when modified_since && mtime > last_response_time then false
211
+ when none_match && none_match == '*' then false
212
+ when none_match && !none_match.strip.split(/\s*,\s*/).include?(etag) then false
213
213
  else modified_since || none_match # validation successful if we get this far and at least one of the header exists
214
214
  end
215
215
 
@@ -93,7 +93,7 @@ module Mongrel
93
93
  STDERR.puts e.backtrace.join("\n")
94
94
  # any errors means we should delete the file, including if the file is dumped
95
95
  @socket.close rescue nil
96
- @body.delete if @body.class == Tempfile
96
+ @body.close! if @body.class == Tempfile
97
97
  @body = nil # signals that there was a problem
98
98
  end
99
99
  end
@@ -75,7 +75,10 @@ module Mongrel
75
75
  elsif @header_sent
76
76
  raise "You have already sent the request headers."
77
77
  else
78
- @header.out.truncate(0)
78
+ # XXX Dubious ( http://mongrel.rubyforge.org/ticket/19 )
79
+ @header.out.close
80
+ @header = HeaderOut.new(StringIO.new)
81
+
79
82
  @body.close
80
83
  @body = StringIO.new
81
84
  end
@@ -173,7 +173,7 @@ module Mongrel
173
173
  ops = resolve_defaults(options)
174
174
  setup_signals(options)
175
175
 
176
- if RUBY_PLATFORM !~ /mswin/
176
+ if RUBY_PLATFORM !~ /mingw|mswin/
177
177
  # rails reload
178
178
  trap("HUP") { log "HUP signal received."; reload! }
179
179
 
@@ -0,0 +1,28 @@
1
+ require 'hoe'
2
+
3
+ HOE = Hoe.spec 'mongrel' do
4
+ self.rubyforge_name = 'mongrel'
5
+ developer 'Zed A. Shaw', 'mongrel-users@rubyforge.org'
6
+
7
+ spec_extras[:required_ruby_version] = Gem::Requirement.new('>= 1.8.6')
8
+
9
+ spec_extras[:extensions] = ["ext/http11/extconf.rb"]
10
+ spec_extras[:executables] = ['mongrel_rails']
11
+
12
+ extra_rdoc_files << 'LICENSE'
13
+
14
+ extra_deps << ['gem_plugin', '~> 0.2.3']
15
+ extra_deps << ['daemons', '~> 1.0.10']
16
+
17
+ extra_dev_deps << ['rake-compiler', "~> 0.7.0"]
18
+
19
+ clean_globs.push('test_*.log', 'log')
20
+ end
21
+
22
+ file "#{HOE.spec.name}.gemspec" => ['Rakefile', 'tasks/gem.rake'] do |t|
23
+ puts "Generating #{t.name}"
24
+ File.open(t.name, 'w') { |f| f.puts HOE.spec.to_yaml }
25
+ end
26
+
27
+ desc "Generate or update the standalone gemspec file for the project"
28
+ task :gemspec => ["#{HOE.spec.name}.gemspec"]
@@ -0,0 +1,24 @@
1
+ # use rake-compiler for building the extension
2
+ require 'rake/extensiontask'
3
+
4
+ # build http11 C extension
5
+ Rake::ExtensionTask.new('http11', HOE.spec) do |ext|
6
+ # define target for extension (supporting fat binaries)
7
+ if RUBY_PLATFORM =~ /mingw|mswin/ then
8
+ RUBY_VERSION =~ /(\d+\.\d+)/
9
+ ext.lib_dir = "lib/#{$1}"
10
+ end
11
+
12
+ # define cross-compilation tasks when not on Windows.
13
+ unless RUBY_PLATFORM =~ /mingw|mswin/ then
14
+ ext.cross_compile = true
15
+ ext.cross_platform = ['i386-mswin32', 'i386-mingw32']
16
+
17
+ ext.cross_compiling do |gs|
18
+ gs.dependencies.delete gs.dependencies.find { |d| d.name == 'daemons' }
19
+ end
20
+ end
21
+ end
22
+
23
+ # ensure things are built prior testing
24
+ task :test => [:compile]
@@ -0,0 +1,20 @@
1
+
2
+ # the following tasks ease the build of C file from Ragel one
3
+
4
+ file 'ext/http11/http11_parser.c' => ['ext/http11/http11_parser.rl'] do |t|
5
+ begin
6
+ sh "ragel #{t.prerequisites.last} -C -G2 -o #{t.name}"
7
+ rescue
8
+ fail "Could not build wrapper using Ragel (it failed or not installed?)"
9
+ end
10
+ end
11
+
12
+ file 'ext/http11/org/jruby/mongrel/Http11Parser.java' => ['ext/http11/http11_parser.java.rl'] do |t|
13
+ begin
14
+ sh "ragel #{t.prerequisites.last} -J -G2 -o #{t.name}"
15
+ rescue
16
+ fail "Could not build wrapper using Ragel (it failed or not installed?)"
17
+ end
18
+ end
19
+
20
+ task :ragel => (defined?(JRUBY_VERSION) ? 'ext/http11/org/jruby/mongrel/Http11Parser.java' : 'ext/http11/http11_parser.c')
@@ -17,7 +17,7 @@ class ConditionalResponseTest < Test::Unit::TestCase
17
17
  @http = Net::HTTP.new(@server.host, @server.port)
18
18
 
19
19
  # get the ETag and Last-Modified headers
20
- @path = '/README'
20
+ @path = '/README.txt'
21
21
  res = @http.start { |http| http.get(@path) }
22
22
  assert_not_nil @etag = res['ETag']
23
23
  assert_not_nil @last_modified = res['Last-Modified']
@@ -49,17 +49,27 @@ class HandlersTest < Test::Unit::TestCase
49
49
  uri "/relative", :handler => Mongrel::DirHandler.new(nil, listing_allowed=false, index_html="none")
50
50
  end
51
51
  end
52
-
53
- File.open("/tmp/testfile", 'w') do
54
- # Do nothing
52
+
53
+ unless windows?
54
+ File.open("/tmp/testfile", 'w') { } # Do nothing
55
55
  end
56
-
56
+
57
57
  @config.run
58
58
  end
59
59
 
60
60
  def teardown
61
61
  @config.stop(false, true)
62
- File.delete "/tmp/testfile"
62
+ File.delete "/tmp/testfile" unless windows?
63
+ end
64
+
65
+ def test_registration_exception_is_not_lost
66
+ assert_raises(Mongrel::URIClassifier::RegistrationError) do
67
+ @config = Mongrel::Configurator.new do
68
+ listener do
69
+ uri "bogus", :handler => SimpleHandler.new
70
+ end
71
+ end
72
+ end
63
73
  end
64
74
 
65
75
  def test_more_web_server
@@ -74,10 +84,12 @@ class HandlersTest < Test::Unit::TestCase
74
84
  ])
75
85
  check_status res, String
76
86
  end
77
-
87
+
78
88
  def test_nil_dirhandler
89
+ return if windows?
90
+
79
91
  # Camping uses this internally
80
- handler = Mongrel::DirHandler.new(nil, false)
92
+ handler = Mongrel::DirHandler.new(nil, false)
81
93
  assert handler.can_serve("/tmp/testfile")
82
94
  # Not a bug! A nil @file parameter is the only circumstance under which
83
95
  # we are allowed to serve any existing file
@@ -93,6 +93,8 @@ class WebServerTest < Test::Unit::TestCase
93
93
  end
94
94
 
95
95
  def test_num_processors_overload
96
+ # Skipped this for Windows until further investigation
97
+ return if RUBY_PLATFORM =~ /mingw|mswin/
96
98
  redirect_test_io do
97
99
  assert_raises Errno::ECONNRESET, Errno::EPIPE, Errno::ECONNABORTED, Errno::EINVAL, IOError do
98
100
  tests = [
@@ -64,3 +64,8 @@ def hit(uris)
64
64
 
65
65
  return results
66
66
  end
67
+
68
+ # Platform check helper ;-)
69
+ def windows?
70
+ result = RUBY_PLATFORM =~ /mingw|mswin/
71
+ end
metadata CHANGED
@@ -1,137 +1,110 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongrel
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.5
4
+ version: 1.2.0.pre2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Zed A. Shaw
8
8
  autorequire:
9
9
  bindir: bin
10
- cert_chain:
11
- - |
12
- -----BEGIN CERTIFICATE-----
13
- MIIDUDCCAjigAwIBAgIBADANBgkqhkiG9w0BAQUFADBOMRwwGgYDVQQDDBNtb25n
14
- cmVsLWRldmVsb3BtZW50MRkwFwYKCZImiZPyLGQBGRYJcnVieWZvcmdlMRMwEQYK
15
- CZImiZPyLGQBGRYDb3JnMB4XDTA3MDkxNjEwMzI0OVoXDTA4MDkxNTEwMzI0OVow
16
- TjEcMBoGA1UEAwwTbW9uZ3JlbC1kZXZlbG9wbWVudDEZMBcGCgmSJomT8ixkARkW
17
- CXJ1Ynlmb3JnZTETMBEGCgmSJomT8ixkARkWA29yZzCCASIwDQYJKoZIhvcNAQEB
18
- BQADggEPADCCAQoCggEBAMb9v3B01eOHk3FyypbQgKXzJplUE5P6dXoG+xpPm0Lv
19
- P7BQmeMncOwqQ7zXpVQU+lTpXtQFTsOE3vL7KnhQFJKGvUAkbh24VFyopu1I0yqF
20
- mGu4nRqNXGXVj8TvLSj4S1WpSRLAa0acLPNyKhGmoV9+crqQypSjM6XKjBeppifo
21
- 4eBmWGjiJEYMIJBvJZPJ4rAVDDA8C6CM1m3gMBGNh8ELDhU8HI9AP3dMIkTI2Wx9
22
- 9xkJwHdroAaS0IFFtYChrwee4FbCF1FHDgoTosMwa47DrLHg4hZ6ojaKwK5QVWEV
23
- XGb6ju5UqpktnSWF2W+Lvl/K0tI42OH2CAhebT1gEVUCAwEAAaM5MDcwCQYDVR0T
24
- BAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFGHChyMSZ16u9WOzKhgJSQ9lqDc5
25
- MA0GCSqGSIb3DQEBBQUAA4IBAQA/lfeN2WdB1xN+82tT7vNS4HOjRQw6MUh5yktu
26
- GQjaGqm0UB+aX0Z9y0B0qpfv9rj7nmIvEGiwBmDepNWYCGuW15JyqpN7QVVnG2xS
27
- Mrame7VqgjM7A+VGDD5In5LtWbM/CHAATvvFlQ5Ph13YE1EdnVbZ65c+KQv+5sFY
28
- Q+zEop74d878uaC/SAHHXS46TiXneocaLSYw1CEZs/MAIy+9c4Q5ESbGpgnfg1Ad
29
- 6lwl7k3hsNHO/+tZzx4HJtOXDI1yAl3+q6T9J0yI3z97EinwvAKhS1eyOI2Y5eeT
30
- tbQaNYkU127B3l/VNpd8fQm3Jkl/PqCCmDBQjUszFrJEODug
31
- -----END CERTIFICATE-----
10
+ cert_chain: []
32
11
 
33
- - |
34
- -----BEGIN CERTIFICATE-----
35
- MIIDPzCCAiegAwIBAgIBADANBgkqhkiG9w0BAQUFADBOMRwwGgYDVQQDDBNtb25n
36
- cmVsLWRldmVsb3BtZW50MRkwFwYKCZImiZPyLGQBGRYJcnVieWZvcmdlMRMwEQYK
37
- CZImiZPyLGQBGRYDb3JnMB4XDTA3MDkxNjEwMzMwMFoXDTA4MDkxNTEwMzMwMFow
38
- PTENMAsGA1UEAwwEZXZhbjEYMBYGCgmSJomT8ixkARkWCGNsb3VkYnVyMRIwEAYK
39
- CZImiZPyLGQBGRYCc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDk
40
- LQijz2fICmev4+9s0WB71WzJFYCUYFQQxqGlenbxWut9dlPSsBbskGjg+UITeOXi
41
- cTh3MTqAB0i1LJyNOiyvDsAivn7GjKXhVvflp2/npMhBBe83P4HOWqeQBjkk3QJI
42
- FFNBvqbFLeEXIP+HiqAOiyNHZEVXMepLEJLzGrg3Ly7M7A6L5fK7jDrt8jkm+c+8
43
- zGquVHV5ohAebGd/vpHMLjpA7lCG5+MBgYZd33rRfNtCxDJMNRgnOu9PsB05+LJn
44
- MpDKQq3x0SkOf5A+MVOcadNCaAkFflYk3SUcXaXWxu/eCHgqfW1m76RNSp5djpKE
45
- CgNPK9lGIWpB3CHzDaVNAgMBAAGjOTA3MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSw
46
- MB0GA1UdDgQWBBT5aonPfFBdJ5rWFG+8dZwgyB54LjANBgkqhkiG9w0BAQUFAAOC
47
- AQEAiKbzWgMcvZs/TPwJxr8tJ+7mSGz7+zDkWcbBl8FpQq1DtRcATh1oyTkQT7t+
48
- rFEBYMmb0FxbbUnojQp8hIFgFkUwFpStwWBL/okLSehntzI2iwjuEtfj4ac9Q3Y2
49
- uSdbmZqsQTuu+lEUc5C4qLK7YKwToaul+cx7vWxyk1YendcVwRlFLIBqA5cPrwo3
50
- yyGLTHlRYn2c9PSbM1B63Yg+LqSSAa4QSU3Wv9pNdffVpvwHPVEQpO7ZDo5slQFL
51
- Gf6+gbD/eZAvhpvmn8JlXb+LxKaFVMs2Yvrk1xOuT76SsPjEGWxkr7jZCIpsYfgQ
52
- ALN3mi/9z0Mf1YroliUgF0v5Yw==
53
- -----END CERTIFICATE-----
54
-
55
- date: 2008-05-22 00:00:00 -04:00
12
+ date: 2010-03-18 00:00:00 -03:00
56
13
  default_executable:
57
14
  dependencies:
58
15
  - !ruby/object:Gem::Dependency
59
16
  name: gem_plugin
17
+ type: :runtime
60
18
  version_requirement:
61
19
  version_requirements: !ruby/object:Gem::Requirement
62
20
  requirements:
63
- - - ">="
21
+ - - ~>
64
22
  - !ruby/object:Gem::Version
65
23
  version: 0.2.3
66
24
  version:
67
25
  - !ruby/object:Gem::Dependency
68
26
  name: daemons
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: 1.0.10
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: rubyforge
37
+ type: :development
69
38
  version_requirement:
70
39
  version_requirements: !ruby/object:Gem::Requirement
71
40
  requirements:
72
41
  - - ">="
73
42
  - !ruby/object:Gem::Version
74
- version: 1.0.3
43
+ version: 2.0.3
75
44
  version:
76
45
  - !ruby/object:Gem::Dependency
77
- name: fastthread
46
+ name: gemcutter
47
+ type: :development
78
48
  version_requirement:
79
49
  version_requirements: !ruby/object:Gem::Requirement
80
50
  requirements:
81
51
  - - ">="
82
52
  - !ruby/object:Gem::Version
83
- version: 1.0.1
53
+ version: 0.3.0
84
54
  version:
85
55
  - !ruby/object:Gem::Dependency
86
- name: cgi_multipart_eof_fix
56
+ name: rake-compiler
57
+ type: :development
58
+ version_requirement:
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ~>
62
+ - !ruby/object:Gem::Version
63
+ version: 0.7.0
64
+ version:
65
+ - !ruby/object:Gem::Dependency
66
+ name: hoe
67
+ type: :development
87
68
  version_requirement:
88
69
  version_requirements: !ruby/object:Gem::Requirement
89
70
  requirements:
90
71
  - - ">="
91
72
  - !ruby/object:Gem::Version
92
- version: "2.4"
73
+ version: 2.5.0
93
74
  version:
94
- description: A small fast HTTP library and server that runs Rails, Camping, Nitro and Iowa apps.
95
- email: ""
75
+ description: |-
76
+ Mongrel is a small library that provides a very fast HTTP 1.1 server for Ruby web applications. It is not particular to any framework, and is intended to be just enough to get a web application running behind a more complete and robust web server.
77
+
78
+ What makes Mongrel so fast is the careful use of an Ragel extension to provide fast, accurate HTTP 1.1 protocol parsing. This makes the server scream without too many portability issues.
79
+
80
+ See http://mongrel.rubyforge.org for more information.
81
+ email:
82
+ - mongrel-users@rubyforge.org
96
83
  executables:
97
84
  - mongrel_rails
98
85
  extensions:
99
86
  - ext/http11/extconf.rb
100
87
  extra_rdoc_files:
101
- - CHANGELOG
102
- - COPYING
103
- - lib/mongrel/camping.rb
104
- - lib/mongrel/cgi.rb
105
- - lib/mongrel/command.rb
106
- - lib/mongrel/configurator.rb
107
- - lib/mongrel/const.rb
108
- - lib/mongrel/debug.rb
109
- - lib/mongrel/gems.rb
110
- - lib/mongrel/handlers.rb
111
- - lib/mongrel/header_out.rb
112
- - lib/mongrel/http_request.rb
113
- - lib/mongrel/http_response.rb
114
- - lib/mongrel/init.rb
115
- - lib/mongrel/rails.rb
116
- - lib/mongrel/stats.rb
117
- - lib/mongrel/tcphack.rb
118
- - lib/mongrel/uri_classifier.rb
119
- - lib/mongrel.rb
88
+ - History.txt
89
+ - Manifest.txt
90
+ - README.txt
120
91
  - LICENSE
121
- - README
122
92
  files:
123
- - bin/mongrel_rails
124
- - CHANGELOG
125
93
  - COPYING
94
+ - History.txt
95
+ - LICENSE
96
+ - Manifest.txt
97
+ - README.txt
98
+ - Rakefile
99
+ - TODO
100
+ - bin/mongrel_rails
126
101
  - examples/builder.rb
127
- - examples/camping/blog.rb
128
102
  - examples/camping/README
103
+ - examples/camping/blog.rb
129
104
  - examples/camping/tepee.rb
130
105
  - examples/httpd.conf
131
106
  - examples/mime.yaml
132
107
  - examples/mongrel.conf
133
- - examples/mongrel_simple_ctrl.rb
134
- - examples/mongrel_simple_service.rb
135
108
  - examples/monitrc
136
109
  - examples/random_thrash.rb
137
110
  - examples/simpletest.rb
@@ -144,9 +117,10 @@ files:
144
117
  - ext/http11/http11_parser.java.rl
145
118
  - ext/http11/http11_parser.rl
146
119
  - ext/http11/http11_parser_common.rl
147
- - ext/http11_java/Http11Service.java
148
- - ext/http11_java/org/jruby/mongrel/Http11.java
149
- - ext/http11_java/org/jruby/mongrel/Http11Parser.java
120
+ - ext/http11/Http11Service.java
121
+ - ext/http11/org/jruby/mongrel/Http11.java
122
+ - ext/http11/org/jruby/mongrel/Http11Parser.java
123
+ - lib/mongrel.rb
150
124
  - lib/mongrel/camping.rb
151
125
  - lib/mongrel/cgi.rb
152
126
  - lib/mongrel/command.rb
@@ -164,13 +138,10 @@ files:
164
138
  - lib/mongrel/stats.rb
165
139
  - lib/mongrel/tcphack.rb
166
140
  - lib/mongrel/uri_classifier.rb
167
- - lib/mongrel.rb
168
- - LICENSE
169
- - Manifest
170
- - mongrel-public_cert.pem
171
- - mongrel.gemspec
172
- - README
173
141
  - setup.rb
142
+ - tasks/gem.rake
143
+ - tasks/native.rake
144
+ - tasks/ragel.rake
174
145
  - test/mime.yaml
175
146
  - test/mongrel.conf
176
147
  - test/test_cgi_wrapper.rb
@@ -187,18 +158,15 @@ files:
187
158
  - test/test_uriclassifier.rb
188
159
  - test/test_ws.rb
189
160
  - test/testhelp.rb
190
- - TODO
191
161
  - tools/trickletest.rb
192
162
  has_rdoc: true
193
- homepage: http://mongrel.rubyforge.org
163
+ homepage: http://mongrel.rubyforge.org/
164
+ licenses: []
165
+
194
166
  post_install_message:
195
167
  rdoc_options:
196
- - --line-numbers
197
- - --inline-source
198
- - --title
199
- - Mongrel
200
168
  - --main
201
- - README
169
+ - README.txt
202
170
  require_paths:
203
171
  - lib
204
172
  - ext
@@ -206,32 +174,32 @@ required_ruby_version: !ruby/object:Gem::Requirement
206
174
  requirements:
207
175
  - - ">="
208
176
  - !ruby/object:Gem::Version
209
- version: 1.8.4
177
+ version: 1.8.6
210
178
  version:
211
179
  required_rubygems_version: !ruby/object:Gem::Requirement
212
180
  requirements:
213
- - - ">="
181
+ - - ">"
214
182
  - !ruby/object:Gem::Version
215
- version: "0"
183
+ version: 1.3.1
216
184
  version:
217
185
  requirements: []
218
186
 
219
187
  rubyforge_project: mongrel
220
- rubygems_version: 1.0.1
188
+ rubygems_version: 1.3.5
221
189
  signing_key:
222
- specification_version: 2
223
- summary: A small fast HTTP library and server that runs Rails, Camping, Nitro and Iowa apps.
190
+ specification_version: 3
191
+ summary: Mongrel is a small library that provides a very fast HTTP 1.1 server for Ruby web applications
224
192
  test_files:
225
- - test/test_cgi_wrapper.rb
226
- - test/test_command.rb
227
- - test/test_conditional.rb
193
+ - test/test_http11.rb
194
+ - test/test_uriclassifier.rb
195
+ - test/test_response.rb
228
196
  - test/test_configurator.rb
229
- - test/test_debug.rb
197
+ - test/test_conditional.rb
230
198
  - test/test_handlers.rb
231
- - test/test_http11.rb
232
199
  - test/test_redirect_handler.rb
200
+ - test/test_debug.rb
233
201
  - test/test_request_progress.rb
234
- - test/test_response.rb
235
202
  - test/test_stats.rb
236
- - test/test_uriclassifier.rb
203
+ - test/test_command.rb
237
204
  - test/test_ws.rb
205
+ - test/test_cgi_wrapper.rb