class Stark::Rack::Metadata::Middleware
Public Class Methods
new(app, metadata)
click to toggle source
# File lib/stark/rack/metadata.rb, line 17 def initialize(app, metadata) @app = app @handler = Handler.new metadata @processor = Processor.new @handler end
Public Instance Methods
call(env)
click to toggle source
# File lib/stark/rack/metadata.rb, line 23 def call(env) env['rack.input'] = RewindableInput.new(env['rack.input']) status, hdr, body = @app.call env if status == 404 env['rack.input'].rewind out = StringIO.new transport = Thrift::IOStreamTransport.new env['rack.input'], out protocol = protocol_factory(env).get_protocol transport if @processor.process(protocol, protocol) return [200, headers(env), [out.string]] end end [status, hdr, body] end