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