rainbows 4.2.0 → 4.3.0

Sign up to get free protection for your applications and to get access to all the features.
data/.document CHANGED
@@ -1,7 +1,38 @@
1
1
  ChangeLog
2
2
  DEPLOY
3
3
  FAQ
4
- lib
4
+ lib/rainbows.rb
5
+ lib/rainbows/actor_spawn.rb
6
+ lib/rainbows/app_pool.rb
7
+ lib/rainbows/base.rb
8
+ lib/rainbows/configurator.rb
9
+ lib/rainbows/coolio.rb
10
+ lib/rainbows/coolio_thread_pool.rb
11
+ lib/rainbows/coolio_thread_spawn.rb
12
+ lib/rainbows/dev_fd_response.rb
13
+ lib/rainbows/epoll.rb
14
+ lib/rainbows/event_machine.rb
15
+ lib/rainbows/fiber_pool.rb
16
+ lib/rainbows/fiber_spawn.rb
17
+ lib/rainbows/max_body.rb
18
+ lib/rainbows/never_block.rb
19
+ lib/rainbows/rev.rb
20
+ lib/rainbows/rev_fiber_spawn.rb
21
+ lib/rainbows/rev_thread_pool.rb
22
+ lib/rainbows/rev_thread_spawn.rb
23
+ lib/rainbows/revactor.rb
24
+ lib/rainbows/sendfile.rb
25
+ lib/rainbows/server_token.rb
26
+ lib/rainbows/stream_response_epoll.rb
27
+ lib/rainbows/thread_pool.rb
28
+ lib/rainbows/thread_spawn.rb
29
+ lib/rainbows/thread_timeout.rb
30
+ lib/rainbows/worker_yield.rb
31
+ lib/rainbows/writer_thread_pool.rb
32
+ lib/rainbows/writer_thread_spawn.rb
33
+ lib/rainbows/xepoll.rb
34
+ lib/rainbows/xepoll_thread_pool.rb
35
+ lib/rainbows/xepoll_thread_spawn.rb
5
36
  LATEST
6
37
  LICENSE
7
38
  NEWS
data/.wrongdoc.yml CHANGED
@@ -6,3 +6,5 @@ changelog_start: v0.97.0
6
6
  merge_html:
7
7
  rainbows_1: Documentation/rainbows.1.html
8
8
  Summary: Documentation/comparison.html
9
+ public_email: rainbows-talk@rubyforge.org
10
+ private_email: rainbows@bogomips.org
data/GIT-VERSION-GEN CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/bin/sh
2
2
 
3
3
  GVF=GIT-VERSION-FILE
4
- DEF_VER=v4.2.0.GIT
4
+ DEF_VER=v4.3.0.GIT
5
5
 
6
6
  LF='
7
7
  '
data/TODO CHANGED
@@ -7,9 +7,6 @@ care about.
7
7
 
8
8
  * documentation improvements
9
9
 
10
- * allow _OPTIONAL_ splice(2) with DevFdResponse under Linux
11
- (splice is very broken under some older kernels)
12
-
13
10
  * Improve test suite coverage. We won't waste cycles with puny
14
11
  unit tests, only integration tests that exercise externally
15
12
  visible parts.
data/lib/rainbows.rb CHANGED
@@ -121,7 +121,6 @@ module Rainbows
121
121
 
122
122
  autoload :Fiber, 'rainbows/fiber' # core class
123
123
  autoload :StreamFile, 'rainbows/stream_file'
124
- autoload :HttpResponse, 'rainbows/http_response' # deprecated
125
124
  autoload :ThreadTimeout, 'rainbows/thread_timeout'
126
125
  autoload :WorkerYield, 'rainbows/worker_yield'
127
126
  autoload :SyncClose, 'rainbows/sync_close'
@@ -2,7 +2,7 @@
2
2
  # :enddoc:
3
3
  module Rainbows::Const
4
4
 
5
- RAINBOWS_VERSION = '4.2.0'
5
+ RAINBOWS_VERSION = '4.3.0'
6
6
 
7
7
  include Unicorn::Const
8
8
 
@@ -164,7 +164,8 @@ class Rainbows::Coolio::Client < Coolio::IO
164
164
  begin
165
165
  @deferred.close if @deferred.respond_to?(:close)
166
166
  rescue => e
167
- Rainbows.server.logger.error("closing #@deferred: #{e}")
167
+ Unicorn.log_error(Rainbows.server.logger,
168
+ "closing deferred=#{@deferred.inspect}", e)
168
169
  end
169
170
  @deferred = nil
170
171
  end
@@ -69,7 +69,7 @@ class Rainbows::DevFdResponse < Struct.new(:app)
69
69
  [ status, headers, Body.new(io, "/dev/fd/#{fileno}", body) ]
