Class: RackAfterReply::Adapter::WEBrick
- Defined in:
- lib/rack_after_reply/adapter/webrick.rb
Defined Under Namespace
Modules: ResponseExtension, SocketExtension
Instance Method Summary collapse
Methods inherited from Base
Instance Method Details
#apply ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/rack_after_reply/adapter/webrick.rb', line 4 def apply # Rack::Handler::WEBrick#service returns before the socket is closed, # and if we close it ourselves, WEBrick will close it again causing a # bomb. We can access the socket through the response argument, though, # so we hook into its #close method. Rack::Handler::WEBrick.module_eval do include RackAfterReply::RequestHandler def initialize_with_rack_after_reply(server, app) app = AppProxy.new(self, app) initialize_without_rack_after_reply(server, app) end RackAfterReply.freedom_patch self, :initialize def service_with_rack_after_reply(request, response) response.extend ResponseExtension response.rack_after_reply_handler = self service_without_rack_after_reply(request, response) end RackAfterReply.freedom_patch self, :service end end |