class Thrift::ThinHTTPServer::RackApplication
Constants
- THRIFT_HEADER
Public Class Methods
failed_request()
click to toggle source
# File lib/thrift/server/thin_http_server.rb 80 def self.failed_request 81 Rack::Response.new(['Not Found'], 404, {'Content-Type' => THRIFT_HEADER}) 82 end
for(path, processor, protocol_factory)
click to toggle source
# File lib/thrift/server/thin_http_server.rb 54 def self.for(path, processor, protocol_factory) 55 Rack::Builder.new do 56 use Rack::CommonLogger 57 use Rack::ShowExceptions 58 use Rack::Lint 59 map path do 60 run lambda { |env| 61 request = Rack::Request.new(env) 62 if RackApplication.valid_thrift_request?(request) 63 RackApplication.successful_request(request, processor, protocol_factory) 64 else 65 RackApplication.failed_request 66 end 67 } 68 end 69 end 70 end
successful_request(rack_request, processor, protocol_factory)
click to toggle source
# File lib/thrift/server/thin_http_server.rb 72 def self.successful_request(rack_request, processor, protocol_factory) 73 response = Rack::Response.new([], 200, {'Content-Type' => THRIFT_HEADER}) 74 transport = IOStreamTransport.new rack_request.body, response 75 protocol = protocol_factory.get_protocol transport 76 processor.process protocol, protocol 77 response 78 end
valid_thrift_request?(rack_request)
click to toggle source
# File lib/thrift/server/thin_http_server.rb 84 def self.valid_thrift_request?(rack_request) 85 rack_request.post? && rack_request.env["CONTENT_TYPE"] == THRIFT_HEADER 86 end