70
70
  end
71
71
 
72
- class Body < Struct.new(:to_io, :to_path, :orig_body)
72
+ class Body < Struct.new(:to_io, :to_path, :orig_body) # :nodoc:
73
73
  # called by the webserver or other middlewares if they can't
74
74
  # handle #to_path
75
75
  def each
@@ -12,15 +12,13 @@ module Rainbows::Error
12
12
  end
13
13
 
14
14
  def self.app(e)
15
- Rainbows.server.logger.error "app error: #{e.inspect}"
16
- Rainbows.server.logger.error e.backtrace.join("\n")
15
+ Unicorn.log_error(Rainbows.server.logger, "app error", e)
17
16
  rescue
18
17
  end
19
18
 
20
19
  def self.listen_loop(e)
21
20
  Rainbows.alive or return
22
- Rainbows.server.logger.error "listen loop error: #{e.inspect}."
23
- Rainbows.server.logger.error e.backtrace.join("\n")
21
+ Unicorn.log_error(Rainbows.server.logger, "listen loop error", e)
24
22
  rescue
25
23
  end
26
24
 
@@ -8,7 +8,7 @@ EM::VERSION >= '0.12.10' or abort 'eventmachine 0.12.10 is required'
8
8
  # a single-threaded app dispatch. It is suited for slow clients,
9
9
  # and can work with slow applications via asynchronous libraries such as
10
10
  # {async_sinatra}[http://github.com/raggi/async_sinatra],
11
- # {Cramp}[http://m.onkey.org/2010/1/7/introducing-cramp],
11
+ # {Cramp}[http://cramp.in/],
12
12
  # and {rack-fiber_pool}[http://github.com/mperham/rack-fiber_pool].
13
13
  #
14
14
  # It does not require your Rack application to be thread-safe,
@@ -23,7 +23,7 @@ EM::VERSION >= '0.12.10' or abort 'eventmachine 0.12.10 is required'
23
23
  # {async_sinatra}[http://github.com/raggi/async_sinatra].
24
24
  #
25
25
  # For a complete asynchronous framework,
26
- # {Cramp}[http://m.onkey.org/2010/1/7/introducing-cramp] is fully
26
+ # {Cramp}[http://cramp.in/] is fully
27
27
  # supported when using this concurrency model.
28
28
  #
29
29
  # This model is fully-compatible with
@@ -43,9 +43,7 @@ module Rainbows::ReverseProxy::Coolio
43
43
  return close
44
44
  when SystemCallError
45
45
  else
46
- logger = @env["rack.logger"]
47
- logger.error "#{e} #{e.message}"
48
- e.backtrace.each { |m| logger.error m }
46
+ Unicorn.log_error(@env["rack.logger"], "on_readable", e)
49
47
  end
50
48
  @env[AsyncCallback].call(Rainbows::ReverseProxy::E502)
51
49
  close
data/rainbows.gemspec CHANGED
@@ -28,9 +28,9 @@ Gem::Specification.new do |s|
28
28
  s.add_dependency(%q<kgio>, ['~> 2.5'])
29
29
 
30
30
  # we need Unicorn for the HTTP parser and process management
31
- s.add_dependency(%q<unicorn>, ["~> 4.0"])
31
+ s.add_dependency(%q<unicorn>, ["~> 4.1"])
32
32
  s.add_development_dependency(%q<isolate>, "~> 3.1")
33
- s.add_development_dependency(%q<wrongdoc>, "~> 1.5")
33
+ s.add_development_dependency(%q<wrongdoc>, "~> 1.6")
34
34
 
35
35
  # optional runtime dependencies depending on configuration
36
36
  # see t/test_isolate.rb for the exact versions we've tested with
data/t/test_isolate.rb CHANGED
@@ -16,14 +16,14 @@ $stdout.reopen($stderr)
16
16
  lock = File.open(__FILE__, "rb")
17
17
  lock.flock(File::LOCK_EX)
18
18
  Isolate.now!(opts) do
19
- gem 'kgio', '2.5.0'
19
+ gem 'kgio', '2.6.0'
20
20
  gem 'kcar', '0.3.0'
21
21
  gem 'raindrops', '0.7.0'
22
- gem 'unicorn', '4.0.0'
22
+ gem 'unicorn', '4.1.0'
23
23
 
24
24
  if engine == "ruby"
25
25
  gem 'sendfile', '1.1.0'
26
- gem 'cool.io', '1.0.0'
26
+ gem 'cool.io', '1.1.0'
27
27
 
28
28
  gem 'eventmachine', '0.12.10'
29
29
  gem 'sinatra', '1.2.0'
