class Thrift::ThinHTTPServer::RackApplication
Constants
- THRIFT_HEADER
Public Class Methods
failed_request()
click to toggle source
# File lib/thrift/server/thin_http_server.rb, line 80 def self.failed_request Rack::Response.new(['Not Found'], 404, {'Content-Type' => THRIFT_HEADER}) end
for(path, processor, protocol_factory)
click to toggle source
# File lib/thrift/server/thin_http_server.rb, line 54 def self.for(path, processor, protocol_factory) Rack::Builder.new do use Rack::CommonLogger use Rack::ShowExceptions use Rack::Lint map path do run lambda { |env| request = Rack::Request.new(env) if RackApplication.valid_thrift_request?(request) RackApplication.successful_request(request, processor, protocol_factory) else RackApplication.failed_request end } end end end
successful_request(rack_request, processor, protocol_factory)
click to toggle source
# File lib/thrift/server/thin_http_server.rb, line 72 def self.successful_request(rack_request, processor, protocol_factory) response = Rack::Response.new([], 200, {'Content-Type' => THRIFT_HEADER}) transport = IOStreamTransport.new rack_request.body, response protocol = protocol_factory.get_protocol transport processor.process protocol, protocol response end
valid_thrift_request?(rack_request)
click to toggle source
# File lib/thrift/server/thin_http_server.rb, line 84 def self.valid_thrift_request?(rack_request) rack_request.post? && rack_request.env["CONTENT_TYPE"] == THRIFT_HEADER end