module Stark::Rack::ContentNegotiation
Constants
- THRIFT_CONTENT_TYPE
- THRIFT_JSON_CONTENT_TYPE
Public Instance Methods
accept_json?(env)
click to toggle source
# File lib/stark/rack/content_negotiation.rb, line 6 def accept_json?(env) env['HTTP_ACCEPT'] == THRIFT_JSON_CONTENT_TYPE || env['HTTP_CONTENT_TYPE'] == THRIFT_JSON_CONTENT_TYPE end
headers(env)
click to toggle source
# File lib/stark/rack/content_negotiation.rb, line 11 def headers(env) headers = { 'Content-Type' => THRIFT_CONTENT_TYPE } if accept_json?(env) headers['Content-Type'] = THRIFT_JSON_CONTENT_TYPE end headers end
protocol_factory(env)
click to toggle source
# File lib/stark/rack/content_negotiation.rb, line 19 def protocol_factory(env) if env['stark.protocol.factory'] env['stark.protocol.factory'] else if accept_json?(env) f = Thrift::JsonProtocolFactory.new env['stark.protocol'] = :json else f = Thrift::BinaryProtocolFactory.new env['stark.protocol'] = :binary end env['stark.protocol.factory'] = f end end