@@ -17,7 +17,7 @@ lock = File.open(__FILE__, "rb")
17
17
  lock.flock(File::LOCK_EX)
18
18
  Isolate.now!(opts) do
19
19
  if engine == "ruby"
20
- gem 'cramp', '0.14'
20
+ gem 'cramp', '0.15'
21
21
  end
22
22
  end
23
23
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rainbows
3
3
  version: !ruby/object:Gem::Version
4
- hash: 55
4
+ hash: 51
5
5
  prerelease:
6
6
  segments:
7
7
  - 4
8
- - 2
8
+ - 3
9
9
  - 0
10
- version: 4.2.0
10
+ version: 4.3.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Rainbows! hackers
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-08-05 00:00:00 Z
18
+ date: 2011-08-20 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: rack
@@ -55,11 +55,11 @@ dependencies:
55
55
  requirements:
56
56
  - - ~>
57
57
  - !ruby/object:Gem::Version
58
- hash: 27
58
+ hash: 25
59
59
  segments:
60
60
  - 4
61
- - 0
62
- version: "4.0"
61
+ - 1
62
+ version: "4.1"
63
63
  type: :runtime
64
64
  version_requirements: *id003
65
65
  - !ruby/object:Gem::Dependency
@@ -85,11 +85,11 @@ dependencies:
85
85
  requirements:
86
86
  - - ~>
87
87
  - !ruby/object:Gem::Version
88
- hash: 5
88
+ hash: 3
89
89
  segments:
90
90
  - 1
91
- - 5
92
- version: "1.5"
91
+ - 6
92
+ version: "1.6"
93
93
  type: :development
94
94
  version_requirements: *id005
95
95
  description: |-
@@ -109,106 +109,34 @@ extra_rdoc_files:
109
109
  - lib/rainbows/actor_spawn.rb
110
110
  - lib/rainbows/app_pool.rb
111
111
  - lib/rainbows/base.rb
112
- - lib/rainbows/client.rb
113
112
  - lib/rainbows/configurator.rb
114
- - lib/rainbows/const.rb
115
113
  - lib/rainbows/coolio.rb
116
- - lib/rainbows/coolio/client.rb
117
- - lib/rainbows/coolio/core.rb
118
- - lib/rainbows/coolio/heartbeat.rb
119
- - lib/rainbows/coolio/master.rb
120
- - lib/rainbows/coolio/response_chunk_pipe.rb
121
- - lib/rainbows/coolio/response_pipe.rb
122
- - lib/rainbows/coolio/server.rb
123
- - lib/rainbows/coolio/thread_client.rb
124
- - lib/rainbows/coolio_fiber_spawn.rb
125
- - lib/rainbows/coolio_support.rb
126
114
  - lib/rainbows/coolio_thread_pool.rb
127
- - lib/rainbows/coolio_thread_pool/client.rb
128
- - lib/rainbows/coolio_thread_pool/watcher.rb
129
115
  - lib/rainbows/coolio_thread_spawn.rb
130
- - lib/rainbows/coolio_thread_spawn/client.rb
131
116
  - lib/rainbows/dev_fd_response.rb
132
117
  - lib/rainbows/epoll.rb
133
- - lib/rainbows/epoll/client.rb
134
- - lib/rainbows/epoll/response_chunk_pipe.rb
135
- - lib/rainbows/epoll/response_pipe.rb
136
- - lib/rainbows/epoll/server.rb
137
- - lib/rainbows/error.rb
138
- - lib/rainbows/ev_core.rb
139
- - lib/rainbows/ev_core/cap_input.rb
140
118
  - lib/rainbows/event_machine.rb
141
- - lib/rainbows/event_machine/client.rb
142
- - lib/rainbows/event_machine/response_chunk_pipe.rb
143
- - lib/rainbows/event_machine/response_pipe.rb
144
- - lib/rainbows/event_machine/server.rb
145
- - lib/rainbows/event_machine/try_defer.rb
146
- - lib/rainbows/fiber.rb
147
- - lib/rainbows/fiber/base.rb
148
- - lib/rainbows/fiber/body.rb
149
- - lib/rainbows/fiber/coolio.rb
150
- - lib/rainbows/fiber/coolio/heartbeat.rb
151
- - lib/rainbows/fiber/coolio/methods.rb
152
- - lib/rainbows/fiber/coolio/server.rb
153
- - lib/rainbows/fiber/coolio/sleeper.rb
154
- - lib/rainbows/fiber/io.rb
155
- - lib/rainbows/fiber/io/compat.rb
156
- - lib/rainbows/fiber/io/methods.rb
157
- - lib/rainbows/fiber/io/pipe.rb
158
- - lib/rainbows/fiber/io/socket.rb
159
- - lib/rainbows/fiber/queue.rb
160
119
  - lib/rainbows/fiber_pool.rb
