Guest User

Untitled

a guest
Apr 22nd, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.01 KB | None | 0 0
  1. using(org.eclipse.jetty => "Jetty") do
  2. class RackHandler < Server::Handler::AbstractHandler
  3. attr_accessor :app
  4.  
  5. def self.build(endpoint)
  6. new.tap {|h| h.app = endpoint }
  7. end
  8.  
  9. def handle(target, base_request, request, response)
  10. lazy_env = LazyRackEnv.new(request)
  11. env = Hash.new {|h,k| h[k] = lazy_env[k] }
  12.  
  13. status, headers, body = @app.call(env)
  14. response.status = status.to_i
  15. base_request.handled = true
  16.  
  17. headers.each do |header, value|
  18. response.set_header header, value
  19. end
  20.  
  21. writer = response.writer
  22. body.each { |part| writer.print part }
  23. end
  24. end
  25.  
  26. # org.eclipse.jetty.server.Server
  27. class Server::Server
  28. # org.eclipse.jetty.util.thread
  29. include Util::Thread
  30.  
  31. def self.start_rack(endpoint, options = {})
  32. new(options[:port] || 8080).tap do |server|
  33. server.thread_pool = QueuedThreadPool.new(20)
  34. server.handler = RackHandler.build(endpoint)
  35. server.start
  36. server.join
  37. end
  38. end
  39. end
  40. end
Add Comment
Please, Sign In to add comment