class Thrift::RackApplication
Constants
- THRIFT_HEADER
Private Class Methods
Source
# File lib/thrift/server/rack_application.rb 61 def self.failed_request 62 Rack::Response.new(["Not Found"], 404, {Rack::CONTENT_TYPE => THRIFT_HEADER}) 63 end
Source
# File lib/thrift/server/rack_application.rb 43 def self.mapped(path, processor, protocol_factory = BinaryProtocolFactory.new) 44 Rack::Builder.new do 45 use Rack::ContentLength 46 map path do 47 run RackApplication.new(processor, protocol_factory) 48 end 49 end 50 end
Source
# File lib/thrift/server/rack_application.rb 28 def initialize(processor, protocol_factory = BinaryProtocolFactory.new) 29 @processor = processor 30 @protocol_factory = protocol_factory 31 end
Source
# File lib/thrift/server/rack_application.rb 52 def self.successful_request(rack_request, processor, protocol_factory) 53 response = Rack::Response.new([], 200, {Rack::CONTENT_TYPE => THRIFT_HEADER}) 54 transport = IOStreamTransport.new(rack_request.body, response) 55 protocol = protocol_factory.get_protocol(transport) 56 processor.process protocol, protocol 57 58 response 59 end
Source
# File lib/thrift/server/rack_application.rb 65 def self.valid_thrift_request?(rack_request) 66 rack_request.post? && rack_request.media_type == THRIFT_HEADER 67 end
Private Instance Methods
Source
# File lib/thrift/server/rack_application.rb 33 def call(env) 34 request = Rack::Request.new(env) 35 36 if self.class.valid_thrift_request?(request) 37 self.class.successful_request(request, @processor, @protocol_factory).finish 38 else 39 self.class.failed_request.finish 40 end 41 end