161
120
  - lib/rainbows/fiber_spawn.rb
162
- - lib/rainbows/http_parser.rb
163
- - lib/rainbows/http_response.rb
164
- - lib/rainbows/http_server.rb
165
- - lib/rainbows/join_threads.rb
166
121
  - lib/rainbows/max_body.rb
167
- - lib/rainbows/max_body/rewindable_wrapper.rb
168
- - lib/rainbows/max_body/wrapper.rb
169
122
  - lib/rainbows/never_block.rb
170
- - lib/rainbows/never_block/core.rb
171
- - lib/rainbows/never_block/event_machine.rb
172
- - lib/rainbows/pool_size.rb
173
- - lib/rainbows/process_client.rb
174
- - lib/rainbows/queue_pool.rb
175
- - lib/rainbows/response.rb
176
123
  - lib/rainbows/rev.rb
177
124
  - lib/rainbows/rev_fiber_spawn.rb
178
125
  - lib/rainbows/rev_thread_pool.rb
179
126
  - lib/rainbows/rev_thread_spawn.rb
180
127
  - lib/rainbows/revactor.rb
181
- - lib/rainbows/revactor/client.rb
182
- - lib/rainbows/revactor/client/methods.rb
183
- - lib/rainbows/revactor/client/tee_socket.rb
184
- - lib/rainbows/revactor/proxy.rb
185
- - lib/rainbows/reverse_proxy.rb
186
- - lib/rainbows/reverse_proxy/coolio.rb
187
- - lib/rainbows/reverse_proxy/ev_client.rb
188
- - lib/rainbows/reverse_proxy/event_machine.rb
189
- - lib/rainbows/reverse_proxy/multi_thread.rb
190
- - lib/rainbows/reverse_proxy/synchronous.rb
191
128
  - lib/rainbows/sendfile.rb
192
129
  - lib/rainbows/server_token.rb
193
- - lib/rainbows/socket_proxy.rb
194
- - lib/rainbows/stream_file.rb
195
130
  - lib/rainbows/stream_response_epoll.rb
196
- - lib/rainbows/stream_response_epoll/client.rb
197
- - lib/rainbows/sync_close.rb
198
131
  - lib/rainbows/thread_pool.rb
199
132
  - lib/rainbows/thread_spawn.rb
200
133
  - lib/rainbows/thread_timeout.rb
201
134
  - lib/rainbows/worker_yield.rb
202
135
  - lib/rainbows/writer_thread_pool.rb
203
- - lib/rainbows/writer_thread_pool/client.rb
204
136
  - lib/rainbows/writer_thread_spawn.rb
205
- - lib/rainbows/writer_thread_spawn/client.rb
206
137
  - lib/rainbows/xepoll.rb
207
- - lib/rainbows/xepoll/client.rb
208
138
  - lib/rainbows/xepoll_thread_pool.rb
209
- - lib/rainbows/xepoll_thread_pool/client.rb
210
139
  - lib/rainbows/xepoll_thread_spawn.rb
211
- - lib/rainbows/xepoll_thread_spawn/client.rb
212
140
  - LATEST
213
141
  - LICENSE
214
142
  - NEWS
@@ -307,7 +235,6 @@ files:
307
235
  - lib/rainbows/fiber_pool.rb
308
236
  - lib/rainbows/fiber_spawn.rb
309
237
  - lib/rainbows/http_parser.rb
310
- - lib/rainbows/http_response.rb
311
238
  - lib/rainbows/http_server.rb
312
239
  - lib/rainbows/join_threads.rb
313
240
  - lib/rainbows/max_body.rb
@@ -1,26 +0,0 @@
1
- # -*- encoding: binary -*-
2
- # :enddoc:
3
- # deprecated, use Rainbows::Response instead
4
- # Cramp 0.11 relies on this, and is only activated by Cramp
5
- if defined?(Cramp) && defined?(Rainbows::EventMachine::Client)
6
- class Rainbows::HttpResponse
7
- # dummy method for Cramp to alias_method_chain
8
- def self.write(client, response, out)
9
- end
10
- end
11
-
12
- module Rainbows::EventMachine::CrampSocket
13
- def em_write_response(response, alive = false)
14
- if websocket?
15
- write web_socket_upgrade_data
16
- web_socket_handshake!
17
- response[1] = nil # disable response headers
18
- end
19
- super
20
- end
21
- end
22
-
23
- class Rainbows::EventMachine::Client
24
- include Rainbows::EventMachine::CrampSocket
25
- end
26
- end